|
|
|
[학술] 통계분석 사후비교 방법 중 Bonferroni 분석법 설명 부탁드립니다.
|
|
|
|
|
| 안녕하세요. 다름이 아니라 논문 리뷰 중인데 처음보는 통계분석을 수행하여 해당 방법에 대해서 문의드립니다. 5가지 실험군에 대해서 real-time PCR을 돌렸는데, 각군의 샘플 수가 3입니다. 통계분석을 graphpad 라는 소프트웨어를 사용하였는데, one-way ANOVA에 사후비교는 Bonferroni 를 사용했습니다. 샘플수도 작고, 결과에 대한 설명이 빈약하여 reject를 고민중인데, 그래도 Bonferroni 가 무었인지 궁금하여 문의드립니다.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Bonferroni (2015-08-31 00:51) 1
|
|
|
후속검정은 유의한 분산분석에 대해 실행하는 것으로, 분산분석은 단순히 여러 군집 중 적어도 하나의 군집이 다른 하나의 군집과 유의한 차이가 있다는 것일뿐, 어느 군집이 어느 군집과 차이가 있는 것인지를 알기 위해서는 후속검정의 방법들 중 하나를 시행해보아야 하는데 이는 결국 2개 군집들의 조합들에 대해서 모두 유의한 차이의 여부를 확인하는 것임. 군집이 5개라면 5C2 가 되므로 총 10개의 2개 군집들의 조합이 있을 수 있으므로 10번의 비교를 하게 되는데 이때 1회의 비교마다 5%의 유의수준을 사용한다면 총 50%의 제1형 오류의 가능성을 가져오게 되므로, 전체 후속검정의 유의수준을 5%로 고정하는 방법을 고려하게 되는 것임. 이 방법이 무엇인가가 여러 후속검정들 사이의 차이에 해당됨. Bonferroni의 방법은 이중 가장 단순한 방법으로 5%/10(비교의 횟수)=0.5%의 유의수준을 각각의
비교에 대해 적용하는 방법임. 각 비교는 일반적인 t-검정과 같은 방법으로 진행하되, 그 유의수준을 0.5%, 즉 99.5%의 신뢰수준으로 검정하여 유의한 차이를 보이는 짝들을 찾아나가는 것이 Bonferroni의 방법임. 끝. 추) 군집별 시료수가 '3'이라면, 자유도가 너무 작아서, 심각한 정도로 검정력이 작을수밖에 없으므로 의미있는 결과를 기대하는 것은 무리임.
|
|
|
|
|
|
|
|
|
multiple comparison correction 방법중 가장 보수적인 방법입니다. 보통 p <0.05를 만족한다는건, 데이터에 의미있는 차이가 없을때 우연히 현재와 같은 양상이 관찰될 확률이 5%미만이라는 거죠. 즉, '차이있음'이라고 선언했을때 '앗 진실이 아닌데 속았구만'할 확률(=false positive)이 5%미만이란 말입니다. 그런데 비교를 한번이 아니라 두번,세번...만약 20번을 한다고 하면 그중에 한번정도는 자연스럽게 false positive가 나올수 있겠죠. 본페로니는 그래서 원하는 p-value를 비교횟수로 나눈 새로운 p-value를 적용하는방법입니다. ANOVA는 셋 이상의 그룹들이 있을때 우선, 세 그룹이 모두 동일한 그룹인지 아닌지르 검정하게 되고, 만약 '세그룹이 모두 동일하지는 않음.'이라고 나오면 구체적으로 누구랑 누구랑 서로 다른그룹인지를 밝혀야 하는
상황이 됩니다. 이게 post hoc test고, 실제로는 t-test를 모든 가능한 조합만큼 실시하는거죠. 그리고 그 가능한 조합의 수로 원하는 p-값을 나눈 새로운 p-value보다 적은 쌍이 있다면, 유의하게 차이가 나는 그룹쌍이라고 보는겁니다.
|
|
|
|
|
|
|
|
|
위에 두 분 말씀이 다 맞습니다. 쉽게 설명드릴께요: 1) 본 퍼로니: 그래프패드에서 선택하여 수행할 수 있는 가장 보수적인 포스트 학 테스트 입니다. 여기서 통과되어 유의미한 차이가 있다고 나오면, 다른 테스트에서도 그렇함.
2) 튜키 : 본 퍼로니 보다는 걸 보수적인 방법. 피셔 보다는 보수적인 방법 3) 피셔 테스트: 가장 리버럴한 (혹은 덜 보수적인) 방법. 여기서 유의미한 차이를 보았더라도, 본퍼로니에서는 두 그룹에 차이가 없다고 나올 우려가 많이 있음. 하지만, 전제가 하나 있어요. 님이 지금하시는 비교는 티 테스트와 아노바와 같이 Parametric test로 검증할 때 그렇다는 얘기이고, 난 파라메트릭 (예. 멘-휘트니-윌콕슨)으로 하면 보다 더 보수적으로 검증해 볼 수 있습니다. 통계를 적용하는 기준으로 0.05 로 많이 놓습니다만,
이것도 약하니, 0.005로 놓아야 한다는 주장도 많이 있습니다 (브릭 홈페이지 내에 그런 논문 소개란이 있음).
|
|
|
|
|
|
|
|
| 이슈 글타래 보기 코로나19 학술토론 여성과기인 지원정책 찬반 공정한 연구과제 심사·평가
|
|
이전 포스팅에서 분산분석과 관련한 가정 검토, 그리고 가설 검정 수행에 대해서 살펴보았습니다.
분산분석 결과, p-value가 0.05보다 작으면 모든 그룹의 평균이 같다고 할 수 없습니다.
다시 말해 최소 한 그룹은 다른 그룹과 차이가 있다는 것이죠.
그럼 사후검정(post hoc analysis)을 통해 어느 그룹간에 차이가 있는 것인지 알아보게 됩니다.
두 그룹씩 짝을 지어서 그룹 간 검정을 수행합니다.
가능한 모든 경우의 수에 대한 짝을 구성한 후 각 각 검정을 수행하는 것입니다.
즉 다중비교(multiple comparison)을 하게 되는 것이죠.
↓예를들어 A, B, C 세 그룹이 있다면 총 3개의 짝이 만들어집니다.
두 개의 그룹을 비교하는 것이니 t-검정을 하는 것과 동일하지만,
t-검정을 여러 번 하게 되면제1종오류(알파)가 기존에 정한 0.05보다 커지는 문제가 생깁니다.
이러한 문제를 해결하기 위해서 여러 가지 방법들이 제안되었습니다.
본페로니(Bonferroni), 튜키 (Tukey), 쉐페
(Scheffe)의 방법등이 일반적으로 많이 사용됩니다.
이 중 본페로니 방법의 경우 해석이 직관적이고 적용 방법이 간단하여 많이 이용됩니다.
가장 보수적인 방법 중 하나이기도 합니다.
본페로니 방법: 유의수준 0.05를 비교하는 개수로 나누어 줍니다.
가령 3개의 그룹을 비교한다면 3개의 짝이 만들어지게 됩니다.
0.05/3=약 0.017
따라서 검정을 할 때 각 군에 대해서 유의수준 0.017을 기준으로 하게 됩니다.
[R example]
#자료 생성
set.seed(1); SBP1<-c(sample(125:140,30,replace=T))
set.seed(1);
SBP2<-c(sample(135:150,30,replace=T))
set.seed(1); SBP3<-c(sample(150:170,30,replace=T))
SBP<-c(SBP1,SBP2,SBP3)
group<-c(rep(1,30),rep(2,30),rep(3,30))
dat<-data.frame(group,SBP)
head(dat)
#분산분석
summary(aov(SBP~group,dat))
anova(lm(SBP~group,dat))
#다중비교
#install.packages("agricolae")
library(agricolae)
model<-aov(SBP~group,dat)
comparison<-LSD.test(model,"group",p.adj="bonferroni",group=F)
comparison
#plot
out<-LSD.test(model,"group",p.adj="bonferroni",group=T)
out
# Variation range: max and min
plot(out)
# variation standard deviation
plot(out,variation="SD")
# Variation interquartil range: Q75 and Q25
plot(out,variation="IQR")
☞ LSD.test 함수를 이용하여 본페로니 보정을 한 결과를 출력하도록 합니다.
예전에는 DFerror와 MSerror값을 직접 입력해야 했는데 지금은 aov 함수 결과를 바로 입력해도 같은 결과가 출력됩니다.
[R results]
1) 자료를 생성합니다.
2) 분산분석을 수행합니다.
3) 분산분석 결과 p-value<0.05 로 사후검정을 수행하게 됩니다.
bonferroni 옵션을 추가하고,
group=F를 넣으면 comparison 결과가 출력됩니다.
1-2, 1-3, 2-3 모두 p-value가 매우 작고 유의하게 나왔음을 확인할 수 있습니다.
4) group=T를 넣으면 각 그룹별 평균과 a,b,c로 그룹이 할당됩니다.
이를 이용해서 그래프를 그리게 됩니다.
4-1) 변동을 range로 나타낸 그래프
4-2) 변동을 Standard deviation으로 통해 나타낸 그래프
4-3) 변동을 IQR로 나타낸 그래프