17강 / 20강
마스터 레귤레이터 — 순위표에서 진짜를 고르기
6,000번 검사하면 우연도 300번 유의해진다
순위표가 나왔습니다. 전사인자 6,000개에 대해 NES 와 p 값이 붙어 있어요. p < 0.05 인 것을 세어 보니 412개 입니다. 412개가 전부 마스터 레귤레이터일까요?
아닙니다. 아무 일도 없는 세계에서도 6,000번 검사하면 6,000 × 0.05 = 300개가 우연히 p < 0.05 를 통과합니다. 412개 중 300개는 그냥 운일 수 있다는 뜻입니다.
이것이 다중검정 문제이고, VIPER 를 실전에 쓸 때 반드시 넘어야 하는 문턱입니다.
검사를 많이 하면 우연도 많아집니다. 당연한 이야기지만 자주 잊힙니다.
Python
브라우저에서 실행
고치는 법 — FDR (거짓 발견율)
본페로니 보정(p × 6000)은 너무 엄격해서 진짜 발견까지 다 죽입니다.
유전체 분야가 널리 쓰는 것은 벤저미니-호크버그(BH) 방법으로 계산하는
FDR(False Discovery Rate)입니다.
FDR 은 이렇게 약속합니다 — "내가 발견이라고 부른 것들 중에서 평균적으로 이 비율만큼은 가짜다." FDR 0.05 로 100개를 골랐다면 그중 5개쯤은 가짜일 것을 각오한다는 뜻이에요.
BH 절차 — p 값을 작은 것부터 줄 세우고(순위 i, 전체 m),
각각을 p·m/i 로 고칩니다. 그다음 뒤에서부터 앞으로 오며
누적 최솟값을 취해 값이 뒤집히지 않게 다듬습니다.
BH 보정은 뒤에서부터 누적 최솟값을 취하는 것이 핵심입니다.
Python
브라우저에서 실행
🎮 문턱을 옮겨 보세요
NES 문턱과 FDR 문턱을 조절하며 몇 개가 살아남는지 보세요. 문턱을 느슨하게 하면 후보가 늘지만 그중 가짜의 비율도 늘어납니다. 몇 개를 보고할 것인가는 통계가 아니라 여러분이 정하는 것입니다 — 후속 실험을 몇 개나 할 수 있느냐에 달려 있습니다.
옳은 문턱은 통계가 아니라 다음에 무엇을 할 것인가가 정합니다.
Python
브라우저에서 실행
🤔 확인 문제
전사인자 6,000개를 검사해 p < 0.05 인 것이 412개 나왔습니다. 가장 알맞은 대응은?
해설 6,000번 검사하면 아무 일 없어도 300개쯤은 p < 0.05 를 통과합니다. FDR 보정으로 “발견이라 부른 것 중 가짜의 비율”을 통제해야 합니다.
🤔 확인 문제
FDR 0.05 로 100개의 마스터 레귤레이터를 골랐습니다. 올바른 해석은?
해설 FDR 은 고른 집합 전체에 대한 약속입니다 — “발견이라 부른 것들 중 가짜의 평균 비율이 5% 를 넘지 않게” 라는 뜻이지, 개별 후보의 확률이 아닙니다.
🤔 확인 문제
후속 검증 실험을 다섯 개만 할 수 있는 상황에서 문턱 선택으로 알맞은 것은?
해설 자원이 다섯 개뿐이면 고른 것이 맞을 확률이 무엇보다 중요합니다. 놓치는 진짜가 늘더라도(재현율 ↓) 정밀도를 우선하는 것이 합리적입니다.