如何在r中使用stepaic进行特征选择


赤池信息准则 ( AIC ) 是一种用于量化模型与数据集拟合程度的指标。

计算方法如下:

AIC = 2K – 2 ln (L)

金子:

  • K:模型参数的数量。 K 的默认值为 2,因此只有一个预测变量的模型的 K 值为 2+1 = 3。
  • ln (L) :模型的对数似然。大多数统计软件可以自动为您计算该值。

AIC 旨在找到解释数据变化最大的模型,同时惩罚使用过多参数的模型。

您可以使用 R 中MASS包中的stepAIC()函数在回归模型中迭代添加和删除预测变量,直到找到生成具有最低 AIC 值的模型的预测变量集(或“特征”)。

该函数使用以下基本语法:

stepAIC(对象、方向、…)

金子:

  • object : 调整模型的名称
  • Direction :要使用的步进搜索类型(“向后”、“向前”或“两者”)

下面的例子展示了如何在实际中使用这个功能。

示例:在 R 中使用 stepAIC() 进行特征选择

在本例中,我们将使用 R 中内置的mtcars数据集,其中包含 32 辆不同汽车的 11 个不同属性的测量值:

 #view first six rows of mtcars dataset
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

假设我们想要使用hp作为响应变量和以下潜在预测变量来拟合回归模型:

  • 英里/加仑
  • 重量
  • 拉屎
  • 快秒

我们可以使用MASS包中的stepAIC()函数在模型中添加和减去各种预测变量,直到我们得到具有尽可能低的 AIC 值的模型:

 library (MASS)

#fit initial multiple linear regression model
model <- lm(hp ~ mpg + wt + drat + qsec, data=mtcars)

#use both forward and backward selection to find model with lowest AIC
stepAIC(model, direction=" both ")

Start: AIC=226.88
hp ~ mpg + wt + drat + qsec

       Df Sum of Sq RSS AIC
- drat 1 94.9 28183 224.98
- mpg 1 1519.4 29608 226.56
  none 28088 226.88
- wt 1 3861.9 31950 229.00
-qsec 1 28102.2 56190 247.06

Step: AIC=224.98
hp ~ mpg + wt + qsec

       Df Sum of Sq RSS AIC
- mpg 1 1424.5 29608 224.56
  none 28183 224.98
+ drat 1 94.9 28088 226.88
- wt 1 3797.9 31981 227.03
-qsec 1 29625.1 57808 245.97

Step: AIC=224.56
hp ~ wt + qsec

       Df Sum of Sq RSS AIC
  none 29608 224.56
+ mpg 1 1425 28183 224.98
+ drat 1 0 29608 226.56
- wt 1 43026 72633 251.28
-qsec 1 52881 82489 255.35

Call:
lm(formula = hp ~ wt + qsec, data = mtcars)

Coefficients:
(Intercept) wt qsec  
     441.26 38.67 -23.47  

以下是如何解释结果:

(1)首先,我们首先用四个预测变量拟合回归模型。该模型的 AIC 值为226.88

(2)接下来,stepAIC 确定删除drat作为预测变量将进一步将 AIC 值降低至224.98

(3)接下来,stepAIC 模型确定删除mpg作为预测变量将进一步将 AIC 值降低至224.56

(4)最后,stepAIC确定没有办法通过添加或删除变量来进一步减小AIC值。

因此最终的模型是:

马力 = 441.26 + 38.67(重量)– 23.47(q秒)

该模型的 AIC 值为224.56

其他资源

以下教程解释了如何在 R 中执行其他常见任务:

如何在 R 中执行多元线性回归
如何在 R 中执行分段回归
如何在 R 中执行样条回归

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注