这个例子展示了如何使用表格执行线性和逐步回归分析。
负载进口- 85
tbl = table(X(:,7),X(:,8),X(:,9),X(:,15),“VariableNames”,...{“curb_weight”,“engine_size”,“生”,“价格”});
拟合一个线性回归模型,根据整流罩重量、发动机尺寸和内径来解释汽车的价格。
fitlm(资源描述,“价格~ curb_weight + engine_size +了”)
ans =线性回归模型:价格~ 1 + curb_weight + engine_size + bore估计系数:估计SE tStat pValue __________ _________ _______ __________(截距)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 -平方:0.669 f统计量与常数模型:136,p值= 1.14e-47
命令fitlm(台)
也返回相同的结果,因为fitlm
默认情况下,假设响应变量在表的最后一列资源描述
.
这一次,将响应变量放在表的第一列中。
tbl = table(X(:,15),X(:,7),X(:,8),X(:,9),“VariableNames”,...{“价格”,“curb_weight”,“engine_size”,“生”});
当响应变量在的第一列时资源描述
,定义其位置。例如,fitlm
,默认情况下,假设生
是响应变量。您可以在模型中使用以下任何一种方法定义响应变量:
fitlm(资源描述,“ResponseVar”,“价格”);
或
fitlm(资源描述,“ResponseVar”,逻辑([1 0 0 0]));
stepwiselm(资源描述,“二次”,“低”,“价格~ 1”,...“ResponseVar”,“价格”)
1.拆卸孔^2,FStat = 0.01282, pValue = 0.909973.删除engine_size^2, FStat = 0.078043, pValue = 0.78027去除curb_weight:bore, FStat = 0.70558, pValue = 0.40195
ans =线性回归模型:价格~ 1 + curb_weight*engine_size + engine_size*bore + curb_weight^2估计SE tStat pValue ___________ __________ _______ __________(拦截)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 0.013847 curb_weight^2 8.0836e-06 1.9983e-06 4.0451 7.5432e-05观测数量:201,误差自由度:194根均方误差:3.59 r平方:0.735,调整后r平方:0.726 f统计量vs常数模型:89.5,p值= 3.58e-53
初始模型为二次公式,考虑的最低模型为常数。在这里,stepwiselm
执行向后消去技术以确定模型中的项。最后一个模型是价格~ 1 + curb_weight*engine_size + engine_size*bore + curb_weight^2
,对应于
在哪里 是价格, 是控制重量, 是发动机尺寸, 生, 模型中对应项的系数,和 是误差项。最后的模型包含了整流罩重量与发动机尺寸、发动机尺寸与内径的交互作用,以及整流罩重量的二阶项。