R에서 AIC ()와 extractAIC ()의 차이점은 무엇입니까?


11

어느 쪽이든 R 문서는 그다지 밝지 않습니다. 이 링크 에서 얻을 수있는 것은 둘 중 하나를 사용하는 것이 좋습니다. 내가 얻지 못하는 것은 왜 그들이 평등하지 않은지입니다.

사실 : R의 단계적 회귀 함수는를 step()사용합니다 extractAIC().

흥미롭게도 R의 'mtcars'데이터 세트 에서 lm()모델과 glm()'null'모델 (인터셉트 만)을 실행하면 AIC및에 대한 결과가 다릅니다 extractAIC().

> null.glm = glm(mtcars$mpg~1)
> null.lm = lm(mtcars$mpg~1)

> AIC(null.glm)
[1] 208.7555
> AIC(null.lm)
[1] 208.7555
> extractAIC(null.glm)
[1]   1.0000 208.7555
> extractAIC(null.lm)
[1]   1.0000 115.9434

위의 두 모델이 동일하고 두 모델에 AIC()대해 동일한 결과를 제공 한다는 점을 감안하면 이상 합니다.

누구든지 문제에 대해 밝힐 수 있습니까?

답변:


6

이 두 기능 (? AIC 및? extractAIC 사용)에 대한 도움말에 따르면 이것이 예상됩니다.

AIC는 로그 가능성에 대한 경우도 있기 때문에 추가 상수까지만 정의됩니다. 이것은 당신이 여부를 확인해야한다는 것을 의미합니다

extractAIC(full.modell) - extractAIC(null.modell)

AIC(full.modell) - AIC(null.modell)

동일한 결과를 제공하십시오. 그들이하는 한, 두 기능은 모든 실제적인 목적에 동일합니다.


2
아마 뭔가가 있어요,하지만 난 아직도 이유를 이해하지 못하는 extractAIC(null.lm) != AIC(null.lm)동안 extractAIC(null.glm) == AIC(null.glm)비록 null.lm같은 모델입니다 null.glm. 답을 조금 넓힐 수 있습니까?
smillig

2
@smillig는 extractAIC다른 방법을 사용 lm적합하고 glm, 즉 적합을, extractAIC.lm하고 extractAIC.glm. getAnywhere코드를 연구하는 데 사용할 수 있습니다 . AIC두 방법 모두 동일한 방법을 사용합니다.
Roland

두 함수가 서로 다른 결과를 제공하는 여러 쌍의 모델 (여러 예측 변수 포함)이 있습니다. 모델 1 : y = x1 + x2, 모델 2 : y = z + x1 + x2 * z. extractAIC()AIC는 모델 2에 대해 낮은 (양의) 값을 제공하는 반면 AIC는 모델 2에 대해 낮은 (양의) 값을 제공합니다.
Maxim.K

1
@ Maxim.K 사용 된 변수 및 모델 유형에 대한 정보는 거의 없습니다. 당신이 하고이 질문에 약간의 차이점이 있다면 이것을 새로운 질문으로 게시하는 것이 좋습니다. 세부 사항을 모른 채 말하기가 어렵습니다.
Erik

@Erik z가 연속적이고 x2가 범주 형 (흐리게 표시됨)이라고 말하면 많은 가치가 있다고 생각합니다. 재생산 할 데이터가 필요하고 두려워서 게시 할 수 없습니다.
Maxim.K
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.