Документация R для обоих не проливает много света. Все, что я могу получить по этой ссылке, это то, что использование любого из них должно быть хорошо. Я не понимаю, почему они не равны.
Факт: пошаговая функция регрессии в R, step()
использует extractAIC()
.
Интересно, что запуск lm()
модели и glm()
«нулевой» модели (только пересечение) в наборе данных «mtcars» R дает разные результаты для AIC
и 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
Это странно, учитывая, что обе модели выше одинаковы, и AIC()
дает одинаковые результаты для обеих.
Кто-нибудь может пролить свет на проблему?
источник
extractAIC(null.lm) != AIC(null.lm)
,extractAIC(null.glm) == AIC(null.glm)
хотяnull.lm
это та же модель, что иnull.glm
. Не могли бы вы немного расширить свой ответ?extractAIC
использует различные методы дляlm
припадков иglm
припадков, то есть,extractAIC.lm
иextractAIC.glm
. Вы можете использовать,getAnywhere
чтобы изучить их код.AIC
использует один и тот же метод для обоих.extractAIC()
дает более низкое (отрицательное) значение для Модели 1, в то время как AIC дает более низкое (положительное) значение для Модели 2.