在 R 和 AIC 中使用 drop1 命令

机器算法验证 r 回归 aic
2022-03-20 17:09:17

在 R 中使用 drop1 命令进行模型构建时,据说必须删除具有最低 AIC 值的变量。相同的原因可能是什么?我知道 AIC 谈论信息丢失,并且 AIC 值越低越好,但删除 AIC 低的变量似乎违反直觉。有人可以解释这样做的原因吗?

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