15강 / 20강
자를 자리를 찾아 헤매기 — p값을 만드는 법
없던 결과가 생겨난다
14강에서 우리는 중앙값에서 잘랐습니다. 왜 하필 중앙값일까요? 그저 관습입니다. 두 무리의 크기가 같아 검정력이 좋다는 이유가 있긴 하지만, "침윤률 5.73% 를 넘으면 다르다" 는 생물학적 근거는 어디에도 없습니다.
그렇다면 다른 자리에서 잘라 보면 어떨까요? 10 백분위수, 20 백분위수, … 90 백분위수. 열일곱 자리에서 시험해 봅시다.
중앙값(50 백분위)에서는 p = 0.365 — 아무 결과도 없습니다. 그런데…
Python
브라우저에서 실행
표를 보세요. 중앙값에서는 p = 0.365 입니다. 아무것도 없어요.
그런데 20 백분위수(침윤률 2.03%)에서 자르면 p = 0.0077 입니다. 0.05 를 한참 밑도는, 논문에 쓸 수 있는 값이죠.
열일곱 자리 중 여덟 자리에서 p < 0.05 가 나옵니다. 이 중 하나를 골라 "폐선암에서 TIL 은 예후 인자다 (p = 0.008)" 라고 쓰면? 거짓말은 아닙니다. 계산은 정확해요. 그런데 정직하지 않습니다.
모든 암종에서 "최선의 자리" 가 중앙값보다 좋습니다 — 당연합니다. 그렇게 골랐으니까요.
Python
브라우저에서 실행
그럼 어떻게 해야 할까요? 세 가지 길이 있습니다.
- 자료를 보기 전에 정한다 — 문턱을 사전등록(pre-registration)하거나, 앞선 연구에서 쓴 값을 그대로 쓴다. 가장 깨끗한 길입니다.
- 자르지 않는다 — 침윤률을 연속값 그대로 넣는 Cox 회귀를 씁니다. 문턱을 고를 일이 없으니 남용할 자유도 없어요. 검정력도 대개 더 좋습니다.
- 탐색을 인정하고 보정한다 — 여러 자리를 봤다는 사실을 보고하고, 그 탐색을 반영한 p값을 씁니다. 순열검정(19강)으로 만들 수 있습니다.
가장 나쁜 길은 열일곱 자리를 본 뒤 한 자리만 보고하는 것 입니다. 읽는 사람은 그 사실을 알 방법이 없습니다.
🤔 확인 문제
중앙값에서 p = 0.365, 20 백분위수에서 p = 0.008 이 나왔습니다. 정직한 보고는?
해설 계산의 정확성이 문제가 아닙니다. 문제는 몇 번 시도했는지를 감추는 것 입니다. 밝히기만 하면 20 백분위수 결과를 탐색적 발견으로 제시하는 것도 정당합니다.
🤔 확인 문제
연속값을 자르지 않고 Cox 회귀를 쓰면 좋은 점이 아닌 것은?
해설 임상에서 쓰려면 결국 어딘가에서 결정을 내려야 하고, 그때는 문턱이 필요합니다. 연속 모형의 약점이 바로 그 지점이에요 — 통계적으로는 낫지만 쓰기는 불편합니다.