Looping a regression for 30 different observations 10 times
    4 visualizzazioni (ultimi 30 giorni)
  
       Mostra commenti meno recenti
    
    Wietze Zijpp
 il 3 Apr 2022
  
    
    
    
    
    Risposto: Star Strider
      
      
 il 3 Apr 2022
            Suppose I have a total of 300 observations.
Now I would like to perform a regression over the observation 1:30 31:60 etc.
And I am intersted in the error of the regression
X = [ones(size(x)) x1 x2 x3];
[b,bint,r,rint,stats] = regress(y,X)
How do I write a for loop such that I get 300/30 = 10 values of the error of the regression?
0 Commenti
Risposta accettata
  Star Strider
      
      
 il 3 Apr 2022
        One approach — 
xa = randn(300,3);
ya = randn(300,1);
forstep = 30;
for k = 1:forstep:size(xa,1)-forstep
    idxrng = k:k+30;
    kidx = floor(k/forstep+1);
    x1 = xa(idxrng,1);
    x2 = xa(idxrng,2);
    x3 = xa(idxrng,3);
    y = ya(idxrng);
    X = [ones(size(x1)) x1 x2 x3];
    [b{kidx},bint{kidx},r{kidx},rint{kidx},stats{kidx}] = regress(y,X);
end
b
bint
r
 ... and so for the rest.  
.
0 Commenti
Più risposte (0)
Vedere anche
Categorie
				Scopri di più su Linear Regression in Help Center e File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

