MATLAB Answers

OLS regression for bootstrapped data

1 view (last 30 days)
Alma Bezares
Alma Bezares on 21 Apr 2016
Commented: Alma Bezares on 22 Apr 2016
Hi, I bootstrapped some data 1000 times and now I want to regress each one of the columns of that bootstrapped data (A) on two vectors. This is: Y= each column in A; X=two vectors, but the "regress" command is not working. Any suggestion? All the data has the same number of rows. Thanks!

  2 Comments

jgg
jgg on 21 Apr 2016
Shouldn't you be repeating the regression command 1000 times? Something like:
for i = 1:1000
Y = A(:,i);
b(i) = regress(Y,X);
end
then do analysis on the 1000 b values reported?
Alma Bezares
Alma Bezares on 22 Apr 2016
Yes, that's exactly what I want to do. Do the regression 1000 times. The problem is that if I use the code that you suggested, it only does the regression on column 1000 and not on the rest of them. If I set Y=(1:i), the command won't work as I'm dealing with a matrix again.

Sign in to comment.

Accepted Answer

jgg
jgg on 22 Apr 2016
To answer your question based on my comment. The command Y = A(:,i) selects the i-th column from the A matrix, so this will give you your 1000 results. For instance,
X = randn(5000,2); %fake data; use real data
A = randn(5000,1000); %fake data;
betas = zeros(1000,2);
for i = 1:1000
Y = A(:,i);
betas(i,:) = regress(Y,X);
end
Your estimates are stored in the betas matrix so you can average or consider standard deviation etc.

  1 Comment

Alma Bezares
Alma Bezares on 22 Apr 2016
That seems to work. Thanks a lot!!

Sign in to comment.

More Answers (0)