Расчет АПК «вручную» в R

15

Я попытался вычислить 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 -Reinstate Монике
1
@Glen_b: Почему говорят, что вероятность определяется только с точностью до мультипликативной константы? В конце концов, сравнивая не вложенные модели из разных семейств распределения (например, с AIC или с тестом Кокса), вы должны помнить эту константу.
Scortchi - Восстановить Монику
@ Scortchi определение не мое! Вам придется обсудить это с RAFisher. Я думаю, что так было с самого начала (1921). То, что он по-прежнему определен таким образом, по крайней мере, в непрерывном случае, см. Здесь , например, в начале предложения «Точнее».
Glen_b

Ответы:

18

Обратите внимание, что справка по функции logLikв R говорит, что для lmмоделей она включает в себя «все константы» ... так log(2*pi)что где-то там будет и другой постоянный член для показателя степени вероятности. Также нельзя забывать считать тот факт, что является параметром.σ2

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

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

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

AIC=2p2logL

но учтите, что для модели с 1 независимой переменной p = 3 (x-коэффициент, постоянная и )σ2

Что означает, что вы получите ответ так:

nrow(mtcars)*(log(2*pi)+1+log((sum(lm_mtcars$residuals^2)/nrow(mtcars))))
       +((length(lm_mtcars$coefficients)+1)*2)
Glen_b - Восстановить Монику
источник
Почему при расчете вы делите только на n, а не на n - p ? s2nnp
Люк Торберн
1
См определение АИК: , где вектор параметров, θ оцениваются в максимуме (то есть все элементы & thetas являются ОМП); например, см. информационный критерий Википедии Акаике: Определение . Если вы не деля на п есть в вычислении сг 2 , вы не вычисляя ОМП сг 2 и так на самом деле не вычисления AIC - в действительности вы бы регулировочного дважды для эффекта установленных параметров. (Да, многие люди делают это неправильно)2logL(θ^)+2pθθ^nσ^2σ2
Glen_b - Восстановить Монику
Есть ли опечатка во втором уравнении? Должна ли она быть Хорошо , я вижу, вы используете 2logL=nlog(2π)+nlogsn+i(ei2/sn2)2πsn2
Rhody
10

AIC2k2logLLknlogSrn+2(k1)Srn

Scortchi - Восстановить Монику
источник