J'ai essayé de calculer l'AIC d'une régression linéaire dans R mais sans utiliser la AIC
fonction, comme ceci:
lm_mtcars <- lm(mpg ~ drat, mtcars)
nrow(mtcars)*(log((sum(lm_mtcars$residuals^2)/nrow(mtcars))))+(length(lm_mtcars$coefficients)*2)
[1] 97.98786
Cependant, AIC
donne une valeur différente:
AIC(lm_mtcars)
[1] 190.7999
Quelqu'un pourrait-il me dire ce que je fais mal?
r
aic
information-theory
luciano
la source
la source
AIC
est-2*as.numeric(logLik(lm_mtcars))+2*(length(lm_mtcars$coefficients)+1)
.logLik
indique que pour leslm
modèles, elle inclut «toutes les constantes» ... donc il y en auralog(2*pi)
quelque part quelque partRéponses:
Notez que l'aide sur la fonctionσ2
logLik
dans R indique que pour leslm
modèles, elle inclut «toutes les constantes» ... il y aura donc unlog(2*pi)
in quelque part, ainsi qu'un autre terme constant pour l'exposant dans la vraisemblance. De plus, vous ne pouvez pas oublier de compter le fait que est un paramètre.mais notez que pour un modèle avec 1 variable indépendante, p = 3 (le coefficient x, la constante et )σ2
Ce qui signifie que c'est ainsi que vous obtenez leur réponse:
la source
AIC
la source