분산 분석 및 모델 간의 비교

    선형 회귀에서 분산 분석Analysis of Variance2 은 모델을 평가하거나 모델 간의 비교를 위해 사용된다. 이때 사용하는 함수는 anova( )다.

    표 8-3 분산 분석

    anova : 하나 이상의 모델 객체에 대한 분산 분석을 수행한다.

    anova(
      object,  # 모델 피팅 함수(예를 들면, lm)의 반환 값
      ...      # 비교할 또 다른 객체들
    )

    summary( )가 보여주는 F 통계량은 anova( ) 함수를 사용해 직접 구할 수 있다.

    > anova(m)
    Analysis of Variance Table
    
    Response: dist
              Df Sum Sq Mean Sq F value Pr(>F)
    speed      1 21186 21185.5 89.567 1.49e-12 ***
    Residuals 48 11354   236.5
    ---
    Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
    

    또한, anova( ) 함수를 사용해 완전 모델과 축소 모델을 직접 비교해볼 수도 있다. 완전 모델은 원래 사용한 모델 dist ~ speed며, 축소 모델은 원래 사용한 모델보다 설명 변수를 줄인 모델로 speed를 제외하고 dist를 상숫값으로 예측한 경우다.

    > (full <- lm(dist ~ speed, data=cars))
    Call:
    lm(formula = dist ~ speed, data = cars)
    
    Coefficients:
    (Intercept)     speed
        -17.579     3.932
    
    > (reduced <- lm(dist ~ 1, data=cars))
    Call:
    lm(formula = dist ~ 1, data = cars)
    
    Coefficients:
    (Intercept)
          42.98
    

    다음은 anova( )로 full과 reduced를 비교한 결과다.

    > anova(reduced, full)
    Analysis of Variance Table
    
    Model 1: dist ~ 1
    Model 2: dist ~ speed
      Res.Df   RSS Df Sum of Sq      F Pr(>F)
    1     49 32539
    2     48 11354  1     21186 89.567 1.49e-12 ***
    ---
    Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
    

    모델을 비교한 결과 F 통계량은 89.567이며, p 값은 아주 작게 나타났다. 따라서 reduced 모델과 full 모델 간에는 유의한 차이가 있다고 결론을 내린다. 바꿔 말하면 speed열이 유의미한 설명 변수임을 뜻한다.


    2 분산 분석에 대한 더 많은 내용은 참고자료 [6] ~ [8]을 참고하기 바란다.

    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.