14 votos

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

La documentación de R para cualquiera de ellos 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 por pasos en R, step() utiliza extractAIC() .

Curiosamente, la ejecución de un lm() modelo y un glm() El modelo "nulo" (sólo el intercepto) en el conjunto de datos "mtcars" de R da resultados diferentes para AIC y 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 los mismos, y AIC() da los mismos resultados para ambos.

¿Alguien puede arrojar algo de luz sobre la cuestión?

6voto

unk2 Puntos 36

Según la ayuda de estas dos funciones (uso de ?AIC y ?extractAIC), esto es lo esperado.

Tenga en cuenta que el AIC sólo se define hasta una constante aditiva, ya que éste es también el caso de la log-verosimilitud. Esto significa que debe comprobar si

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

y

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

dan el mismo resultado. Mientras lo hagan, ambas funciones son equivalentes a efectos prácticos.

2 votos

Probablemente me estoy perdiendo algo, pero sigo sin entender por qué extractAIC(null.lm) != AIC(null.lm) mientras que extractAIC(null.glm) == AIC(null.glm) aunque null.lm es el mismo modelo que null.glm . ¿Podría ampliar un poco su respuesta?

2 votos

@smillig extractAIC utiliza diferentes métodos para lm encaja y glm encaja, es decir, extractAIC.lm y extractAIC.glm . Puede utilizar getAnywhere para estudiar su código. AIC utiliza el mismo método para ambos.

0 votos

Tengo varios pares de modelos (con múltiples predictores) para los que 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 el AIC da un valor más bajo (positivo) para el Modelo 2.

3voto

Abhirup Manna Puntos 475

Hay dos diferencias para un modelo de regresión lineal habitual ( lm ) entre AIC y extractAIC :

  • AIC tiene en cuenta la estimación de la varianza desconocida del error (es decir, la escala) mientras que extractAIC no lo hace, por lo tanto $k$ es uno menos con extractAIC .
  • AIC utiliza la fórmula $n\log\frac{RSS}{n}+n+n\log\left(2\pi\right)$ para la probabilidad logarítmica -2, mientras que extractAIC deja de lado la constante aditiva y sólo utiliza $n\log\frac{RSS}{n}$ . (Al menos por defecto; se puede establecer una escala personalizada).

Por supuesto, nada de esto importa, si los valores sólo se utilizan en la comparación.

Además de estos, y como ya se ha señalado anteriormente, extractAIC se comporta de manera diferente para lm y glm (en contraste con AIC ), es decir, utiliza la fórmula anterior sólo para lm , para glm cambia a la aic función del modelo ajustado, que es diferente.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X