fitlm
Regress the continuous outcome (i.e. dependent variable) y on
continuous or categorical predictors (i.e. independent variables) X
by minimizing the sum-of-squared residuals. Unless requested otherwise,
fitlm
prints the model formula, the regression coefficients (i.e.
parameters/contrasts) and an ANOVA table. Note that unlike anovan
,
fitlm
treats all factors as continuous by default. A bootstrap
resampling variant of this function, bootlm
, is available in the
statistics-resampling package and has similar usage.
X must be a column major matrix or cell array consisting of the predictors. A constant term (intercept) should not be included in X - it is automatically added to the model. y must be a column vector corresponding to the outcome variable. modelspec can specified as one of the following:
fitlm
can take a number of optional parameters as name-value pairs.
[…] = fitlm (..., "CategoricalVars", categorical)
fitlm
also accepts optional anovan
parameters as name-value
pairs (except for the "model" parameter). The accepted parameter names from
anovan
and their default values in fitlm
are:
Type ’help anovan
’ to find out more about what these options do.
fitlm
can return up to two output arguments:
[tab] = fitlm (…) returns a cell array containing a table of model parameters
[tab, stats] = fitlm (…) returns a structure
containing additional statistics, including degrees of freedom and effect
sizes for each term in the linear model, the design matrix, the
variance-covariance matrix, (weighted) model residuals, and the mean squared
error. The columns of stats.coeffs (from left-to-right) report the
model coefficients, standard errors, lower and upper 100*(1-alpha)%
confidence interval bounds, t-statistics, and p-values relating to the
contrasts. The number appended to each term name in stats.coeffnames
corresponds to the column number in the relevant contrast matrix for that
factor. The stats structure can be used as input for multcompare
.
Note that if the model contains a continuous variable and you wish to use
the STATS output as input to multcompare
, then the model needs
to be refit with the "contrast" parameter set to a sum-to-zero contrast
coding scheme, e.g."simple".
See also: anovan, multcompare
Source Code: fitlm
y = [ 8.706 10.362 11.552 6.941 10.983 10.092 6.421 14.943 15.931 ... 22.968 18.590 16.567 15.944 21.637 14.492 17.965 18.851 22.891 ... 22.028 16.884 17.252 18.325 25.435 19.141 21.238 22.196 18.038 ... 22.628 31.163 26.053 24.419 32.145 28.966 30.207 29.142 33.212 ... 25.694 ]'; X = [1 1 1 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5]'; [TAB,STATS] = fitlm (X,y,"linear","CategoricalVars",1,"display","on"); MODEL FORMULA (based on Wilkinson's notation): Y ~ 1 + X1 MODEL PARAMETERS (contrasts for the fixed effects) Parameter Estimate SE Lower.CI Upper.CI t Prob>|t| -------------------------------------------------------------------------------- (Intercept) 10 1.02 7.93 12.1 9.83 <.001 X1_1 8 1.64 4.66 11.3 4.87 <.001 X1_2 9 1.44 6.07 11.9 6.25 <.001 X1_3 11 1.49 7.97 14 7.38 <.001 X1_4 19 1.4 16.2 21.8 13.58 <.001 ANOVA TABLE (Type II sums-of-squares): Source Sum Sq. d.f. Mean Sq. R Sq. F Prob>F -------------------------------------------------------------------------------- X1 1561.3 4 390.33 0.855 47.10 <.001 Error 265.17 32 8.2866 Total 1826.5 36 |
popcorn = [5.5, 4.5, 3.5; 5.5, 4.5, 4.0; 6.0, 4.0, 3.0; ... 6.5, 5.0, 4.0; 7.0, 5.5, 5.0; 7.0, 5.0, 4.5]; brands = {'Gourmet', 'National', 'Generic'; ... 'Gourmet', 'National', 'Generic'; ... 'Gourmet', 'National', 'Generic'; ... 'Gourmet', 'National', 'Generic'; ... 'Gourmet', 'National', 'Generic'; ... 'Gourmet', 'National', 'Generic'}; popper = {'oil', 'oil', 'oil'; 'oil', 'oil', 'oil'; 'oil', 'oil', 'oil'; ... 'air', 'air', 'air'; 'air', 'air', 'air'; 'air', 'air', 'air'}; [TAB, STATS] = fitlm ({brands(:),popper(:)},popcorn(:),"interactions",... "CategoricalVars",[1,2],"display","on"); MODEL FORMULA (based on Wilkinson's notation): Y ~ 1 + X1 + X2 + X1:X2 MODEL PARAMETERS (contrasts for the fixed effects) Parameter Estimate SE Lower.CI Upper.CI t Prob>|t| -------------------------------------------------------------------------------- (Intercept) 5.67 0.215 5.2 6.14 26.34 <.001 X1_1 -1.33 0.304 -2 -0.67 -4.38 <.001 X1_2 -2.17 0.304 -2.83 -1.5 -7.12 <.001 X2_1 1.17 0.304 0.504 1.83 3.83 .002 X1:X2_1 -0.333 0.43 -1.27 0.604 -0.77 .454 X1:X2_2 -0.167 0.43 -1.1 0.771 -0.39 .705 ANOVA TABLE (Type II sums-of-squares): Source Sum Sq. d.f. Mean Sq. R Sq. F Prob>F -------------------------------------------------------------------------------- X1 15.75 2 7.875 0.904 56.70 <.001 X2 4.5 1 4.5 0.730 32.40 <.001 X1*X2 0.083333 2 0.041667 0.048 0.30 .746 Error 1.6667 12 0.13889 Total 22 17 |