这个示例展示了如何使用表执行线性和逐步回归分析。
负载进口- 85
台=表(X (:, 7) X (:, 8), X (:, 9), X (:, 15),“VariableNames”,...{“整备重量”,“engine_size”,“生”,“价格”});
适合一个线性回归模型,解释了价格的汽车在其控制重量,引擎大小,和内径。
fitlm(资源描述,'价格~整备重量+发动机尺寸+孔')
ans =线性回归模型:price ~ 1 + curb_weight + engine_size + boreEstimate SE tStat pValue __________ _________ _______ __________ (Intercept) 64.095 3.703 17.309 2.0481e-41 curb_weight -0.0086681 0.0011025 -7.8623 2.42e-13 engine_size -0.015806 0.013255 -1.1925 0.23452 bore -2.6998 1.3489 -2.0015 0.046711观测数量:201,误差自由度:197根均方误差:3.95 r平方:0.674,调整R-Squared: 0.669 F-statistic vs. constant model: 136, p-value = 1.14e-47
命令fitlm(台)
也返回相同的结果,因为fitlm
,默认情况下,假设响应变量在表的最后一列tbl
.
这一次,将响应变量放在表的第一列中。
台=表(X (:, 15), X (:, 7), X (:, 8), X (:, 9),“VariableNames”,...{“价格”,“整备重量”,“engine_size”,“生”});
当响应变量位于tbl
,定义它的位置。例如,fitlm
,默认情况下,假设生
是响应变量。您可以使用以下任一方法在模型中定义响应变量:
fitlm(资源描述,“ResponseVar”,“价格”);
或
fitlm(资源描述,“ResponseVar”,逻辑([1 0 0 0]));
stepwiselm(资源描述,“二次”,“更低”,“价格~ 1”,...“ResponseVar”,“价格”)
1.移除孔^2,FStat = 0.01282, pValue = 0.90997移除engine_size^2, FStat = 0.078043, pValue = 0.78027移除curb_weight:bore, FStat = 0.70558, pValue = 0.40195
ans =线性回归模型:price ~ 1 + curb_weight*engine_size + engine_size*bore + curb_weight^2Estimate SE tStat pValue ___________ __________ _______ __________ (Intercept) 131.13 14.273 9.1873 6.2319e-17 curb_weight -0.043315 0.0085114 -5.0891 8.4682e-07 engine_size -0.17102 0.13844 -1.2354 0.21819 bore -12.244 4.999 -2.4493 0.015202 curb_weight:engine_size -6.3411e-05 2.6577e-05 -2.386 0.017996 engine_size:bore 0.092554 0.037263 2.4838观测数:201,误差自由度:194,均方根误差:3.59 R-squared: 0.735,校正R-squared: 0.726 F-statistic vs. constant model: 89.5, p-value = 3.58e-53
初始模型是一个二次公式,考虑的最低模型是常数。在这里,stepwiselm
执行向后消除技术以确定模型中的术语。最后一个模型是价格~1+整备重量*发动机尺寸+发动机尺寸*孔+整备重量^2
,对应于
在哪里 是价格, 是控制体重, 是发动机尺寸, 生, 模型中对应项的系数,和 是错误项。最终模型包括所有三个主要影响,整备重量和发动机尺寸以及发动机尺寸和孔径的交互影响,以及整备重量的二阶项。