В чем разница между AIC () и extractAIC () в R?


11

Документация 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()дает одинаковые результаты для обеих.

Кто-нибудь может пролить свет на проблему?

Ответы:


6

Согласно справке для этих двух функций (используйте? AIC и? ExtractAIC), это ожидается.

Обратите внимание, что AIC определяется с точностью до аддитивной константы, поскольку это также относится к логарифмической вероятности. Это означает, что вы должны проверить,

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

и

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

дать тот же результат. Пока они делают, обе функции эквивалентны для всех практических целей.


2
Я, наверное, что-то упускаю, но я до сих пор не понимаю, почему extractAIC(null.lm) != AIC(null.lm), extractAIC(null.glm) == AIC(null.glm)хотя null.lmэто та же модель, что и null.glm. Не могли бы вы немного расширить свой ответ?
Смиллиг

2
@smillig extractAICиспользует различные методы для lmприпадков и glmприпадков, то есть, extractAIC.lmи extractAIC.glm. Вы можете использовать, getAnywhereчтобы изучить их код. AICиспользует один и тот же метод для обоих.
Роланд

У меня есть несколько пар моделей (с несколькими предикторами), для которых обе функции дают разные результаты. Модель 1: y = x1 + x2, Модель 2: y = z + x1 + x2 * z. extractAIC()дает более низкое (отрицательное) значение для Модели 1, в то время как AIC дает более низкое (положительное) значение для Модели 2.
Maxim.K

1
@ Maxim.K Вы даете мало информации о типе переменных и используемых моделей. Если вы ответили и есть некоторые различия в этом вопросе, возможно, стоит опубликовать этот вопрос как новый. Трудно сказать, не зная деталей.
Эрик

@Erik Я сомневаюсь, что это будет много стоить, если я скажу, что z непрерывна, а x2 категорична (dummified). Мне нужно, чтобы данные воспроизводились, и я не могу их публиковать, боюсь.
Maxim.K
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.