13강 / 20강

15,485번 물어보면 — 다중검정과 FDR

Benjamini–Hochberg · 이 강의의 실제 q값 분포

15,485번 물어보면 — 다중검정과 FDR
한 번 물어서 맞히는 것과 만 오천 번 물어서 맞히는 것은 다릅니다.

지금까지 유전자 하나에 대해 이야기했습니다. 그런데 우리는 15,485개를 전부 계산했어요.

p < 0.05 라는 것은 "진짜 차이가 없어도 스무 번에 한 번은 이만큼 튄다" 는 뜻입니다. 그럼 15,485번 물어보면?

문턱을 낮춰도 774개, 15개는 여전히 나옵니다.
Python 브라우저에서 실행
문턱을 움직여 보기 — 몇 개가 남고 몇 개가 유령인가
불러오는 중…

해결책은 두 갈래입니다.

FWER — 하나도 틀리지 않겠다
Bonferroni: 문턱을 유전자 수로 나눈다.
0.05 / 15485 = 3.2×10⁻⁶
너무 엄해서 진짜도 다 놓칩니다.
FDR — 뽑은 것 중 몇 %까지 틀려도 좋다
Benjamini–Hochberg: 순위를 매겨 문턱을 비스듬히 올린다.
"뽑은 목록의 5% 는 유령일 수 있다" 를 받아들입니다.

표적 발굴에서는 FDR 을 씁니다. 어차피 뒤에 실험으로 걸러 낼 거니까, 진짜를 놓치는 것보다 유령 몇 개를 안고 가는 편이 낫거든요.

p=0.02 가 q=0.057 이 되어 탈락합니다. 순위가 낮으면 페널티가 큽니다.
Python 브라우저에서 실행

이 강의의 실제 결과입니다. 15,485개를 BH 로 보정했어요.

🧬
15,485
검정한 유전자 — 네 플랫폼의 공통
✅
2,357
q < 0.05 를 통과
💪
1,472
거기에 |g| > 1.0 까지

2,357개도 여전히 많습니다. 표적 후보를 2천 개 들고 갈 수는 없어요. 그래서 크기 조건을 겁니다 — 그래도 1,472개 입니다.

더 좁혀야 합니다. 다음 강이 그 이야기예요.

필터를 겹칠 때는 각 단계가 실제로 무엇을 걸러 내는지 봐야 합니다.
Python 브라우저에서 실행
🤔 확인 문제
유전자 15,485개를 p < 0.05 로 검정할 때, 진짜 차이가 하나도 없어도 몇 개가 유의하게 나오나요?
🤔 확인 문제
표적 발굴에서 Bonferroni 대신 FDR 을 쓰는 이유는?
🤔 확인 문제
q = 0.05 를 정확히 옮기면?