더북(TheBook)

분산 분석 및 모델 간의 비교

선형 회귀에서 분산 분석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]을 참고하기 바란다.

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