두 그룹 비교 ① — 차이와 흩어짐
log2FC 는 신호, 분산은 잡음
차이가 크다고 다 진짜가 아닙니다. 같은 그룹 안의 흔들림보다 큰가를 물어야 합니다.
드디어 비교입니다. 유전자 13,095개 각각에 대해 물어봅시다 —
KD 그룹과 WT 그룹의 값이 다른가?
가장 먼저 떠오르는 답은 평균의 차이입니다.
lfc = b.mean(1) - a.mean(1) # KD 평균 − WT 평균
이미 log2 눈금 위에 있으니, 이 뺄셈 하나가 곧 log2 fold change 입니다.
7강에서 만들어 둔 감각을 그대로 씁니다 — −1 이면 절반, +1 이면 두 배.
왜 차이만으로는 부족할까요? 8강 위젯에서 이미 봤습니다.
WT 4개 안에서도 값이 조금씩 흔들리죠. 만약 그룹 안의 흔들림이 그룹 간 차이만큼 크다면,
그 차이는 우연으로도 충분히 생길 수 있습니다.
평균 차이만으로 이미 방향은 보입니다. 하지만 아직 '믿을 만한가'는 모릅니다.
두 그룹의 흩어짐을 하나로 — 합동분산(pooled variance)
WT 의 분산과 KD 의 분산이 따로 있습니다. 하나로 합쳐야 t 를 만들 수 있어요.
그런데 WT 는 4개, KD 는 3개라 정보의 양이 다릅니다.
그래서 단순 평균이 아니라 자유도만큼 가중치를 주어 합칩니다.
d = (na - 1) + (nb - 1) # 3 + 2 = 5, 전체 자유도
s2 = (va*(na-1) + vb*(nb-1)) / d # 가중 평균
샘플이 많은 쪽 의견에 무게를 더 싣는 것입니다. 아주 상식적이죠.
분산의 범위가 5만 배. 이 불안정함이 11강의 주제입니다.
🎮 신호와 잡음을 직접 만들어 보기
두 그룹의 값을 직접 바꿔 보세요. 평균 차이는 그대로 두고
흩어짐만 키우면 t 가 어떻게 무너지는지 보입니다.
🤔 확인 문제
lfc = b.mean(1) - a.mean(1) 에서 a 와 b 의 순서를 바꾸면?
해설 KD − WT 로 정했기 때문에 음수 = KD 에서 내려감 입니다. 순서를 바꾸면 부호가 전부 뒤집혀 결론을 정반대로 읽게 됩니다 — 실제로 자주 나는 사고입니다.
🤔 확인 문제
분산을 계산할 때 ddof=1 을 쓰는 이유는?
해설 표본 평균은 그 표본에 가장 잘 맞는 값이라, 그대로 두면 흩어짐이 실제보다 작게 나옵니다. n−1 로 나눠 이를 보정합니다.
🤔 확인 문제
합동분산에서 (na-1), (nb-1) 로 가중치를 주는 까닭은?
해설 WT 4개는 KD 3개보다 정보가 많습니다. 자유도(n−1)만큼 가중치를 주는 것은 더 믿을 만한 추정에 무게를 더 싣는 자연스러운 방식입니다.