主要内容

逐步回归

逐步回归选择合适的模型

stepwiselm创建一个线性模型,并自动添加或修剪模型。要创建一个小模型,就要从一个常量模型开始。要创建一个大型模型,首先要创建一个包含许多术语的模型。一个大的模型通常有较低的误差测量与原始数据的拟合,但可能没有任何优势预测新的数据。

stepwiselm可以使用来自fitlm,以及与开始和边界模型相关的其他选项。特别是:

  • 对于一个小模型,从默认的下界模型开始:“不变”(一个没有预测项的模型)。

  • 默认的上边界模型有线性项和交互项(预测器对的乘积)。下载188bet金宝搏对于也包含平方项的上界模型,设置名称-值对“二次”

比较大的和小的逐步模型

这个例子展示了如何比较模型stepwiselm从常量模型和完整交互模型开始返回。

加载carbig数据,并从其中一些数据创建一个表。

负载carbig台=表(加速度、位移、马力、体重、MPG);

从常量模型开始逐步创建里程模型。

mdl1 = stepwiselm(资源描述,“不变”“ResponseVar”“英里”
1.添加权重,FStat = 888.8507, pValue = 2.9728e-103加上马力,FStat = 3.8217, pValue = 0.00049608加上马力:重量,FStat = 64.8709, pValue = 9.93362e-15
mdl1 =线性回归模型:MPG ~ 1 +马力*权重Estimate SE tStat pValue __________ __________ _______ __________ (Intercept) 63.558 2.3429 27.127 1.2343e-91马力-0.25084 0.027279 -9.1952 2.3226e-18重量-0.010772 0.00077381 -13.921 5.1372 -36马力:重量5.3554e-05 6.6491e-06 8.0542 9.9336 -15观测数:392,误差自由度:388均方根误差:3.93 R-squared: 0.748, Adjusted R-squared: 0.746 F-statistic vs. constant model: 385, p-value = 7.26e-116

从完整交互模型开始,逐步创建里程模型。

mdl2 = stepwiselm(资源描述,“互动”“ResponseVar”“英里”
1.移除加速度:位移,FStat = 0.024186, pValue = 0.8765移除位移:重量,FStat = 0.33103, pValue = 0.56539移除加速:马力,FStat = 1.7334, pValue = 0.18876移除加速:Weight, FStat = 0.93269, pValue = 0.33477移除马力:重量,FStat = 0.64486, pValue = 0.42245
mdl2 =线性回归模型:MPG ~ 1 +加速度+重量+位移*马力估计系数:Estimate SE tStat pValue __________ __________ _______ __________ (Intercept) 61.285 2.8052 21.847 1.8593e-69加速度-0.34401 0.11862 -2.9 0.0039445位移-0.081198 0.010071 -8.0623 9.5014e-15马力-0.24313 0.026068 -9.3265 8.6556e-19重量-0.0014367 0.00084041 -1.7095 0.088166位移:马力0.00054236 5.7987e-059.3531 7.0527e-19观测数:392,误差自由度:386均方根误差:3.84 R-squared: 0.761,校正R-squared: 0.758 F-statistic vs. constant model: 246, p-value = 1.32e-117

注意:

  • mdl1有四个系数(估计列),mdl2有六个系数。

  • 调整的r平方mdl10.746的情况略低于(更差)mdl20.758

从完整的二次模型开始,以完整的二次模型作为上限,逐步创建一个里程模型:

mdl3 = stepwiselm(资源描述,“二次”“ResponseVar”“英里”“上”“二次”);
1.移除加速:马力,FStat = 0.075209, pValue = 0.78405移除加速:重量,FStat = 0.072756, pValue = 0.78751移除马力:重量,FStat = 0.12569, pValue = 0.72314移除重量^2,FStat = 1.194, pValue = 0.27521移除位移:重量,FStat = 1.2839, pValue = 0.25789移除位移^2,FStat = 2.069, pValue = 0.15114除去马力^2,FStat = 0.74063, pValue = 0.39

通过检验三个模型的公式来比较它们的复杂性。

mdl1。公式
ans = MPG ~ 1 +马力*重量
mdl2。公式
ans = MPG ~ 1 +加速度+重量+位移*马力
mdl3。公式
ans = MPG ~ 1 +重量+加速度*位移+位移*马力+加速度^2

的调整 R 2 当模型变得更复杂时,值会略有改善:

RSquared = [mdl1.Rsquared.Adjusted,...mdl2.Rsquared。调整,mdl3.Rsquared.Adjusted]
RSquared =1×30.7465 0.7580 0.7599

比较三个模型的残差图。

次要情节(1,1)plotResiduals (mdl1)次要情节(3,1,2)plotResiduals (mdl2)次要情节(3、1,3)plotResiduals (mdl3)

图中包含3个轴对象。标题为残差直方图的坐标轴对象1包含一个patch类型的对象。标题为残差直方图的坐标轴对象2包含一个patch类型的对象。标题为残差直方图的坐标轴对象3包含一个patch类型的对象。

模型有相似的残差。目前还不清楚哪个更符合数据。

有趣的是,越复杂的模型,残差的最大偏差越大:

Rrange1 = [min (mdl1.Residuals.Raw), max (mdl1.Residuals.Raw)];Rrange2 = [min (mdl2.Residuals.Raw), max (mdl2.Residuals.Raw)];Rrange3 = [min (mdl3.Residuals.Raw), max (mdl3.Residuals.Raw)];Rranges = [Rrange1; Rrange2; Rrange3]
Rranges =3×2-10.7725 14.7314 -11.4407 16.7562 -12.2723 16.7927

另请参阅

|||

相关的话题