한 연구에서 고객 만족도, 재구매 의향, 추천 의향, 가격 만족도와 서비스 신뢰도를 각각 비교했다고 하자.
연구자는 다섯 번의 통계검정을 모두 유의수준 0.05로 실시했다. 그중 한 항목에서 p = .04가 나왔다.
이 결과를 그대로 “통계적으로 유의하다”고 해석해도 될까?
검정을 한 번만 했다면 0.05 기준을 적용할 수 있다. 하지만 검정을 여러 번 반복하면 적어도 한 번은 우연히 p < .05가 나타날 가능성이 증가한다.
이 문제를 다중검정 또는 다중비교 문제라고 한다.
Bonferroni 보정은 여러 가설을 동시에 검정할 때 하나 이상의 거짓양성이 발생할 확률, 즉 가족단위 오류율을 일정 수준 이하로 통제하는 가장 단순하고 널리 알려진 방법이다(Dunn, 1961; Bender & Lange, 2001).
핵심 계산은 매우 간단하다.
\[
\alpha_{\mathrm{Bonferroni}}=\frac{\alpha}{m}
\]
여기서 \(m\)은 하나의 검정군에 포함된 가설의 수다.
전체 유의수준을 0.05로 유지하면서 5개 가설을 검정한다면 각 검정의 기준은 다음과 같다.
\[
\frac{0.05}{5}=0.01
\]
따라서 개별 p값이 0.01보다 작아야 Bonferroni 보정 후 유의하다고 판단한다.
Bonferroni 보정은 계산이 쉽고 검정들 사이의 상관구조를 몰라도 적용할 수 있다는 장점이 있다. 그러나 검정 수가 많거나 검정들이 강하게 관련되어 있으면 지나치게 보수적일 수 있다.
따라서 중요한 것은 “여러 검정을 했으니 무조건 Bonferroni를 적용한다”가 아니다.
어떤 가설들을 하나의 검정군으로 볼 것인지, 어떤 오류율을 통제하려는지, 연구가 확증적인지 탐색적인지를 먼저 정해야 한다.
검정을 여러 번 하면 왜 오류가 증가하는가
하나의 귀무가설이 참이고 유의수준을 0.05로 설정했다면, 귀무가설이 참인데도 이를 기각할 확률은 5%다.
이를 1종 오류라고 한다.
\[
P(\text{1종 오류})=\alpha=0.05
\]
그러나 서로 독립적인 검정을 여러 번 수행하면 적어도 한 번 거짓양성이 발생할 확률은 증가한다.
검정 수를 \(m\)이라고 할 때 모든 검정에서 거짓양성이 발생하지 않을 확률은 다음과 같다.
\[
(1-\alpha)^m
\]
따라서 적어도 한 번 거짓양성이 발생할 확률은 다음과 같다.
\[
1-(1-\alpha)^m
\]
각 검정의 유의수준이 0.05이고 검정들이 독립적이라고 단순 가정하면 다음과 같다.
| 검정 수 | 적어도 한 번 거짓양성이 발생할 확률 |
|---|---|
| 1개 | 5.0% |
| 2개 | 9.8% |
| 5개 | 22.6% |
| 10개 | 40.1% |
| 20개 | 64.2% |
| 50개 | 92.3% |
10개의 귀무가설이 모두 참이어도 각 검정을 0.05 수준에서 실시하면 적어도 하나의 p값이 0.05보다 작게 나올 확률은 약 40.1%다.
\[
1-0.95^{10}\approx0.401
\]
이 계산은 검정들이 서로 독립적이라는 설명용 가정에 따른 것이다. 실제 검정들은 같은 자료와 비슷한 결과변수를 사용하기 때문에 서로 관련될 수 있다.
하지만 검정을 여러 번 할수록 우연한 유의성이 증가한다는 핵심은 변하지 않는다.
개별 오류율과 가족단위 오류율
다중검정 문제를 이해하려면 어떤 오류율을 통제하는지 구분해야 한다.
개별 검정 오류율
각 가설 하나에서 1종 오류가 발생할 확률이다.
\[
P(\text{특정 가설에서 거짓양성})=\alpha
\]
가족단위 오류율
하나의 검정군에서 적어도 하나 이상의 거짓양성이 발생할 확률이다.
\[
FWER=P(V\geq1)
\]
여기서 \(V\)는 참인 귀무가설을 잘못 기각한 수다.
Bonferroni 보정은 가족단위 오류율, 즉 FWER를 통제하려는 방법이다.
예를 들어 연구자가 다섯 개의 1차 결과 가운데 하나라도 유의하면 치료가 성공했다고 결론 내린다고 하자.
각 결과를 0.05 수준에서 따로 검정하면 연구 전체의 거짓양성 위험은 5%보다 커진다.
Bonferroni 보정은 각 가설에 더 엄격한 기준을 적용해 연구 전체에서 한 번이라도 잘못된 긍정 결론을 내릴 가능성을 통제한다.
Bonferroni 보정의 기본 공식
전체 가족단위 유의수준을 \(\alpha\), 검정 수를 \(m\)이라고 하면 각 검정의 유의수준은 다음과 같다.
\[
\alpha^{*}=\frac{\alpha}{m}
\]
전체 유의수준이 0.05이고 검정 수가 10개라면 다음과 같다.
\[
\alpha^{*}=\frac{0.05}{10}=0.005
\]
따라서 각 가설의 원래 p값을 0.005와 비교한다.
| 원래 p값 | Bonferroni 기준 | 판단 |
|---|---|---|
| .002 | .005 | 유의 |
| .004 | .005 | 유의 |
| .008 | .005 | 유의하지 않음 |
| .030 | .005 | 유의하지 않음 |
같은 판단을 조정 p값으로도 할 수 있다.
Bonferroni 조정 p값은 다음과 같다.
\[
p_{\mathrm{adj}}=\min(mp,1)
\]
원래 p값이 0.008이고 검정 수가 10개라면 다음과 같다.
\[
p_{\mathrm{adj}}=\min(10\times0.008,1)=0.08
\]
조정 p값 0.08을 일반적인 0.05와 비교하면 유의하지 않다.
다음 두 방법은 같은 결론을 낸다.
- 원래 p값을 \(\alpha/m\)과 비교한다.
- 조정 p값을 \(\alpha\)와 비교한다.
두 방식을 섞어 사용하면 안 된다.
조정 p값을 다시 \(\alpha/m\)과 비교하면 이중으로 보정하는 오류가 발생한다.
Bonferroni 보정은 왜 가족단위 오류율을 통제하는가
각 검정에서 거짓양성이 발생하는 사건을 \(A_1,A_2,\ldots,A_m\)이라고 하자.
적어도 하나의 거짓양성이 발생할 확률은 다음과 같다.
\[
P\left(\bigcup_{j=1}^{m}A_j\right)
\]
확률의 합집합 상한에 따라 다음 관계가 성립한다.
\[
P\left(\bigcup_{j=1}^{m}A_j\right)
\leq
\sum_{j=1}^{m}P(A_j)
\]
각 검정을 \(\alpha/m\) 수준에서 실시하면 다음과 같다.
\[
P(A_j)\leq\frac{\alpha}{m}
\]
따라서 가족단위 오류율은 다음과 같이 제한된다.
\[
FWER
\leq
\sum_{j=1}^{m}\frac{\alpha}{m}
=
\alpha
\]
이 부등식은 검정들이 독립적일 것을 요구하지 않는다.
검정들이 서로 양의 상관이든 음의 상관이든, 의존구조를 정확히 모르더라도 Bonferroni 보정은 가족단위 오류율을 \(\alpha\) 이하로 통제한다.
이 단순성과 강건성이 Bonferroni 보정의 가장 큰 장점이다.
간단한 예시: 네 개의 결과변수
한 교육 프로그램이 다음 네 가지 결과에 영향을 주는지 검정했다고 하자.
- 시험점수
- 학습동기
- 수업만족도
- 학습지속 의향
원래 p값은 다음과 같다.
| 결과변수 | 원래 p값 |
|---|---|
| 시험점수 | .008 |
| 학습동기 | .013 |
| 수업만족도 | .021 |
| 학습지속 의향 | .200 |
가족단위 유의수준을 0.05로 정하면 Bonferroni 기준은 다음과 같다.
\[
\frac{0.05}{4}=0.0125
\]
따라서 시험점수만 유의하다.
조정 p값을 계산하면 다음과 같다.
| 결과변수 | 원래 p값 | Bonferroni 조정 p값 | 판단 |
|---|---|---|---|
| 시험점수 | .008 | .032 | 유의 |
| 학습동기 | .013 | .052 | 유의하지 않음 |
| 수업만족도 | .021 | .084 | 유의하지 않음 |
| 학습지속 의향 | .200 | .800 | 유의하지 않음 |
조정 p값은 1보다 커질 수 없으므로 1을 상한으로 둔다.
어떤 검정들을 하나의 가족으로 묶어야 하는가
Bonferroni 보정에서 가장 어려운 부분은 나눗셈이 아니다.
분모 (m)에 어떤 검정들을 포함할 것인지 결정하는 일이다.
검정군 또는 가족은 일반적으로 하나의 과학적 결론이나 의사결정을 공유하는 가설들의 집합으로 정의한다(Bender & Lange, 2001; Streiner, 2015).
예를 들어 다음 상황에서는 하나의 가족으로 볼 근거가 강하다.
- 여러 1차 결과 가운데 하나라도 유의하면 연구 성공으로 판단
- 같은 개입의 효과를 여러 시점에서 반복 검정
- 같은 결과에 대해 여러 하위집단을 검정
- 한 요인의 여러 집단 쌍을 모두 비교
- 동일한 과학적 주장을 여러 통계검정으로 확인
- 여러 용량 중 하나라도 효과가 있으면 성공으로 판단
반면 논문에 등장한 모든 p값을 무조건 하나의 가족으로 묶는 것도 적절하지 않을 수 있다.
서로 다른 연구질문, 별도의 의사결정과 독립적으로 해석되는 분석까지 모두 합치면 보정이 지나치게 엄격해진다.
검정군은 결과를 본 뒤 유리하게 나누거나 합치는 것이 아니라 연구계획 단계에서 정의하는 것이 좋다.
Bonferroni 보정에서 가장 중요한 질문은 “검정을 몇 번 했는가?”보다 “몇 개의 검정이 하나의 결론을 위해 경쟁하는가?”다.
1차 결과와 2차 결과는 어떻게 다룰까
임상시험이나 확증적 연구에서는 1차 결과와 2차 결과를 구분한다.
하나의 1차 결과만 사전에 정하고 그 결과에 대해 한 번의 검정을 수행한다면 일반적으로 해당 1차 검정에는 다중성 보정이 필요하지 않다.
하지만 1차 결과가 여러 개이고 다음과 같이 성공을 정의한다면 다중성 문제가 발생한다.
세 개의 1차 결과 가운데 하나라도 유의하면 연구 성공으로 판단한다.
이 경우 각 결과에 0.05를 적용하면 전체 거짓양성률이 증가한다.
반대로 공동 1차 결과를 다음과 같이 정의할 수도 있다.
세 개의 1차 결과가 모두 유의해야 연구 성공으로 판단한다.
이처럼 모든 조건을 동시에 충족해야 하는 결합적 판단에서는 “하나라도 유의하면 성공”인 경우와 오류구조가 다르다. 단순히 결과 수로 0.05를 나누는 방식이 반드시 필요한 것은 아니다.
2차 결과는 탐색적 또는 보조적 해석을 위해 사용될 수 있다.
다만 1차 결과가 유의하지 않았는데 여러 2차 결과 중 하나의 p값이 0.04였다는 이유로 연구가 성공했다고 바꾸어 말해서는 안 된다.
연구자는 다음을 분명히 해야 한다.
- 어떤 결과가 1차인가
- 어떤 결과가 확증적인가
- 어떤 결과가 탐색적인가
- 어떤 검정군에 어떤 가설이 포함되는가
- 어떤 다중성 조정방법을 사전에 정했는가
집단 수가 늘어나면 비교 수는 얼마나 증가하는가
집단이 \(k\)개일 때 모든 집단 쌍을 비교하는 횟수는 다음과 같다.
\[
m=\frac{k(k-1)}{2}
\]
집단이 3개라면 비교 수는 다음과 같다.
\[
m=\frac{3\times2}{2}=3
\]
집단이 5개라면 다음과 같다.
\[
m=\frac{5\times4}{2}=10
\]
| 집단 수 | 가능한 모든 쌍별 비교 수 | Bonferroni 기준 |
|---|---|---|
| 3개 | 3개 | .0167 |
| 4개 | 6개 | .0083 |
| 5개 | 10개 | .0050 |
| 6개 | 15개 | .0033 |
| 10개 | 45개 | .0011 |
10개 집단의 모든 쌍을 비교하면 45번의 검정이 필요하다.
이때 Bonferroni 기준은 약 0.0011로 매우 엄격해진다.
하지만 연구자가 사전에 세 개의 의미 있는 대비만 계획했다면 45개 전체 비교가 아니라 세 개 계획대비를 검정군으로 정의할 수 있다.
결과를 본 뒤 유리한 세 비교만 골라 “계획된 비교”라고 부를 수는 없다. 계획대비는 자료를 보기 전에 정해야 한다.
전체 ANOVA가 유의하면 사후검정은 보정하지 않아도 될까
세 집단 이상의 평균을 비교할 때 먼저 일원분산분석의 전체 F검정을 실시할 수 있다.
귀무가설은 다음과 같다.
\[
H_0:\mu_1=\mu_2=\cdots=\mu_k
\]
전체 F검정이 유의하다는 것은 적어도 한 집단 평균이 다르다는 뜻이다.
하지만 어느 집단끼리 다른지는 알려주지 않는다.
이후 모든 집단 쌍을 각각 t검정하면 다시 다중비교 문제가 발생한다.
전체 ANOVA가 유의했다는 사실만으로 모든 후속 비교가 자동으로 보호되는 것은 아니다. 특히 집단이 많고 여러 쌍을 탐색하면 가족단위 오류율을 통제하는 사후비교 방법이 필요하다.
상황에 따라 다음 방법을 사용할 수 있다.
| 연구목적 | 고려할 방법 |
|---|---|
| 모든 집단 쌍 비교 | Tukey 방법 |
| 여러 처치군과 하나의 대조군 비교 | Dunnett 방법 |
| 소수의 사전 계획대비 | Bonferroni 또는 Holm |
| 임의의 모든 선형대비 | Scheffé 방법 |
| 검정 구조를 모르는 소수 비교 | Bonferroni 또는 Holm |
Bonferroni는 범용적이지만 모든 쌍별 평균비교에서는 Tukey 방법이 더 효율적일 수 있다(Midway et al., 2020).
반복측정에서 시점별 검정을 반복하면 어떻게 될까
한 집단의 결과를 치료 전, 1주 후, 4주 후와 12주 후에 측정했다고 하자.
연구자가 다음 비교를 각각 수행할 수 있다.
- 치료 전 대 1주 후
- 치료 전 대 4주 후
- 치료 전 대 12주 후
- 1주 후 대 4주 후
- 1주 후 대 12주 후
- 4주 후 대 12주 후
총 여섯 번의 비교다.
각 비교를 0.05 수준에서 실시하면 가족단위 오류율이 커진다.
전체 시간효과를 반복측정분산분석이나 혼합효과모형으로 먼저 검정하고, 사전에 정한 시점 비교에 Bonferroni 또는 Holm 보정을 적용할 수 있다.
그러나 모든 시점 비교가 반드시 같은 중요도를 갖는 것은 아니다.
연구의 핵심이 치료 전과 12주 후 차이라면 이 비교를 1차 대비로 사전에 지정하고, 나머지 비교를 보조적 또는 탐색적으로 구분하는 편이 더 효율적이다.
Bonferroni 보정의 장점
Bonferroni 보정은 다음과 같은 장점을 가진다.
계산이 간단하다
전체 유의수준을 검정 수로 나누거나 원래 p값에 검정 수를 곱하면 된다.
검정 종류에 크게 의존하지 않는다
t검정, 회귀계수, 상관계수, 비율비교와 여러 비모수 검정에도 적용할 수 있다.
검정 간 독립성을 요구하지 않는다
검정들의 상관구조를 정확히 몰라도 가족단위 오류율을 통제한다.
강한 가족단위 오류 통제가 가능하다
어떤 귀무가설은 참이고 어떤 귀무가설은 거짓인 상황에서도 참인 귀무가설 가운데 하나 이상을 잘못 기각할 확률을 통제한다.
설명이 쉽다
연구계획서, 보고서와 심사과정에서 적용근거를 명확하게 설명할 수 있다.
이러한 이유로 검정 수가 적고 거짓양성 하나의 비용이 큰 확증적 연구에서 유용하다.
Bonferroni 보정의 한계
Bonferroni 보정의 가장 큰 한계는 보수성이다.
거짓양성을 줄이는 대신 실제 효과를 발견하지 못하는 2종 오류가 증가할 수 있다.
검정 수가 많을수록 기준은 매우 작아진다.
| 검정 수 | Bonferroni 기준 |
|---|---|
| 5개 | .0100 |
| 10개 | .0050 |
| 20개 | .0025 |
| 100개 | .0005 |
| 1,000개 | .00005 |
1,000개의 가설을 검정하면 p값이 0.00005보다 작아야 한다.
유전체, 단백질체와 대규모 탐색연구에서는 실제 관계가 있어도 이 기준을 통과하지 못하는 경우가 많다.
또한 검정들이 서로 강하게 상관되어 있으면 실질적인 독립 정보의 수가 명목상의 검정 수보다 적을 수 있다.
예를 들어 우울, 불안, 스트레스 점수는 서로 관련되어 있을 가능성이 크다. 세 결과를 완전히 독립적인 검정처럼 나누어 보정하면 필요 이상으로 엄격할 수 있다.
Bonferroni는 이러한 상관구조를 활용하지 않는다.
다음 상황에서는 특히 보수적일 수 있다.
- 검정 수가 매우 많다.
- 결과변수들이 강하게 상관된다.
- 표본 수가 작다.
- 실제 효과가 작다.
- 탐색적 발견이 연구목적이다.
- 모든 거짓양성을 막는 것보다 발견률이 중요하다.
Perneger(1998)와 Rothman(1990)은 기계적인 Bonferroni 적용이 중요한 결과를 놓치고 해석을 왜곡할 수 있다고 비판했다. 반면 확증적 연구에서 여러 검정으로 하나의 결론을 내린다면 다중성 조정이 필요하다는 입장도 강하다(Bender & Lange, 2001).
핵심은 보정을 하느냐 마느냐의 단순한 선택이 아니라 어떤 오류를 통제할 것인지 연구목적에 맞춰 정하는 것이다.
Holm 보정은 왜 자주 더 좋은 선택인가
Holm 방법은 Bonferroni 원리를 순차적으로 적용하는 방법이다(Holm, 1979).
원래 p값을 작은 순서로 정렬한다.
\[
p_{(1)}\leq p_{(2)}\leq\cdots\leq p_{(m)}
\]
가장 작은 p값은 다음 기준과 비교한다.
\[
\frac{\alpha}{m}
\]
두 번째 p값은 다음 기준과 비교한다.
\[
\frac{\alpha}{m-1}
\]
이후 기준은 점차 완화된다.
\[
p_{(i)}\leq\frac{\alpha}{m-i+1}
\]
어느 단계에서 유의하지 않으면 그 단계와 이후 가설은 기각하지 않는다.
앞의 네 p값을 다시 보자.
\[
.008,\ .013,\ .021,\ .200
\]
Holm 기준은 다음과 같다.
| 순서 | p값 | Holm 기준 | 판단 |
|---|---|---|---|
| 1 | .008 | .0125 | 유의 |
| 2 | .013 | .0167 | 유의 |
| 3 | .021 | .0250 | 유의 |
| 4 | .200 | .0500 | 유의하지 않음 |
Bonferroni에서는 첫 번째 결과만 유의했지만 Holm에서는 처음 세 결과가 유의하다.
Holm 방법은 Bonferroni보다 검정력이 낮지 않으면서 검정 간 임의의 의존구조에서도 가족단위 오류율을 통제한다.
따라서 단순 Bonferroni를 사용할 특별한 이유가 없다면 Holm 방법을 우선 고려할 수 있다.
다만 보고서에는 “Bonferroni 계열 보정”이라고 모호하게 쓰지 말고 단순 Bonferroni인지 Holm 방법인지 정확히 밝혀야 한다.
Šidák 보정은 무엇이 다른가
검정들이 독립적이라고 가정할 때 가족단위 오류율을 정확히 \(\alpha\)로 맞추는 개별 유의수준은 다음과 같다.
\[
\alpha^{*}=1-(1-\alpha)^{1/m}
\]
이를 Šidák 보정이라고 한다(Šidák, 1967).
전체 유의수준이 0.05이고 검정 수가 5개라면 다음과 같다.
\[
\alpha^{*}=1-0.95^{1/5}\approx0.01021
\]
Bonferroni 기준은 0.01이다.
두 값의 차이는 작다.
| 방법 | 5개 검정의 기준 |
|---|---|
| Bonferroni | .01000 |
| Šidák | 약 .01021 |
Šidák 방법은 Bonferroni보다 조금 덜 보수적이지만 적용근거가 검정들의 독립성 또는 특정 의존조건에 더 민감하다.
검정 간 관계가 불분명하다면 Bonferroni나 Holm이 더 단순하고 안전한 선택이 될 수 있다.
Hochberg 방법은 무엇인가
Hochberg 방법은 p값을 큰 값부터 검토하는 단계상향 절차다(Hochberg, 1988).
Holm보다 더 높은 검정력을 가질 수 있지만 독립성이나 특정한 양의 의존구조와 같은 추가 조건을 요구한다.
실무에서는 다음처럼 구분할 수 있다.
| 방법 | 통제 오류율 | 의존구조 | 일반적 특징 |
|---|---|---|---|
| Bonferroni | FWER | 임의 | 가장 단순하지만 보수적 |
| Holm | FWER | 임의 | Bonferroni보다 효율적 |
| Šidák | FWER | 독립성 등 조건 | Bonferroni보다 약간 덜 보수적 |
| Hochberg | FWER | 독립성 또는 특정 양의 의존 | Holm보다 강력할 수 있음 |
| Benjamini–Hochberg | FDR | 독립성 또는 특정 의존조건 | 대규모 탐색에 유용 |
통계 프로그램이 여러 방법을 제공한다고 가장 많은 가설을 유의하게 만드는 방법을 선택해서는 안 된다.
연구목적과 가정에 따라 방법을 사전에 선택해야 한다.
FWER와 FDR은 무엇이 다른가
Bonferroni와 Holm은 가족단위 오류율을 통제한다.
Benjamini–Hochberg 방법은 거짓발견률을 통제한다(Benjamini & Hochberg, 1995).
거짓발견률은 유의하다고 판단한 결과들 가운데 거짓양성이 차지하는 비율의 기대값과 관련된다.
\[
FDR=E\left(\frac{V}{\max(R,1)}\right)
\]
여기서 다음과 같다.
- \(V\): 거짓발견 수
- \(R\): 전체 발견 수
다음 예를 생각해 보자.
1,000개 유전자를 검정해 100개를 유의하다고 발견했다. 그중 평균적으로 약 5개가 거짓발견이 되도록 통제하는 것이 FDR 5%의 직관적인 목표다.
반면 FWER 5%는 1,000개 검정 전체에서 거짓발견이 하나라도 발생할 확률을 5% 이하로 제한하려 한다.
FWER가 훨씬 엄격하다.
| 오류율 | 주요 질문 | 적합한 상황 |
|---|---|---|
| FWER | 하나라도 거짓양성이 나오면 큰 문제인가? | 확증시험, 핵심 의사결정 |
| FDR | 발견한 결과 중 거짓의 비율을 어느 정도 허용할 수 있는가? | 유전체, 탐색연구, 후보선별 |
FDR 방법을 사용하고도 “가족단위 오류율을 5%로 통제했다”고 보고하면 안 된다.
통제하는 오류율 자체가 다르다.
Bonferroni 보정이 적합한 상황
다음 상황에서는 Bonferroni 보정이 실용적인 선택이 될 수 있다.
- 검정 수가 적다.
- 가설들이 사전에 명확히 정의되었다.
- 하나의 거짓양성도 큰 비용을 만든다.
- 검정 간 의존구조를 알기 어렵다.
- 분석방법이 서로 달라 통합된 전용 사후검정이 없다.
- 규제나 연구계획에서 FWER 통제가 요구된다.
- 소수의 계획대비를 검정한다.
- 단순하고 투명한 설명이 중요하다.
예를 들어 임상시험에서 두 개의 1차 평가변수 중 하나라도 유의하면 성공이라고 판단하고, 거짓 성공판정의 비용이 크다면 Bonferroni 또는 Holm을 사용할 수 있다.
Bonferroni 보정이 최선이 아닐 수 있는 상황
다음 상황에서는 다른 방법을 검토할 수 있다.
- 수백 개 또는 수천 개 가설을 탐색한다.
- 결과변수들 사이의 상관이 매우 강하다.
- 모든 집단 쌍을 비교하는 ANOVA 사후검정이다.
- 여러 처치군을 하나의 대조군과 비교한다.
- 가설에 명확한 우선순위가 있다.
- 검정들이 계층적 구조를 가진다.
- 거짓양성 일부를 허용하면서 발견력을 높여야 한다.
- 재표집을 통해 실제 의존구조를 활용할 수 있다.
대안은 다음과 같다.
| 상황 | 고려할 방법 |
|---|---|
| FWER 통제와 일반적인 다중검정 | Holm |
| 모든 집단 쌍 비교 | Tukey |
| 여러 처치 대 하나의 대조 | Dunnett |
| 독립적인 소수 검정 | Šidák |
| 특정 의존조건에서 더 높은 검정력 | Hochberg |
| 대규모 탐색 | Benjamini–Hochberg FDR |
| 복잡한 상관구조 | 순열검정, maxT, Westfall–Young |
| 가설 우선순위 존재 | 계층적 검정, 게이트키핑 |
| 중요도가 다른 가설 | 가중 Bonferroni |
Bonferroni가 가장 단순하다는 이유만으로 모든 다중검정 문제에 최적은 아니다.
가중 Bonferroni는 무엇인가
모든 가설이 같은 중요도를 갖지 않을 수 있다.
가중치 \(w_j\)를 각 가설에 배정하고 가중치의 합을 1로 만들 수 있다.
\[
\sum_{j=1}^{m}w_j=1
\]
가설 \(j\)의 유의수준은 다음과 같다.
\[
\alpha_j=\alpha w_j
\]
예를 들어 세 개 가설의 중요도가 다르고 가중치를 다음처럼 정했다고 하자.
\[
w_1=0.50,\qquad w_2=0.30,\qquad w_3=0.20
\]
전체 유의수준이 0.05라면 각 기준은 다음과 같다.
| 가설 | 가중치 | 유의수준 |
|---|---|---|
| 1차 가설 | 0.50 | .025 |
| 2차 가설 | 0.30 | .015 |
| 3차 가설 | 0.20 | .010 |
중요한 가설에 더 많은 알파를 배정할 수 있다.
하지만 가중치는 결과를 본 뒤 정해서는 안 된다. 연구계획 단계에서 과학적 중요성과 의사결정 구조에 따라 사전 지정해야 한다(Kang et al., 2009).
보정된 신뢰구간도 함께 제시할 수 있다
다중검정에서 p값만 보정하고 일반 95% 신뢰구간을 그대로 제시하면 판단기준이 서로 어긋날 수 있다.
Bonferroni 동시 신뢰구간을 사용하면 모든 구간이 동시에 참값을 포함할 가족단위 신뢰수준을 최소 \(1-\alpha\)로 유지할 수 있다.
검정 수가 \(m\)개라면 각 개별 구간의 신뢰수준을 다음과 같이 설정한다.
\[
1-\frac{\alpha}{m}
\]
예를 들어 네 개의 효과를 동시에 추정하고 가족단위 신뢰수준을 95%로 유지하려면 각 구간은 다음 수준으로 계산한다.
\[
1-\frac{0.05}{4}=0.9875
\]
즉, 각 효과에 대해 98.75% 신뢰구간을 계산한다.
정규근사를 사용하는 양측 구간의 임계값은 다음과 같다.
\[
z_{1-\alpha/(2m)}
\]
Bonferroni 동시 신뢰구간은 다음 형태다.
\[
\widehat{\theta}j
\pm
z{1-\alpha/(2m)}
SE(\widehat{\theta}_j)
\]
동시 신뢰구간은 일반 95% 구간보다 넓어진다.
이는 여러 효과를 동시에 확신하기 위해 더 엄격한 기준을 적용한 결과다.
보정 후 유의하지 않으면 효과가 없는가
원래 p값이 0.02였지만 Bonferroni 보정 후 p값이 0.10이 되었다고 하자.
이를 다음처럼 해석해서는 안 된다.
Bonferroni 보정 결과 효과가 사라졌다.
자료와 효과 추정값은 변하지 않았다.
보정으로 바뀐 것은 여러 결론을 동시에 내릴 때 적용하는 오류통제 기준이다.
더 적절한 표현은 다음과 같다.
원래 분석에서는 p = .02였으나 다섯 개 가설에 대한 Bonferroni 조정 후 가족단위 5% 수준에서 통계적 유의성을 충족하지 못했다.
효과크기와 신뢰구간도 함께 제시해야 한다.
예를 들어 평균 차이가 4.5점이고 일반 95% 신뢰구간이 0.5점에서 8.5점이었더라도 Bonferroni 동시 신뢰구간은 0을 포함할 수 있다.
이 결과는 효과가 정확히 0이라는 증명이 아니다. 현재 자료가 다중성 조정 후 필요한 정밀도에 도달하지 못했다는 뜻일 수 있다.
Bonferroni 보정을 사후적으로 적용할 때 주의할 점
연구가 끝난 뒤 심사과정에서 “검정을 여러 번 했으니 Bonferroni를 적용하라”는 요구가 나올 수 있다.
이때 먼저 확인해야 할 것은 다음과 같다.
- 실제 확증적 가설은 몇 개인가
- 어떤 가설들이 하나의 결론에 속하는가
- 분석계획서에 검정군이 정의되어 있는가
- 탐색분석과 확증분석이 구분되어 있는가
- 모든 검정이 같은 중요도를 갖는가
- 더 적절한 전용 다중비교 방법이 있는가
논문에 등장하는 p값 30개를 모두 세어 0.05를 30으로 나누는 것은 기계적인 접근일 수 있다.
반대로 결과를 본 뒤 관련 없는 분석이라고 주장하며 유의한 결과만 별도 가족으로 떼어내는 것도 잘못이다.
검정군 정의는 과학적 질문과 의사결정 구조를 바탕으로 투명하게 설명해야 한다.
R로 Bonferroni 조정 p값 계산하기
가상 p값 네 개를 입력한다.
raw_p <- c(
exam = 0.008,
motivation = 0.013,
satisfaction = 0.021,
persistence = 0.200
)RBonferroni 조정 p값을 계산한다.
bonferroni_p <- p.adjust(
raw_p,
method = "bonferroni"
)
bonferroni_pR결과를 표로 정리한다.
bonferroni_result <- data.frame(
outcome = names(
raw_p
),
raw_p = unname(
raw_p
),
adjusted_p = unname(
bonferroni_p
),
significant = unname(
bonferroni_p
) < 0.05
)
bonferroni_resultR조정 p값을 0.05와 비교한다.
R로 유의수준을 직접 나누기
검정 수가 네 개라면 다음과 같다.
family_alpha <- 0.05
test_count <- length(
raw_p
)
adjusted_alpha <- (
family_alpha /
test_count
)
adjusted_alphaR원래 p값을 조정 기준과 비교한다.
raw_p < adjusted_alphaR이 결과는 조정 p값을 0.05와 비교한 결과와 같다.
R로 Bonferroni와 Holm 비교하기
comparison_result <- data.frame(
outcome = names(
raw_p
),
raw_p = unname(
raw_p
),
bonferroni = unname(
p.adjust(
raw_p,
method = "bonferroni"
)
),
holm = unname(
p.adjust(
raw_p,
method = "holm"
)
),
hochberg = unname(
p.adjust(
raw_p,
method = "hochberg"
)
),
bh_fdr = unname(
p.adjust(
raw_p,
method = "BH"
)
)
)
comparison_resultR각 열은 같은 오류율을 통제하지 않는다.
- Bonferroni, Holm과 Hochberg는 FWER 계열이다.
- BH는 FDR을 통제한다.
가장 작은 조정 p값을 주는 열을 선택하는 것이 아니라 연구목적에 맞는 방법을 선택해야 한다.
R로 여러 집단의 쌍별 비교 수행하기
세 집단의 가상 점수를 만든다.
score_data <- data.frame(
group = factor(
rep(
c(
"A",
"B",
"C"
),
each = 8
)
),
score = c(
72, 74, 75, 77,
73, 76, 78, 74,
76, 79, 80, 82,
77, 81, 83, 79,
84, 86, 88, 85,
87, 89, 90, 86
)
)RBonferroni 보정을 적용한 쌍별 t검정을 실시한다.
pairwise_result <- pairwise.t.test(
x = score_data$score,
g = score_data$group,
p.adjust.method = "bonferroni",
pool.sd = FALSE
)
pairwise_resultRpool.sd = FALSE는 각 쌍에 Welch 방식의 t검정을 적용한다.
모든 집단 쌍 비교가 연구목적이라면 Tukey 방법이나 모형기반 추정주변평균 비교가 더 적절할 수 있다.
R로 모형기반 동시 비교하기
emmeans 패키지를 사용하면 회귀모형이나 분산분석모형에서 조정된 비교와 신뢰구간을 구할 수 있다.
# 최초 한 번만 실행
# install.packages("emmeans")
library(
emmeans
)
group_model <- lm(
score ~ group,
data = score_data
)
group_means <- emmeans(
group_model,
~ group
)
bonferroni_contrasts <- contrast(
group_means,
method = "pairwise",
adjust = "bonferroni"
)
summary(
bonferroni_contrasts,
infer = c(
TRUE,
TRUE
)
)R출력에서는 다음 정보를 확인한다.
- 집단 평균 차이
- 표준오차
- 자유도
- Bonferroni 동시 신뢰구간
- 조정 p값
보정방법을 Holm으로 바꾸려면 다음과 같이 지정한다.
holm_contrasts <- contrast(
group_means,
method = "pairwise",
adjust = "holm"
)
summary(
holm_contrasts,
infer = c(
TRUE,
TRUE
)
)R결과는 어떻게 보고해야 할까
다음 문장은 충분하지 않다.
Bonferroni 보정을 적용한 결과 일부 항목이 유의했다.
몇 개의 가설을 보정했는지, 어떤 가족단위 오류율을 통제했는지 알 수 없기 때문이다.
보다 좋은 보고는 다음과 같다.
네 개의 사전 지정 1차 결과 가운데 하나 이상에서 효과가 있다는 결론을 내릴 때의 가족단위 1종 오류율을 0.05로 통제하기 위해 Bonferroni 보정을 적용하였다. 각 검정의 유의수준은 (0.05/4=0.0125)로 설정하였다. 시험점수의 원래 p값은 .008이었고 Bonferroni 조정 p값은 .032로 가족단위 5% 수준에서 유의하였다. 학습동기, 수업만족도와 학습지속 의향의 조정 p값은 각각 .052, .084와 .800이었다. 각 결과의 효과크기와 Bonferroni 동시 신뢰구간을 함께 제시하였다.
Holm 방법을 사용했다면 다음처럼 쓸 수 있다.
네 개의 사전 지정 결과에 대한 가족단위 오류율을 통제하기 위해 Holm의 단계하향 절차를 적용하였다. 원래 p값과 Holm 조정 p값을 모두 보고하였다.
결과보고에는 다음 정보를 포함하는 것이 좋다.
- 다중성 문제가 발생한 이유
- 검정군에 포함된 가설
- 검정 수
- 전체 가족단위 유의수준
- 선택한 보정방법
- 방법 선택의 근거
- 원래 p값
- 조정 p값
- 효과크기
- 동시 신뢰구간
- 사전 계획 여부
- 확증분석과 탐색분석의 구분
- 가설 간 의존성
- 민감도 분석
- 보정 후 해석의 한계
자주 발생하는 오류
논문에 나온 모든 p값을 하나의 가족으로 묶는다
검정군은 과학적 결론과 의사결정 구조를 기준으로 정의해야 한다.
유의한 결과만 별도의 가족으로 분리한다
결과를 본 뒤 가족을 재정의하면 오류율 통제가 무너진다.
조정 p값을 다시 보정된 유의수준과 비교한다
조정 p값은 원래 \(\alpha\)와 비교해야 한다.
p값에 검정 수를 곱한 뒤 1을 넘는 값을 그대로 보고한다
조정 p값의 상한은 1이다.
Bonferroni 보정 후 유의하지 않으면 효과가 없다고 말한다
효과 추정값은 사라지지 않는다. 효과크기와 신뢰구간을 함께 봐야 한다.
검정 수가 많아졌다는 이유만으로 무조건 Bonferroni를 적용한다
탐색연구에서는 FDR이 더 적절할 수 있고, 특정 비교구조에는 Tukey나 Dunnett 방법이 효율적일 수 있다.
Holm과 Bonferroni를 같은 방법으로 보고한다
두 방법은 모두 FWER를 통제하지만 절차와 검정력이 다르다.
BH 보정을 사용하고 가족단위 오류율을 통제했다고 설명한다
BH는 일반적으로 FDR을 통제한다.
전체 ANOVA가 유의하면 후속 비교는 자유롭게 해도 된다고 생각한다
여러 사후비교에는 별도의 다중성 관리가 필요할 수 있다.
보정방법을 결과를 본 뒤 선택한다
가장 많은 유의한 결과를 만드는 방법을 사후적으로 고르면 오류율의 의미가 훼손된다.
보정 p값만 보고 효과크기를 생략한다
다중성 보정은 효과의 크기와 중요성을 알려주지 않는다.
분석 전에 확인할 질문
- 몇 개의 가설을 검정하는가?
- 어떤 가설들이 하나의 과학적 결론에 속하는가?
- 검정군은 자료를 보기 전에 정의했는가?
- 연구는 확증적인가, 탐색적인가?
- 한 결과라도 유의하면 성공으로 판단하는가?
- 모든 결과가 유의해야 성공으로 판단하는가?
- 가족단위 오류율과 거짓발견률 중 무엇을 통제하려는가?
- 거짓양성 하나의 비용은 얼마나 큰가?
- 검정 수가 적은가, 매우 많은가?
- 검정들이 서로 강하게 관련되어 있는가?
- Bonferroni보다 Holm이 더 적절하지 않은가?
- 모든 집단 쌍 비교라면 Tukey가 더 적절하지 않은가?
- 여러 처치와 하나의 대조 비교라면 Dunnett가 더 적절하지 않은가?
- 대규모 탐색에서는 FDR이 더 적절하지 않은가?
- 가설별 중요도가 다르면 가중치나 계층구조를 사용할 수 있는가?
- 원래 p값과 조정 p값을 모두 보고했는가?
- 동시 신뢰구간을 제시했는가?
- 효과크기와 실무적 중요성을 함께 해석했는가?
- 보정 후 비유의를 효과 없음으로 오해하지 않았는가?
- 분석계획과 방법 선택을 재현 가능하게 기록했는가?
Bonferroni 보정은 0.05를 나누는 계산보다 큰 문제입니다
Bonferroni 보정의 계산은 단순하다.
\[
\alpha^{*}=\frac{\alpha}{m}
\]
또는 다음과 같이 조정 p값을 계산한다.
\[
p_{\mathrm{adj}}=\min(mp,1)
\]
하지만 분석의 핵심은 나눗셈이 아니다.
어떤 가설들이 하나의 가족을 이루는지, 거짓양성 하나를 얼마나 심각하게 보는지, 연구가 확증적인지 탐색적인지를 먼저 정해야 한다.
비전공자는 다음 다섯 문장으로 기억할 수 있다.
검정을 여러 번 하면 적어도 한 번 거짓양성이 발생할 가능성이 증가한다.
Bonferroni 보정은 전체 유의수준을 검정 수로 나누어 가족단위 오류율을 통제한다.
검정 간 상관구조를 몰라도 사용할 수 있지만 검정 수가 많으면 지나치게 보수적일 수 있다.
Holm 방법은 같은 FWER를 통제하면서 단순 Bonferroni보다 효율적인 경우가 많다.
보정 후 유의하지 않더라도 효과가 없다고 단정하지 말고 효과크기와 동시 신뢰구간을 확인해야 한다.
Bonferroni 보정은 연구자가 여러 번 질문할수록 우연히 원하는 답을 얻을 가능성이 커진다는 문제를 통제한다.
그러나 모든 질문을 무조건 하나로 묶어 지나치게 엄격한 기준을 적용하면 실제 효과를 놓칠 수 있다.
좋은 다중검정 분석은 가장 엄격한 방법을 고르는 일이 아니다.
연구의 의사결정 구조를 먼저 정의하고, 그 구조에 맞는 오류율과 보정방법을 선택하며, 조정 p값뿐 아니라 효과크기와 불확실성을 함께 설명하는 일이다.
참고문헌
Benjamini, Y., & Hochberg, Y. (1995). Controlling the false discovery rate: A practical and powerful approach to multiple testing. Journal of the Royal Statistical Society: Series B, 57(1), 289–300. https://doi.org/10.1111/j.2517-6161.1995.tb02031.x
Bender, R., & Lange, S. (2001). Adjusting for multiple testing—When and how? Journal of Clinical Epidemiology, 54(4), 343–349. https://doi.org/10.1016/S0895-4356(00)00314-0
Dudoit, S., Shaffer, J. P., & Boldrick, J. C. (2003). Multiple hypothesis testing in microarray experiments. Statistical Science, 18(1), 71–103. https://doi.org/10.1214/ss/1056397487
Dunn, O. J. (1961). Multiple comparisons among means. Journal of the American Statistical Association, 56(293), 52–64. https://doi.org/10.1080/01621459.1961.10482090
Glickman, M. E., Rao, S. R., & Schultz, M. R. (2014). False discovery rate control is a recommended alternative to Bonferroni-type adjustments in health studies. Journal of Clinical Epidemiology, 67(8), 850–857. https://doi.org/10.1016/j.jclinepi.2014.03.012
Hochberg, Y. (1988). A sharper Bonferroni procedure for multiple tests of significance. Biometrika, 75(4), 800–802. https://doi.org/10.1093/biomet/75.4.800
Holm, S. (1979). A simple sequentially rejective multiple test procedure. Scandinavian Journal of Statistics, 6(2), 65–70. https://www.jstor.org/stable/4615733
Kang, G., Ye, K., Liu, N., Allison, D. B., & Gao, G. (2009). Weighted multiple hypothesis testing procedures. Statistical Applications in Genetics and Molecular Biology, 8(1), Article 23. https://doi.org/10.2202/1544-6115.1437
Menyhárt, O., Weltz, B., & Győrffy, B. (2021). MultipleTesting.com: A tool for life science researchers for multiple hypothesis testing correction. PLOS ONE, 16(6), e0245824. https://doi.org/10.1371/journal.pone.0245824
Midway, S., Robertson, M., Flinn, S., & Kaller, M. (2020). Comparing multiple comparisons: Practical guidance for choosing the best multiple comparisons test. PeerJ, 8, e10387. https://doi.org/10.7717/peerj.10387
Perneger, T. V. (1998). What’s wrong with Bonferroni adjustments. BMJ, 316(7139), 1236–1238. https://doi.org/10.1136/bmj.316.7139.1236
Rothman, K. J. (1990). No adjustments are needed for multiple comparisons. Epidemiology, 1(1), 43–46. https://doi.org/10.1097/00001648-199001000-00010
Šidák, Z. (1967). Rectangular confidence regions for the means of multivariate normal distributions. Journal of the American Statistical Association, 62(318), 626–633. https://doi.org/10.1080/01621459.1967.10482935
Staffa, S. J., & Zurakowski, D. (2020). Strategies in adjusting for multiple comparisons: A primer for pediatric surgeons. Journal of Pediatric Surgery, 55(9), 1699–1705. https://doi.org/10.1016/j.jpedsurg.2020.01.014
Streiner, D. L. (2015). Best (but oft-forgotten) practices: The multiple problems of multiplicity—Whether and how to correct for many statistical tests. The American Journal of Clinical Nutrition, 102(4), 721–728. https://doi.org/10.3945/ajcn.115.113548








