13강 / 20강

moderated t 와 p값 — 함수 하나로 묶기

stats.t.sf, 양측검정, 그리고 def

moderated t 와 p값 — 함수 하나로 묶기
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값)이 얼마나 빨리 줄어드는지, 자유도가 커지면 곡선이 어떻게 날렵해지는지 보입니다.

t 분포 실험실 — 꼬리 면적이 곧 p값
불러오는 중…

지금까지의 모든 것을 함수 하나로

10~13강에서 배운 것을 코드랩은 함수 하나에 담았습니다. 이제 이 함수의 모든 줄을 읽을 수 있습니다.

코드랩의 그 함수 그대로입니다. 이제 한 줄도 낯설지 않습니다.
Python 브라우저에서 실행
수축 덕분에 '우연히 조용한' 유전자가 더 이상 1등이 아닙니다.
Python 브라우저에서 실행
🤔 확인 문제
p = 0.001 을 바르게 읽은 것은?
🤔 확인 문제
2 * stats.t.sf(np.abs(t), dft) 에서 2 를 곱하는 이유는?
🤔 확인 문제
moderated t 에서 자유도가 d0 + d 로 늘어나는 것이 뜻하는 바는?