Jaka jest różnica między AIC () a extractAIC () w R?

11

Dokumentacja R dla obu nie rzuca dużo światła. Jedyne, co mogę uzyskać z tego linku, to to, że użycie jednego z nich powinno być w porządku. Nie rozumiem, dlaczego nie są równe.

Fakt: funkcję regresji krokowej w R, step()zastosowania extractAIC().

Co ciekawe, uruchomienie lm()modelu i modelu glm()„zerowego” (tylko przechwytywanie) w zestawie danych „mtcars” R daje różne wyniki dla AICi 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

To dziwne, biorąc pod uwagę, że oba powyższe modele są takie same i AIC()daje takie same wyniki dla obu.

Czy ktoś może rzucić nieco światła na ten problem?

Sudip Sinha
źródło

Odpowiedzi:

6

Zgodnie z pomocą dla tych dwóch funkcji (użyj AIC i A extractAIC) jest to oczekiwane.

Zauważ, że AIC jest właśnie zdefiniowany do stałej addytywnej, ponieważ dotyczy to również prawdopodobieństwa logarytmicznego. Oznacza to, że powinieneś sprawdzić, czy

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

i

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

dać ten sam wynik. Tak długo, jak to robią, obie funkcje są równoważne dla wszystkich praktycznych celów.

Erik
źródło
2
Prawdopodobnie coś mi brakuje, ale nadal nie rozumiem, dlaczego extractAIC(null.lm) != AIC(null.lm), extractAIC(null.glm) == AIC(null.glm)mimo że null.lmto ten sam model co null.glm. Czy mógłbyś trochę rozszerzyć swoją odpowiedź?
smillig
2
@smillig extractAICużywa różnych metod lmdopasowania i glmdopasowania, tj . extractAIC.lmi extractAIC.glm. Możesz użyć getAnywheredo nauki ich kodu. AICużywa tej samej metody dla obu.
Roland,
Mam kilka par modeli (z wieloma predyktorami), dla których obie funkcje dają różne wyniki. Model 1: y = x1 + x2, Model 2: y = z + x1 + x2 * z. extractAIC()daje niższą (ujemną) wartość dla Modelu 1, podczas gdy AIC daje niższą (dodatnią) wartość dla Modelu 2.
Maksymalny K
1
@ Maxim.K Dajesz niewiele informacji o rodzaju używanych zmiennych i modeli. Jeśli tak, i istnieją pewne różnice w tym pytaniu, warto opublikować je jako nowe pytanie. Trudno powiedzieć, nie znając szczegółów.
Erik,
@Erik Wątpię, czy będzie wiele warte, jeśli powiem, że z jest ciągłe, a x2 jest kategoryczne (zmatowione). Potrzebne są dane do odtworzenia i obawiam się, że nie mogę ich opublikować.
Maxim.K