Qual é a diferença entre AIC () e extractAIC () em R?

11

A documentação do R para qualquer um deles não esclarece muita coisa. Tudo o que posso obter neste link é que o uso de qualquer um deles deve estar bem. O que eu não entendo é por que eles não são iguais.

Fato: A função de regressão gradual em R é step()usada extractAIC().

Curiosamente, a execução de um lm()modelo e um modelo glm()'nulo' (apenas a interceptação) no conjunto de dados R de 'mtcars' fornece resultados diferentes para AICe extractAIC().

> null.glm = glm(mtcars$mpg~1)
> null.lm = lm(mtcars$mpg~1)

> AIC(null.glm)
[1] 208.7555
> AIC(null.lm)
[1] 208.7555
> extractAIC(null.glm)
[1]   1.0000 208.7555
> extractAIC(null.lm)
[1]   1.0000 115.9434

É estranho, considerando que os dois modelos acima são iguais e AIC()fornece os mesmos resultados para ambos.

Alguém pode lançar alguma luz sobre o assunto?

Sudip Sinha
fonte

Respostas:

6

De acordo com a ajuda para essas duas funções (use? AIC e? ExtractAIC), isso é esperado.

Observe que o AIC é definido apenas como uma constante aditiva, porque esse também é o caso da probabilidade de log. Isso significa que você deve verificar se

extractAIC(full.modell) - extractAIC(null.modell)

e

AIC(full.modell) - AIC(null.modell)

dê o mesmo resultado. Enquanto o fizerem, ambas as funções são equivalentes para todos os fins práticos.

Erik
fonte
2
Provavelmente estou perdendo alguma coisa, mas ainda não entendo o porquê extractAIC(null.lm) != AIC(null.lm), extractAIC(null.glm) == AIC(null.glm)embora null.lmseja o mesmo modelo que null.glm. Você poderia expandir um pouco sua resposta?
Novell
2
O @smillig extractAICusa métodos diferentes para lmajustes e glmajustes, ou seja, extractAIC.lme extractAIC.glm. Você pode usar getAnywherepara estudar o código deles.AICusa o mesmo método para ambos.
Roland
Eu tenho vários pares de modelos (com múltiplos preditores) para os quais ambas as funções dão resultados diferentes. Modelo 1: y = x1 + x2, Modelo 2: y = z + x1 + x2 * z. extractAIC()dá valor inferior (negativa) para os modelos 1, enquanto AIC dá valor inferior (positiva) para o modelo 2.
Maxim.K
1
@ Maxim.K Você fornece poucas informações sobre o tipo de variáveis ​​e modelos usados. Se você o fez e há algumas diferenças nessa pergunta, pode valer a pena postar isso como uma nova pergunta. Difícil dizer, sem conhecer os detalhes.
Erik
@ Erik Duvido que valerá muito se eu disser que z é contínuo e x2 é categórico (dumificado). É necessário que os dados sejam reproduzidos e não posso publicá-los, temo.
Maxim.K