Обчислення AIC "від руки" в R


16

Я спробував обчислити 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 -Встановіть Моніку

1
Гадаю, відповідь Hong Oois пов'язана з цим питанням. Формула, яку використовує функція, AICтака -2*as.numeric(logLik(lm_mtcars))+2*(length(lm_mtcars$coefficients)+1).
COOLSerdash

luciano: "+1" у цій формулі @COOLSerdash вказує на те, що виникає з терміна параметра параметра дисперсії. Зауважте також, що ця функція logLikговорить про те, що для lmмоделей вона включає "всі константи" ... тож log(2*pi)там десь буде
Glen_b -Встановити Моніку

1
@Glen_b: Чому кажуть, що ймовірність визначена лише до мультиплікативної константи? Зрештою, порівнюючи вкладені моделі з різних сімейства розповсюдження (наприклад, з AIC або з тестом Кокса), потрібно пам’ятати про цю константу.
Scortchi

@Scortchi визначення не моє! Вам доведеться взятися за це з RAFisher. Думаю, це було саме з самого початку (1921). Що це все ще визначено таким чином, принаймні у безперервному випадку, дивіться тут , наприклад, у реченні, що починається "Точніше".
Glen_b -Встановіть Моніку

Відповіді:


19

logLiklmlog(2*pi)σ2

L(μ^,σ^)=(12πsn2)nexp(12i(ei2/sn2))

2logL=nlog(2π)+nlogsn2+i(ei2/sn2)

=n[log(2π)+logsn2+1]

AIC=2p2logL

σ2 )

Це означає, що ви отримуєте їх відповідь:

nrow(mtcars)*(log(2*pi)+1+log((sum(lm_mtcars$residuals^2)/nrow(mtcars))))
       +((length(lm_mtcars$coefficients)+1)*2)

s2nnp

1
2logL(θ^)+2pθθ^nσ^2σ2
Glen_b -Встановити Моніку

2logL=nlog(2π)+nlogsn+i(ei2/sn2)2πsn2

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.