이원분산분석
예제 데이터 poison.csv를 다운로드 받는다.
데이터를 연다.
dat = read.csv('poisons.csv')
head(dat)
X time poison treat 1 1 0.31 1 A 2 2 0.45 1 A 3 3 0.46 1 A 4 4 0.43 1 A 5 5 0.36 2 A 6 6 0.29 2 A
이 데이터에서 종속변수는 time, 독립변수는 poison과 treat이다.
poison
이 수치형으로 표현되어 있으므로 factor
로 변환해준다.
dat$poison = as.factor(dat$poison)
균형설계자료인지 확인한다.
replications(time ~ poison * treat, dat)
poison treat poison:treat 16 12 4
- poison 요인으로 구분한 집단별 표본수는 모두 16으로 동일
- treat 요인구분한 집단별 표본수는 모두 12으로 동일
- poison과 treat 요인으로 구분한 각 집단별 표본수는 모두 4로 동일
- 모든 집단별 표본수가 동일하므로, 균형설계자료
이원분산분석 실시:
m1 = aov(time ~ poison * treat, dat)
summary(m1)
Df Sum Sq Mean Sq F value Pr(>F) poison 2 1.0330 0.5165 23.222 3.33e-07 *** treat 3 0.9212 0.3071 13.806 3.78e-06 *** poison:treat 6 0.2501 0.0417 1.874 0.112 Residuals 36 0.8007 0.0222 --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
결과 해석: - poison: F(2, 36) = 23.222, p < 0.05로 유의미. 즉 poison의 수준에 따라 평균에 차이가 난다고 볼 수 있음 - treat: F(3, 36) = 13.806, p < 0.05로 유의미. 즉 treat의 수준에 따라 평균에 차이가 난다고 볼 수 있음 - poison:treat: F(6, 36) = 1.874, p > 0.05로 유의미하지 않음. 상호작용 효과는 발견하지 못함