ANOVA와 사후 검정 (post hoc analysis)은 널리 사용되는 방식이기는 하지만, 역시 분석 방법에 다른 특징과 단점도 가지고 있습니다. 일단 다양한 사후 검정 방법이 존재하므로 서로 다른 결과가 나올 수 있다는 점과 검증하고자 하는 그룹이 많아질수록 우연히 유의한 결과가 나올 가능성도 커진다는 점 등이 문제입니다. 물론 후자의 경우 본페로니 방법이 이를 쉽게 회피할 수 있는 가장 간단한 방법이지만, 대신 유의한 결과를 놓칠 수 있는 문제도 있기는 합니다.
우선 비교하고자 하는 그룹이 3개에서 4개로 증가하면 어떻게 되는지를 살펴보겠습니다. 앞서 예제와 같이 A,B,C 반의 학생의 키의 차이를 비교하는 것에서 이제 D 반을 새로 만들겠습니다.
#n=50
set.seed(1234)
A<-rnorm span="">-rnorm>
set.seed(123)
B<-rnorm span="">-rnorm>
set.seed(12345)
C<-rnorm span="">-rnorm>
DFA<-data .frame="" class="" height="" span="">-data>
colnames(DFA)<-c height="" lass="" span="">-c>
DFB<-data .frame="" class="" height="" span="">-data>
colnames(DFB)<-c height="" lass="" span="">-c>
DFC<-data .frame="" class="" height="" span="">-data>
colnames(DFC)<-c height="" lass="" span="">-c>
DF2<-rbind span="">-rbind>
out=aov(height~Class, data=DF2)
summary(out)
Df Sum Sq Mean Sq F value Pr(>F)
Class 2 447 223.56 9.436 0.000139 ***
Residuals 147 3483 23.69
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
set.seed(1234)
A<-rnorm span="">-rnorm>
set.seed(123)
B<-rnorm span="">-rnorm>
set.seed(12345)
C<-rnorm span="">-rnorm>
set.seed(12345)
D<-rnorm span=""> -rnorm>
DFA<-data .frame="" class="" height="" span="">-data>
colnames(DFA)<-c height="" lass="" span="">-c>
DFB<-data .frame="" class="" height="" span="">-data>
colnames(DFB)<-c height="" lass="" span="">-c>
DFC<-data .frame="" class="" height="" span="">-data>
colnames(DFC)<-c height="" lass="" span="">-c>
DFD<-data .frame="" class="" height="" span="">-data>
colnames(DFD)<-c height="" lass="" span="">-c>
DF2<-rbind span="">-rbind>
out=aov(height~Class, data=DF2)
summary(out)
Df Sum Sq Mean Sq F value Pr(>F)
Class 3 811 270.47 11.98 3.1e-07 ***
Residuals 196 4425 22.58
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
당연한 이야기지만 비교하려는 그룹의 수가 증가할수록 ANOVA에서 유의한 결과가 나올 가능성이 커집니다. 그래서 사후 검정을 통해서 어떤 그룹끼리 차이가 나는지 비교하려고 할 경우에도 문제는 있습니다. 그룹의 수가 증가함에 따라 P 값의 숫자가 급격히 증가하기 때문입니다. 예를 들어 그룹이 3개인 경우 P 값은 3개 (A-B, B-C, A-C)가 되지만 4개인 경우 6개로 증가합니다. (A-B, A-C, A-D, B-C, B-D, C-D)
pairwise.t.test(DF2$height,DF2$Class,p.adjust.method = "bonferroni")
Pairwise comparisons using t tests with pooled SD
data: DF2$height and DF2$Class
A B C
B 0.79229 - -
C 0.00012 0.02748 -
D 2.4e-06 0.00150 1.00000
P value adjustment method: bonferroni
따라서 이 경우 비교하고자 하는 그룹은 사실 3개인 경우가 가장 적당하며 이 이상이되면 모든 P값을 보여주기보다 레퍼런스가 되는 그룹을 하나 정해서 그 그룹과 차이가 나는 경우를 표시해주면 좋을 것입니다. 물론 통계 분석 방법 자체를 바꾸는 것도 방법인데, 어떤 분석 방법을 사용할 것인지는 연구 종류 및 목적에 따라 천차만별일 것입니다. 앞으로 이 이야기를 계속 해보겠습니다.
(추가 : 사실 이런 문제 때문에 Compact letter display라는 표기 방법이 존재합니다. 앞으로 Tukey 사후 검정과 함께 실제 예제를 통해서 알아 보겠습니다)
댓글
댓글 쓰기