Die R-Dokumentation für beide gibt nicht viel Aufschluss. Alles, was ich von diesem Link bekommen kann, ist, dass es in Ordnung sein sollte, einen von beiden zu verwenden. Was ich nicht verstehe ist, warum sie nicht gleich sind.
Fakt: Die schrittweise Regressionsfunktion in R, step()
verwendet extractAIC()
.
Interessanterweise führt das Ausführen eines lm()
Modells und eines glm()
Nullmodells (nur der Achsenabschnitt) für den Datensatz 'mtcars' von R zu unterschiedlichen Ergebnissen für AIC
und 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 ist seltsam, da beide oben genannten Modelle gleich sind und AIC()
für beide die gleichen Ergebnisse liefern.
Kann jemand etwas Licht auf das Thema werfen?
quelle
extractAIC(null.lm) != AIC(null.lm)
währendextractAIC(null.glm) == AIC(null.glm)
obwohlnull.lm
das gleiche Modell wienull.glm
. Könnten Sie Ihre Antwort ein wenig erweitern?extractAIC
verwendet verschiedene Methoden fürlm
Anpassungen undglm
Anpassungen, dhextractAIC.lm
undextractAIC.glm
. Sie können verwendengetAnywhere
, um ihren Code zu studieren.AIC
verwendet die gleiche Methode für beide.extractAIC()
gibt niedrigeren (negativen) Wert für Modell 1, während AIC niedrigeren (positiven) Wert für Modell 2 gibt.