How can I do multiple regression (i = 1:15) in a loop?

I got a matrix A (1x15) with each cell containing 524 x 4 of data, and a Y matrix containing 524 x1 data. I was going for :
For i = 1:15
mdl{i} = LinearModel.fit(A{1,i},Y)
end
but it didn't work
Thanks in advance!

3 Comments

It seems to work but i end up having a 1x15 matrix of mdl, but all cells are empty... it's weird
No error message :/

Sign in to comment.

 Accepted Answer

This worked for me:
% Some pretend data
A = cell(1,15);
for i=1:15
A{i} = rand(524,4);
end
Y = rand(524,1);
% Do the fits
for i = 1:15
mdl{i} = LinearModel.fit(A{1,i},Y);
end

6 Comments

Yes it worked but i always end up with a 1x15 matrix of answer but empty, it is kind of weird.
Strange. I get model results in each cell of mdl, as expected. I am using R2013a on a Mac [OSX 10.8.3].
I'm using R2012a on a PC(x64)but still
I mostly need the r squared, p value t-test and fisher. Is there a way to gather these without having to use mdl?
If the code I posted is giving completely empty results, I suggest you file a bug report.
An alternative to using LinearModel.fit is the regress() command.
I might report it eventually but i found out that this particular function generate an object and apparently i'm not supposed to have many objects in a single matrix. I manage to gather the Rsquared using Varname.Rsquared.Adjusted so that only answers pop out in a (1,15) matrix. The only problem i have here is that i don't have the combination variable names anymore and that might cause problem... If i try with 50 variables i won't be able to understand the answer! Thank you!!

Sign in to comment.

More Answers (0)

Categories

Find more on Creating, Deleting, and Querying Graphics Objects in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!