Usando o comando drop1 em R e AIC


7

Ao usar o comando drop1 em R para construção de modelo, é dito que a variável com o menor valor de AIC deve ser descartada. Qual poderia ser a razão para o mesmo? Eu sei que a AIC fala sobre perda de informações e um valor mais baixo da AIC é melhor, mas soltar uma variável com AIC baixa parece contra-intuitivo. Alguém pode explicar o motivo de fazê-lo?


Respostas:


8

O AIC fornecido drop1refere-se a todo o modelo - não a uma variável; portanto, a saída informa qual variável remover para gerar o modelo com o AIC mais baixo. Por exemplo, com o conjunto de dados internoswiss

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

Aqui, a remoção de Examinationproduzirá o modelo com a AIC mais baixa

Em uma nota relacionada, embora possa ser melhor usar AIC do que valores de p, é considerado uma prática ruim usar qualquer algoritmo de seleção automática de modelo: Algoritmos para seleção automática de modelo


11
De fato, se você está olhando para uma única variável de cada vez, usando corresponde AIC à fixação de um valor-p de corte de 15,7%
Glen_b -Reinstate Monica

@Glen_b Interesting! Suponho que seja um resultado assintótico baseado na cauda da distribuição do qui-quadrado? Então, usar valores de p e AIC é igualmente ruim para amostras grandes! ?
Robert Long

11
Sim, um resultado qui-quadrado assintótico (se você usar R, é pchisq(2,1,lower.tail=FALSE)); corresponderá a um valor-p de teste z bicaudal ( pnorm(sqrt(2),lower.tail=FALSE)*2) e, a menos que o df seja razoavelmente pequeno, também se aproximará de um corte do valor-p do teste t ou do teste F (acima de 40 df é 16% para a porcentagem inteira mais próxima para qualquer df)
Glen_b -Reinstala Monica
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.