p값은 "차이가 없는데도 이만한 t 가 우연히 나올 확률" 입니다.
수축된 분산 s2p 를 얻었으니 t 를 다시 만듭니다.
이것을 moderated t(조절된 t) 라고 불러요.
t = lfc / np.sqrt(s2p * (1/na + 1/nb))
dft = d0 + d # 자유도도 빌려온 만큼 늘어난다
p = 2 * stats.t.sf(np.abs(t), dft)
자유도가 d(5)에서 d0 + d(≈7.65)로 늘어난 점을 보세요.
이웃 유전자에게서 정보를 빌려왔으니, 그만큼 더 많은 관측을 한 셈으로 쳐 주는 겁니다.
이것이 limma 가 적은 반복에서도 강한 이유입니다.
p값 읽는 법
p값은 "이 유전자가 변했을 확률"이 아닙니다. 정반대에 가까워요.
p = 정말 아무 차이도 없다면, 이만큼 큰 t 가 우연히 나올 확률
p 가 작다는 것은 "우연으로 설명하기 힘들다"는 뜻입니다.
그래서 우리는 차이가 없다는 가정(귀무가설) 을 의심하게 됩니다.
🎮 t 분포와 p값 면적
t 값과 자유도를 움직여 보세요. 꼬리 면적(= p값)이 얼마나 빨리 줄어드는지,
자유도가 커지면 곡선이 어떻게 날렵해지는지 보입니다.
지금까지의 모든 것을 함수 하나로
10~13강에서 배운 것을 코드랩은 함수 하나에 담았습니다.
이제 이 함수의 모든 줄을 읽을 수 있습니다.
코드랩의 그 함수 그대로입니다. 이제 한 줄도 낯설지 않습니다.
수축 덕분에 '우연히 조용한' 유전자가 더 이상 1등이 아닙니다.
🤔 확인 문제
p = 0.001 을 바르게 읽은 것은?
해설 p값은 귀무가설(차이 없음)이 맞다고 쳤을 때 지금 같은 결과가 우연히 나올 확률입니다. '유전자가 변했을 확률'이 아닙니다 — 아주 흔한 오해예요.
🤔 확인 문제
2 * stats.t.sf(np.abs(t), dft) 에서 2 를 곱하는 이유는?
해설 절댓값으로 오른쪽 꼬리 면적을 구한 뒤, 대칭인 왼쪽 꼬리도 더해야 '어느 방향으로든 변했을' 확률이 됩니다. 이것이 양측검정입니다.
🤔 확인 문제
moderated t 에서 자유도가 d0 + d 로 늘어나는 것이 뜻하는 바는?
해설 정보를 빌려왔으니 그만큼 더 많이 관측한 셈으로 인정해 주는 것입니다. 자유도가 크면 t 분포의 꼬리가 얇아져 같은 t 라도 p 가 작아집니다 — limma 가 적은 반복에서 강한 이유입니다.