# LinearModel.fit results to array

26 views (last 30 days)
OoM on 26 Aug 2013
Hi,
I would like to ask about results from LinearModel.fit function. I used the function and it ran smoothly. However, I could not extract the result properly.
I have a 100 set of X and Y. What I would like to have is a array showing coefficient and R-square of all. I basically try to do a loop and have LinearModel.fit function inside. My problem is I could not write out coefficient from mdl.Coefficients and r-square from mdl.Rsquared.Ordinary value to save into my array.
I crated array 100 x 1 to save R-square value from each set. To sum up, how can I save the values of results from each set to array?
Thank you.

Leah on 26 Aug 2013
I was able to do it, i made a dataset mid to hold everything
md = LinearModel.fit()
mid.Intercept=md.Coefficients.Estimate(1);
for c=2:length(md.CoefficientNames)
mid.(md.CoefficientNames{c})=md.Coefficients.Estimate(c);
end

OoM on 26 Aug 2013
Thank you very much.
OoM on 26 Aug 2013
gave me
mid =
Rsq: 0.8690
It is in struct format. Any way to transform it to array
Rsq = [0.8690]

the cyclist on 26 Aug 2013
mdl.Coefficients
is a variable of type dataset.
mdl.Coefficients.Estimate
will be an array of doubles, which I think is what you need.

OoM on 26 Aug 2013
I tried to call only mdl.Coefficients.Estimate. It does not work.
the cyclist on 27 Aug 2013
Does calling this code give you a 5x1 double for mdl.Coefficients.Estimate?
X = ingredients; % predictor variables
y = heat; % response
mdl = LinearModel.fit(X,y)
mdl.Coefficients.Estimate

OoM on 26 Aug 2013
I am able to get R-squared from
rsq = mdl.Rsquared.Ordinary
rsq =
0.8690
and only coefficient from
Coefficient = mdl.Coefficients.Estimate(:,1)
Coefficient =
1.0e+05 *
1.4231
-0.0012