Getting the regression coefficients for a lower number of Partial Least Squares components than specified by plsregress(X,Y,ncomp) without redoing the whole regression model?
2 views (last 30 days)
Show older comments
When performing a regression with the plsregress command in matlab, you specify the number of components when you fit the model like this:
ncomp = 100;
[XL,YL,XS,YS,BETA,PCTVAR] = plsregress(X,Y,ncomp);
But say I wanted to test the performance of all number of components up to 100 (so 1 component, then 2, then 3, then 4..), how can I get the regression coefficients (BETA) for that? Do I really have to repeat the model a hundred times like this:
[XL,YL,XS,YS,BETA1,PCTVAR] = plsregress(X,Y,1);
[XL,YL,XS,YS,BETA2,PCTVAR] = plsregress(X,Y,2);
[XL,YL,XS,YS,BETA3,PCTVAR] = plsregress(X,Y,3);
… and so on up to 100
That seems unreasonable. Is there a faster way to get the regression coefficients for a lower number of components than the one specified when creating the model?
Thanks.
2 Comments
John D'Errico
on 30 May 2016
Edited: John D'Errico
on 30 May 2016
One day, they will let us do loops in MATLAB. Just think what an innovation that will be. Oh! That is right! There is such a thing as a for loop. Why not use one? :)
Anyway, creating numbered variables is just poor programming. Learn to use vectors and arrays, even cell arrays.
Answers (0)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!