피셔의 정확 검정
분할표를 그린 뒤 카이 제곱을 적용할 때 표본 수가 적거나 표본이 분할표의 셀에 매우 치우치게 분포되어 있다면 카이 제곱 검정의 결과가 부정확할 수 있다. 표본 수가 적다는 기준은 특정 짓기 어렵지만 기대 빈도가 5 이하인 셀이 전체의 20% 이상인 경우 등이 이에 해당한다. chisq.test( )는 이런 경우 경고 메시지를 출력하여 카이 제곱 검정이 부정확할 수 있음을 알린다.
카이 제곱 검정이 부정확한 경우에는 피셔의 정확 검정Fisher’s Exact Test을 사용한다. 통계적인 계산식에 대한 설명은 피셔의 정확한 검정에 대한 참고자료[7], [8]를 보기 바란다. 이 절에서는 R에서 피셔의 정확 검정을 수행하는 방법에 대해 설명할 것이다. 피셔의 정확 검정에는 fisher.test( ) 함수를 사용한다.
fisher.test : 피셔의 정확 검정을 수행한다. |
fisher.test( x, # 행렬 형태의 이차원 분할표 또는 팩터 y=NULL, # 팩터. x가 행렬이면 무시된다. alternative="two.sided" # 대립가설로 two.sided는 양측 검정, less는 작다, greater는 크다를 의미 ) |
MASS::survey 데이터에서 손 글씨를 어느 손으로 쓰는지와 박수를 칠 때 어느 손이 위로 가는지 사이의 경우에 대해 피셔의 정확 검정을 수행해보자. 분할표를 xtab( )으로 구한 뒤 카이 제곱 검정을 수행하면 카이 제곱 검정이 정확하지 않다는 경고 메시지가 나온다.
> xtabs(~ W.Hnd + Clap, data=survey) Clap W.Hnd Left Neither Right Left 9 5 4 Right 29 45 143 > chisq.test(xtabs(~ W.Hnd + Clap, data=survey)) Pearson's Chi-squared test data: xtabs(~ W.Hnd + Clap, data = survey) X-squared = 19.2524, df = 2, p-value = 6.598e-05 Warning message: In chisq.test(xtabs(~ W.Hnd + Clap, data = survey)) : Chi-squared approximation may be incorrect
이 경우 fisher.test( ) 함수를 사용해야 한다.
> fisher.test(xtabs(~ W.Hnd + Clap, data=survey))
Fisher's Exact Test for Count Data
data: xtabs(~W.Hnd + Clap, data = survey)
p-value = 0.0001413
alternative hypothesis: two.sided
p-value가 0.05보다 작으므로 글씨를 쓰는 손과 박수를 칠 때 위에 오는 손이 독립이라는 귀무가설을 기각하고 둘 사이에 관계가 있다는 대립가설을 채택한다.