Advertisement
rejcsibejcsi

Varhato lin reg

May 24th, 2022
268
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
R 1.79 KB | None | 0 0
  1. #HZS05V
  2. #Varhato(atlag), soras(sum(i elem - varhato)^2)   majd ezt *(1/n-1),
  3. #kovarancia sum((xi - varhatox )* (yi - varhatoy)) majd /n-1  
  4. #lin_reg : minden elotte 2 valtozora, b=kov/szoras_X, a = varhato_y - (varhato_x)*(b), a_b vissza
  5. #IPSZILON = a + b*x;
  6. Varhato = function(a) {
  7.   summa = 0;
  8.   i=1;
  9.   while( i <= length(a)) {
  10.     summa = summa + a[i];
  11.    
  12.     i=i+1;
  13.   }
  14.  
  15.   return(summa = summa/length(a));
  16.  
  17. }
  18.  
  19. soras = function(a) {
  20.   varhato_ertek = Varhato(a);
  21.   sum = 0;
  22.  
  23.   i=1;
  24.   while( i <= length(a)) {
  25.     sum = sum + (sum((a[i]-varhato_ertek)^2));
  26.    
  27.     i=i+1;
  28.   }
  29.   korrigalt = sum*(1/(length(a)-1));
  30.   C= c(korrigalt ,varhato_ertek);
  31.   return(C);
  32.  
  33.  
  34. }
  35.  
  36. kovarancia = function(a,b){
  37.   sum = 0;
  38.   n = length(a);
  39.   i=1;
  40.     varhato_x = soras(x)[2];
  41.     varhato_y = soras(y)[2];
  42.    
  43.  
  44.   while(i<= n){
  45.     sum = sum + (a[i]-varhato_x)*(b[i]-varhato_y);
  46.     i=i+1;
  47.    
  48.   }
  49.   return (sum/(n-1));
  50. }
  51.  
  52.  
  53. linreg = function(x,y){
  54. szoras_negyzet_x = soras(x)[1];
  55. varhato_x = soras(x)[2];
  56.  
  57. szoras_negyzet_y = soras(y)[1];
  58. varhato_y = soras(y)[2];
  59.  
  60. kov_xy = kovarancia(x,y);
  61.  
  62. b_kalap = (kov_xy)/(szoras_negyzet_x);
  63.  
  64. a_kalap = varhato_y - (varhato_x)*(b_kalap);
  65.  
  66.  
  67. a_b = c(a_kalap,b_kalap);
  68. return (a_b);
  69. }
  70. #^^ FUNCTIONS ^^
  71.  
  72.  
  73.  
  74. #ÉRTÉK MEGADÁS
  75. x=c(1,2,3,4,5);
  76. y=c(1.1,2.1,2.9,4.1,5.1);
  77.  
  78. #FŐ FÜGGVÉNY
  79. a_b = linreg(x,y);
  80.  
  81.  
  82.  
  83.  
  84. #Y RAJZOLÁSA
  85. a_kalap = a_b[1];
  86. b_kalap = a_b[2];
  87.  
  88. #a és b fordítva
  89. IPSZILON = a_kalap + b_kalap*x;
  90.  
  91.  
  92. plot(x,y);
  93.  
  94. #extra
  95. abline(lm(y~x), col="blue",lwd="2",lty="dotted");
  96. lines(IPSZILON,type="l", col="red",lwd="2", lty="dotted");
  97. legend("bottomright", c("beépített","saját"), pch=8, col = c("blue","red"), title = "függvények");
  98. legend("topleft",legend=list(a_kalap,b_kalap),title="a és b");
  99.  
  100.  
  101.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement