AIC는 모델의 적합도와 예측 변인의 갯수가 (파라미터의 갯수) 적절한지를 보는 지표이다. 예측변인이 필요이상으로 많다면 AIC지수가 높아지게 되어 적절한 모델이 아님을 알려준다. 이것은 anova 펑션을 이용하여 중첩된 두 회귀분석의 F값을 비교하는 방법과 비슷하다고 보면 된다.
lm.01 <- lm(mpg ~ wt, data=mtcars)
lm.02 <- lm(mpg ~ wt + hp, data=mtcars)
lm.03 <- lm(mpg ~ wt + hp + disp, data=mtcars)
anova(lm.01, lm.02, lm.03)
AIC(lm.03)
AIC(lm.02)
AIC(lm.01)
AIC(lm.01, lm.02, lm.03)
> lm.01 <- lm(mpg ~ wt, data=mtcars)
> lm.02 <- lm(mpg ~ wt + hp, data=mtcars)
> lm.03 <- lm(mpg ~ wt + hp + disp, data=mtcars)
> anova(lm.01, lm.02, lm.03)
Analysis of Variance Table
Model 1: mpg ~ wt
Model 2: mpg ~ wt + hp
Model 3: mpg ~ wt + hp + disp
Res.Df RSS Df Sum of Sq F Pr(>F)
1 30 278.32
2 29 195.05 1 83.274 11.9579 0.001758 **
3 28 194.99 1 0.057 0.0082 0.928507
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
>
> AIC(lm.03)
[1] 158.643
> AIC(lm.02)
[1] 156.6523
> AIC(lm.01)
[1] 166.0294
> AIC(lm.01, lm.02, lm.03)
df AIC
lm.01 3 166.0294
lm.02 4 156.6523
lm.03 5 158.6430
>
아래는 AIC가 사용된 예로써, [[:statistical regression]]의 결과 아웃풋이다.
> step(lm.mod, direction="backward")
Start: AIC=65.83
mpg ~ wt + hp + disp
Df Sum of Sq RSS AIC
- disp 1 0.057 195.05 63.840
194.99 65.831
- hp 1 51.692 246.68 71.356
- wt 1 88.503 283.49 75.806
# 에 해당하는 점수 65.831은
# Start: AIC=65.83을 이야기한다. 즉 아무변인도
# 제거하지 않았을 때의 AIC점수가 65.831이다
# 그 다음 AIC점수는 해당 줄의 변인이 제거되었을
# 때의 점수를 말한다. 그 점수가 제일 낮은
# 것이 63.840이고 이 점수는 보다
# 낮으니 해당변인인 disp를 제거한 결과는
# 본다
Step: AIC=63.84
mpg ~ wt + hp
Df Sum of Sq RSS AIC
195.05 63.840
- hp 1 83.274 278.32 73.217
- wt 1 252.627 447.67 88.427
Call:
lm(formula = mpg ~ wt + hp, data = mtcars)
Coefficients:
(Intercept) wt hp
37.22727 -3.87783 -0.03177
>