Я попытался вычислить AIC линейной регрессии в R, но без использования AIC
функции, например:
lm_mtcars <- lm(mpg ~ drat, mtcars)
nrow(mtcars)*(log((sum(lm_mtcars$residuals^2)/nrow(mtcars))))+(length(lm_mtcars$coefficients)*2)
[1] 97.98786
Тем не менее, AIC
дает другое значение:
AIC(lm_mtcars)
[1] 190.7999
Может кто-нибудь сказать мне, что я делаю не так?
5
(пока не проверяя свой ответ): вы не обязательно делаете что-то не так, поскольку вероятность определяется только с точностью до мультипликативной константы; два человека могут рассчитать логарифмическую вероятность и получить разные числа (но различия в логарифмической вероятности одинаковы).
—
Glen_b
Я думаю, что ответ Hong Oois связан с этим вопросом. Формула, функция
—
COOLSerdash
AIC
использует это -2*as.numeric(logLik(lm_mtcars))+2*(length(lm_mtcars$coefficients)+1)
.
luciano: «+1» в этой формуле @COOLSerdash указывает на результат, возникающий из члена параметра дисперсии. Отметим также , что функция
—
Glen_b -Reinstate Монике
logLik
говорит , что для lm
моделей включает в себя «все константы» ... так что там будет log(2*pi)
где - то там
@Glen_b: Почему говорят, что вероятность определяется только с точностью до мультипликативной константы? В конце концов, сравнивая не вложенные модели из разных семейств распределения (например, с AIC или с тестом Кокса), вы должны помнить эту константу.
—
Scortchi - Восстановить Монику