¿Cuál es la diferencia entre AIC () y extractAIC () en R?

11

La documentación de R para cualquiera no arroja mucha luz. Todo lo que puedo obtener de este enlace es que usar cualquiera de los dos debería estar bien. Lo que no entiendo es por qué no son iguales.

Hecho: La función de regresión gradual en R, step()usa extractAIC().

Curiosamente, ejecutar un lm()modelo y un modelo glm()'nulo' (solo la intercepción) en el conjunto de datos 'mtcars' de R da resultados diferentes para AICy 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

Es extraño, dado que los dos modelos anteriores son iguales y AIC()dan los mismos resultados para ambos.

¿Alguien puede arrojar algo de luz sobre el tema?

Sudip Sinha
fuente

Respuestas:

6

De acuerdo con la ayuda para estas dos funciones (use? AIC y? ExtractAIC) esto se espera.

Tenga en cuenta que el AIC solo se define como una constante aditiva, porque este también es el caso de la probabilidad logarítmica. Esto significa que debe verificar si

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

y

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

dar el mismo resultado Mientras lo hagan, ambas funciones son equivalentes para todos los fines prácticos.

Erik
fuente
2
Probablemente estoy perdiendo algo, pero sigo sin entender por qué extractAIC(null.lm) != AIC(null.lm), mientras que extractAIC(null.glm) == AIC(null.glm)a pesar de que null.lmes el mismo modelo que null.glm. ¿Podrías ampliar un poco tu respuesta?
smillig
2
@smillig extractAICutiliza diferentes métodos para lmajustes y glmajustes, es decir, extractAIC.lmy extractAIC.glm. Puedes usar getAnywherepara estudiar su código. AICusa el mismo método para ambos.
Roland
Tengo varios pares de modelos (con múltiples predictores) para los cuales ambas funciones dan resultados diferentes. Modelo 1: y = x1 + x2, Modelo 2: y = z + x1 + x2 * z. extractAIC()da un valor más bajo (negativo) para el Modelo 1, mientras que AIC da un valor más bajo (positivo) para el Modelo 2.
Maxim.K
1
@ Maxim.K Usted proporciona poca información sobre el tipo de variables y modelos utilizados. Si lo hizo y hay algunas diferencias con esta pregunta, podría valer la pena publicarla como una nueva pregunta. Difícil de decir, sin conocer los detalles.
Erik
@ Erik Dudo que valga mucho si digo que z es continuo y x2 es categórico (dummified). Uno necesitaría los datos para reproducirse y no puedo publicarlos, me temo.
Maxim.K