14강 / 20강
다중검정 — 2만 번 던지면 우연도 당첨된다
Bonferroni 와 BH FDR
동전을 한 번 던져 앞면이 나오는 것은 놀랍지 않습니다. 스무 번 연속 앞면이 나오면 놀랍습니다. 그런데 백만 명이 각자 스무 번씩 던진다면? 누군가는 반드시 스무 번 연속 앞면을 냅니다. 그 사람이 특별한 게 아니라, 시도 횟수가 많았을 뿐입니다.
유전체 분석이 정확히 이 상황입니다. 유의수준 0.05 로 20,000번 검정하면 아무 신호가 없어도 1,000개가 "유의"하게 나옵니다.
🎮 문턱을 옮겨 보세요
p값들을 정렬해 놓고 Bonferroni 와 BH 문턱을 나란히 그려 보세요. 둘이 얼마나 다른지, 어느 쪽이 몇 개를 살리는지 보입니다.
귀무가설이 참일 때 p값은 0과 1 사이에 고르게 퍼집니다. 이 성질이 모든 보정의 출발점입니다.
Python
브라우저에서 실행
두 가지 보정 방식
Bonferroni — 하나도 틀리지 않겠다
문턱을 α / m 으로 낮춥니다 (m = 검정 수).
거짓 발견이 하나라도 나올 확률(FWER) 을 α 이하로 묶습니다.
아주 안전하지만 아주 보수적 — 진짜 신호도 많이 놓칩니다.
BH FDR — 발견 중 가짜 비율을 관리하겠다
p값을 정렬해 p₍ᵢ₎ ≤ (i/m)·α 를 만족하는 가장 큰 i 까지 채택합니다.
발견한 것들 중 가짜의 비율을 α 이하로 묶습니다.
100개를 발견했고 FDR 5% 라면 그중 5개쯤은 가짜라고 각오하는 것입니다.
유전체 분석에서는 거의 언제나 BH FDR 을 씁니다. 목표가 "완벽한 확실성"이 아니라 "실험해 볼 만한 후보 목록"이기 때문입니다.
BH 절차의 핵심은 '조건을 만족한 가장 큰 순위까지 전부 채택' 입니다. 중간에 끊지 않습니다.
Python
브라우저에서 실행
🤔 확인 문제
BH FDR 을 0.05 로 두고 100개의 발견을 얻었습니다. 이것을 바르게 해석한 것은?
해설 FDR 은 발견 집합 안의 가짜 비율을 관리합니다. '하나도 틀리지 않을 확률' 을 관리하는 것은 FWER(Bonferroni) 입니다.
DIGGIT 이 다중검정을 줄이는 두 가지 방법
- 검정 자체를 줄인다 — MR 25개만 상대하므로 검정 수가 수백 배 적습니다 (2강). 같은 신호라도 보정 문턱이 훨씬 낮아 살아남습니다.
- 독립된 증거를 요구한다 — aQTL 만으로 판정하지 않고 조건부 분석(16강)까지 통과해야 합니다. 우연히 한 관문을 넘은 후보가 두 관문을 다 넘기는 훨씬 어렵습니다.
'독립된 증거 두 개' 가 DIGGIT 설계의 핵심 사상입니다.
Python
브라우저에서 실행
🤔 확인 문제
DIGGIT 이 마스터 레귤레이터를 소수로 좁히는 것이 통계적으로 이득인 이유는?
해설 p값 자체는 검정 수와 무관합니다. 바뀌는 것은 통과 문턱입니다. 20,000번 검정의 문턱과 25번 검정의 문턱은 800배 차이가 납니다.
🤔 확인 문제
Bonferroni 보정과 BH FDR 중 유전체 분석에서 BH 를 더 많이 쓰는 이유는?
해설 다음 단계가 실험 검증이라면, 후보 20개 중 하나가 가짜인 것은 감당할 수 있습니다. 반대로 진짜를 다 놓치면 실험할 것이 없습니다.