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平方mdl1
是0.746
的情况略低于(更差)mdl2
,0.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
的调整 当模型变得更复杂时,值会略有改善:
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)
模型有相似的残差。目前还不清楚哪个更符合数据。
有趣的是,越复杂的模型,残差的最大偏差越大:
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
fitlm
|plotResiduals
|stepwiselm
|LinearModel