Looping a regression for 30 different observations 10 times
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Wietze Zijpp
am 3 Apr. 2022
Beantwortet: Star Strider
am 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 Kommentare
Akzeptierte Antwort
Star Strider
am 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 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!