더북(TheBook)

다음은 iris 데이터의 1행, 51행, 101행 데이터가 어떻게 코딩되어 모델에 사용되는지를 보여준다. 아이리스에서 1행은 setosa, 51행은 versicolor, 101행은 virginica 종에 대한 데이터임을 상기하기 바란다.

> model.matrix(m)[c(1, 51, 101), ]
    (Intercept) Sepal.Width Petal.Length Petal.Width Speciesversicolor Speciesvirginica
1             1         3.5          1.4         0.2                 0                0
51            1         3.2          4.7         1.4                 1                0
101           1         3.3          6.0         2.5                 0                1

이렇게 만들어진 모델은 Species별로 Sepal.Length에 대해 다음과 같은 세 가지 모델을 만든 셈이다(편의를 위해 소수점 3자리 이하를 버리고 오차항은 생략함).

Species

모델

setosa

2.17 + Sepal.Width * 0.49 + Petal.Length * 0.82 + Petal.Width * (-0.31)

versicolor

2.17 - 0.72 + Sepal.Width * 0.49 + Petal.Length * 0.82 + Petal.Width * (-0.31)

virginica

2.17 - 1.02 + Sepal.Width * 0.49 + Petal.Length * 0.82 + Petal.Width * (-0.31)

이 모델은 Species별로 절편만 다르고 그 외 부분은 동일하다. 만약 Species별로 다른 설명 변수의 계수까지 다르게 설정하고 싶다면 Species와 다른 열의 상호 작용을 모델링해야 한다. 설명 변수 간 상호 작용은 ‘8.3.6 상호 작용’ 절에서 다루기로 하자. 상호 작용을 고려한 다양한 모델 설명에 대해서는 참고자료 [7]에서 ‘Analysis of Covariance’ 절을 참고하기 바란다.

anova( )를 사용해 분산 분석 결과를 보자.

> anova(m)
Analysis of Variance Table

Response:  Sepal.Length
             Df Sum Sq Mean Sq  F value    Pr(>F)
Sepal.Width   1  1.412   1.412  15.0011 0.0001625 ***
Petal.Length  1 84.427  84.427 896.8059 < 2.2e-16 ***
Petal.Width   1  1.883   1.883  20.0055 1.556e-05 ***
Species       2  0.889   0.444   4.7212 0.0103288 *
Residuals   144 13.556   0.094
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

summary( )로 살펴볼 때와는 달리 anova( )의 결과에서는 Species가 하나의 설명 변수로 묶여서 표시된다. 이 표를 보면 Species의 p 값은 0.0103288이므로 유의미한 설명 변수(즉, 가설 검정 시 Species의 계수를 0으로 볼 수 없다)임을 알 수 있다.

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