R에서 "손으로"AIC 계산


15

R에서 선형 회귀의 AIC를 계산하려고 시도했지만 다음 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 : 수식 @COOLSerdash의 "+1"은 분산 모수 항에서 발생합니다. 함수 logLiklm모델의 경우 '모든 상수'를 포함 한다고 말합니다 . 그래서 log(2*pi)어딘가에있을 것입니다
Glen_b -Reinstate Monica

1
@Glen_b : 가능성이 곱셈 상수까지만 정의 된 이유는 무엇 입니까? 결국, 다른 분포 제품군 (예 : AIC 또는 Cox 테스트)에서 중첩되지 않은 모델을 비교할 때 해당 상수를 기억해야합니다.
Scortchi-Monica Monica 복원

@Scortchi 정의는 내 것이 아닙니다! RAFisher를 사용해야합니다. 처음부터 그런 식으로 생각합니다 (1921). 그것은 적어도 연속적인 경우에 여전히 그런 식으로 정의되어 있다는 것은 여기 에서 예를 들어 '보다 정확하게'문장의 시작 부분을 참조 하십시오 .
Glen_b-복지 주 모니카

답변:


18

logLikR 의 함수 에 대한 도움말 은 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)

왜 당신의 계산에서 만로 나누어되는 N 이 아니라 N - P ? s2nnp
Luke Thorburn

1
: AIC의 정의를 참조 매개 변수의 벡터는, θ는 (최대에서 평가 즉, 모든 요소가됩니다2logL(θ^)+2pθMLEs있다); 예를 들어 WikipediaAkaike 정보 기준 : 정의를참조하십시오. 당신이로 나누어하지 않는 경우N의 계산에이 σ 2, 당신의 MLE를 계산하지 않는σ2그래서 정말 AIC를 계산하지 - 당신은 피팅 매개 변수의 효과를 두 번 조정 될 것입니다 효과. (예, 많은 사람들이 잘못하고 있습니다)θ^nσ^2σ2
Glen_b-복귀 모니카

두 번째 방정식에 오타가 있습니까? 그것은이어야한다 좋아, 내가보고, 사용중인 2logL=nlog(2π)+nlogsn+i(ei2/sn2)2πsn2
rhody

10

AIC2k2logLLknlogSrn+2(k1)Srn

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.