在 R 中使用 drop1 命令进行模型构建时,据说必须删除具有最低 AIC 值的变量。相同的原因可能是什么?我知道 AIC 谈论信息丢失,并且 AIC 值越低越好,但删除 AIC 低的变量似乎违反直觉。有人可以解释这样做的原因吗?
在 R 和 AIC 中使用 drop1 命令
机器算法验证
r
回归
aic
2022-03-20 17:09:17
1个回答
给定的 AICdrop1与整个模型相关 - 而不是变量,因此输出会告诉您要删除哪个变量以生成具有最低 AIC 的模型。例如,使用内置数据集swiss
lm1 <- lm(Fertility ~ ., data = swiss)
drop1(lm1, test = "F") # So called 'type II' anova
Single term deletions
Model:
Fertility ~ Agriculture + Examination + Education + Catholic +
Infant.Mortality
Df Sum of Sq RSS AIC F value Pr(>F)
<none> 2105.0 190.69
Agriculture 1 307.72 2412.8 195.10 5.9934 0.018727 *
Examination 1 53.03 2158.1 189.86 1.0328 0.315462
Education 1 1162.56 3267.6 209.36 22.6432 2.431e-05 ***
Catholic 1 447.71 2552.8 197.75 8.7200 0.005190 **
Infant.Mortality 1 408.75 2513.8 197.03 7.9612 0.007336 **
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
在这里,去除Examination将产生具有最低 AIC 的模型
在相关说明中,虽然使用 AIC 可能比使用 p 值更好,但使用任何自动模型选择算法都被认为是不好的做法: Algorithms for automatic model selection