이원분산분석 :: R 기초 통계 - mindscale
Skip to content

이원분산분석

예제 데이터 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로 유의미하지 않음. 상호작용 효과는 발견하지 못함