La documentation R pour l'un ou l'autre n'apporte pas beaucoup de lumière. Tout ce que je peux obtenir de ce lien est que l'utilisation de l'un ou l'autre devrait être correcte. Ce que je ne comprends pas, c'est pourquoi ils ne sont pas égaux.
Réalité: La fonction de régression pas à pas dans R, step()
utilise extractAIC()
.
Fait intéressant, l'exécution d'un lm()
modèle et d' un modèle glm()
«nul» (uniquement l'interception) sur l'ensemble de données «mtcars» de R donne des résultats différents pour AIC
et 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
C'est bizarre, étant donné que les deux modèles ci-dessus sont les mêmes et AIC()
donnent les mêmes résultats pour les deux.
Quelqu'un peut-il éclairer la question?
la source
extractAIC(null.lm) != AIC(null.lm)
tout ,extractAIC(null.glm) == AIC(null.glm)
même sinull.lm
est le même modèle quenull.glm
. Pourriez-vous développer un peu votre réponse?extractAIC
utilise différentes méthodes pour leslm
ajustements etglm
ajustements, c'est-à-direextractAIC.lm
etextractAIC.glm
. Vous pouvez utilisergetAnywhere
pour étudier leur code.AIC
utilise la même méthode pour les deux.extractAIC()
donne une valeur inférieure (négative) pour le modèle 1, tandis que AIC donne une valeur inférieure (positive) pour le modèle 2.