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

조회 수: 2 (최근 30일)
Simon
Simon 2013년 5월 27일
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
Simon
Simon 2013년 5월 28일
It seems to work but i end up having a 1x15 matrix of mdl, but all cells are empty... it's weird
Simon
Simon 2013년 5월 28일
No error message :/

댓글을 달려면 로그인하십시오.

채택된 답변

the cyclist
the cyclist 2013년 5월 28일
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
the cyclist
the cyclist 2013년 5월 29일
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.
Simon
Simon 2013년 5월 30일
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!!

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Data Distribution Plots에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by