在统计学中,逐步选择是一个程序,我们可以用它来从一组预测变量中建立一个回归模型,方法是在模型中逐步输入和删除预测变量,直到没有统计上的有效理由再输入或删除。
逐步选择的目的是建立一个回归模型,其中包括所有与响应变量有统计学上显著关系的预测变量。
最常用的逐步选择方法之一被称为正向选择,其工作原理如下。
**第一步:**拟合一个没有预测变量的纯截距回归模型。计算该模型的AIC*值。
**第2步:**拟合所有可能的单预测变量回归模型。确定产生最低AIC的模型,并且与纯截距模型相比,AIC也有明显的减少。
**第3步:**拟合所有可能的双预测器回归模型。确定产生最低AIC的模型,并且与单预测器模型相比,AIC也有统计学上的显著减少。
重复这一过程,直到用更多的预测变量拟合回归模型不再导致AIC的统计学上的显著降低。
*有几个指标可以用来计算回归模型的拟合质量,包括交叉验证预测误差、Cp、BIC、AIC或调整的R2 。在下面的例子中,我们选择使用AIC。
下面的例子显示了如何在R中进行正向选择。
例子。R语言中的正向选择
在这个例子中,我们将使用R中内置的MTCars数据集。
#view first six rows of mtcars
head(mtcars)
mpg cyl disp hp drat wt qsec vs am gear carb
Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
Valiant 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1
我们将拟合一个多元线性回归模型,使用mpg(每加仑英里数)作为响应变量,将数据集中的其他10个变量作为潜在的预测变量。
下面的代码显示了如何进行正向逐步选择。
#define intercept-only model
intercept_only <- lm(mpg ~ 1, data=mtcars)
#define model with all predictors
all <- lm(mpg ~ ., data=mtcars)
#perform forward stepwise regression
forward <- step(intercept_only, direction='forward', scope=formula(all), trace=0)
#view results of forward stepwise regression
forward$anova
Step Df Deviance Resid. Df Resid. Dev AIC
1 NA NA 31 1126.0472 115.94345
2 + wt -1 847.72525 30 278.3219 73.21736
3 + cyl -1 87.14997 29 191.1720 63.19800
4 + hp -1 14.55145 28 176.6205 62.66456
#view final model
forward$coefficients
(Intercept) wt cyl hp
38.7517874 -3.1669731 -0.9416168 -0.0180381
下面是如何解释结果的。
首先,我们拟合只有截距的模型。这个模型的AIC为115.94345。
接下来,我们拟合所有可能的单预测器模型。与仅有截距的模型相比,产生最低的AIC,并且在统计学上显著减少AIC的模型使用的是预测因子wt,这个模型的AIC为73.21736。
接下来,我们拟合了所有可能的双预测器模型。与单预测器模型相比,产生了最低的AIC,并且AIC也有了明显的减少,增加了预测器圆柱。
接下来,我们拟合所有可能的三个预测器模型。与双预测器模型相比,产生了最低的AIC,并且在统计学上显著减少了AIC,增加了预测器hp。这个模型的AIC为62.66456。
接下来,我们拟合了所有可能的四预测器模型。结果发现,这些模型中没有一个能明显减少AIC,因此我们停止了这个程序。
因此,最终的模型变成了。
MPG = 38.75 - 3.17*Wt - 0.94*Cyl - 0.02*hyp
事实证明,试图在模型中增加更多的预测变量并不会导致AIC的统计学上的显著减少。
因此,我们得出结论,最好的模型是有三个预测变量的模型:重量、气缸和马力。
关于使用AIC的说明
在前面的例子中,我们选择使用AIC作为评估各种回归模型拟合度的指标。
AIC是Akaike信息准则的缩写,其计算方法为。
AIC = 2K - 2ln(L)
其中。
- **K:**模型参数的数量。
- ln(L)。模型的对数可能性。这告诉我们,鉴于数据,该模型的可能性有多大。
然而,你可能会选择使用其他指标来评估回归模型的拟合度,包括交叉验证预测误差、Cp、BIC、AIC或调整的R2。
幸运的是,大多数统计软件允许你在进行正向选择时指定你想使用的指标。
其他资源
下面的教程提供了关于回归模型的额外信息。
A Guide to Multicollinearity & VIF in Regression
什么被认为是好的AIC值?
The postWhat is Forward Selection?(定义和例子)首次出现在Statology上。