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
<none>              194.99 65.831
- hp    1    51.692 246.68 71.356
- wt    1    88.503 283.49 75.806

# <none>에 해당하는 점수 65.831은 
# Start: AIC=65.83을 이야기한다. 즉 아무변인도
# 제거하지 않았을 때의 AIC점수가 65.831이다
# 그 다음 AIC점수는 해당 줄의 변인이 제거되었을 
# 때의 점수를 말한다. 그 점수가 제일 낮은 
# 것이 63.840이고 이 점수는 <none>보다
# 낮으니 해당변인인 disp를 제거한 결과는 
# 본다

Step:  AIC=63.84
mpg ~ wt + hp

       Df Sum of Sq    RSS    AIC
<none>              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  

>