13강 / 20강
15,485번 물어보면 — 다중검정과 FDR
Benjamini–Hochberg · 이 강의의 실제 q값 분포
지금까지 유전자 하나에 대해 이야기했습니다. 그런데 우리는 15,485개를 전부 계산했어요.
p < 0.05 라는 것은 "진짜 차이가 없어도 스무 번에 한 번은 이만큼 튄다" 는 뜻입니다. 그럼 15,485번 물어보면?
문턱을 낮춰도 774개, 15개는 여전히 나옵니다.
Python
브라우저에서 실행
해결책은 두 갈래입니다.
FWER — 하나도 틀리지 않겠다
Bonferroni: 문턱을 유전자 수로 나눈다.
너무 엄해서 진짜도 다 놓칩니다.
0.05 / 15485 = 3.2×10⁻⁶너무 엄해서 진짜도 다 놓칩니다.
FDR — 뽑은 것 중 몇 %까지 틀려도 좋다
Benjamini–Hochberg: 순위를 매겨 문턱을 비스듬히 올린다.
"뽑은 목록의 5% 는 유령일 수 있다" 를 받아들입니다.
"뽑은 목록의 5% 는 유령일 수 있다" 를 받아들입니다.
표적 발굴에서는 FDR 을 씁니다. 어차피 뒤에 실험으로 걸러 낼 거니까, 진짜를 놓치는 것보다 유령 몇 개를 안고 가는 편이 낫거든요.
p=0.02 가 q=0.057 이 되어 탈락합니다. 순위가 낮으면 페널티가 큽니다.
Python
브라우저에서 실행
이 강의의 실제 결과입니다. 15,485개를 BH 로 보정했어요.
2,357개도 여전히 많습니다. 표적 후보를 2천 개 들고 갈 수는 없어요. 그래서 크기 조건을 겁니다 — 그래도 1,472개 입니다.
더 좁혀야 합니다. 다음 강이 그 이야기예요.
필터를 겹칠 때는 각 단계가 실제로 무엇을 걸러 내는지 봐야 합니다.
Python
브라우저에서 실행
🤔 확인 문제
유전자 15,485개를 p < 0.05 로 검정할 때, 진짜 차이가 하나도 없어도 몇 개가 유의하게 나오나요?
해설 15,485 × 0.05 ≈ 774 입니다. 이만큼이 순전히 우연으로 통과해요.
🤔 확인 문제
표적 발굴에서 Bonferroni 대신 FDR 을 쓰는 이유는?
해설 뒤에 실험으로 거를 단계가 있습니다. 그러니 목록에 유령이 5% 섞이는 건 감당할 수 있고, 진짜를 놓치는 건 회복이 안 돼요.
🤔 확인 문제
q = 0.05 를 정확히 옮기면?해설 q 는 유전자 하나가 아니라 목록에 대한 약속입니다. 개별 유전자의 확률로 읽으면 틀려요.