14강 / 20강

다중검정 — 2만 번 던지면 우연도 당첨된다

Bonferroni 와 BH FDR

다중검정 — 2만 번 던지면 우연도 당첨된다
검정을 많이 할수록 우연히 당첨되는 표가 늘어납니다.

동전을 한 번 던져 앞면이 나오는 것은 놀랍지 않습니다. 스무 번 연속 앞면이 나오면 놀랍습니다. 그런데 백만 명이 각자 스무 번씩 던진다면? 누군가는 반드시 스무 번 연속 앞면을 냅니다. 그 사람이 특별한 게 아니라, 시도 횟수가 많았을 뿐입니다.

유전체 분석이 정확히 이 상황입니다. 유의수준 0.05 로 20,000번 검정하면 아무 신호가 없어도 1,000개가 "유의"하게 나옵니다.

🎮 문턱을 옮겨 보세요

p값들을 정렬해 놓고 Bonferroni 와 BH 문턱을 나란히 그려 보세요. 둘이 얼마나 다른지, 어느 쪽이 몇 개를 살리는지 보입니다.

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개의 발견을 얻었습니다. 이것을 바르게 해석한 것은?

DIGGIT 이 다중검정을 줄이는 두 가지 방법

  1. 검정 자체를 줄인다 — MR 25개만 상대하므로 검정 수가 수백 배 적습니다 (2강). 같은 신호라도 보정 문턱이 훨씬 낮아 살아남습니다.
  2. 독립된 증거를 요구한다 — aQTL 만으로 판정하지 않고 조건부 분석(16강)까지 통과해야 합니다. 우연히 한 관문을 넘은 후보가 두 관문을 다 넘기는 훨씬 어렵습니다.
'독립된 증거 두 개' 가 DIGGIT 설계의 핵심 사상입니다.
Python 브라우저에서 실행
🤔 확인 문제
DIGGIT 이 마스터 레귤레이터를 소수로 좁히는 것이 통계적으로 이득인 이유는?
🤔 확인 문제
Bonferroni 보정과 BH FDR 중 유전체 분석에서 BH 를 더 많이 쓰는 이유는?