Я попытался вычислить 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
Может кто-нибудь сказать мне, что я делаю не так?
r
aic
information-theory
Лучиано
источник
источник
AIC
использует это-2*as.numeric(logLik(lm_mtcars))+2*(length(lm_mtcars$coefficients)+1)
.logLik
говорит , что дляlm
моделей включает в себя «все константы» ... так что там будетlog(2*pi)
где - то тамОтветы:
Обратите внимание, что справка по функцииσ2
logLik
в R говорит, что дляlm
моделей она включает в себя «все константы» ... такlog(2*pi)
что где-то там будет и другой постоянный член для показателя степени вероятности. Также нельзя забывать считать тот факт, что является параметром.но учтите, что для модели с 1 независимой переменной p = 3 (x-коэффициент, постоянная и )σ2
Что означает, что вы получите ответ так:
источник
AIC
источник