10강 / 20강

두 그룹 비교 ① — 차이와 흩어짐

log2FC 는 신호, 분산은 잡음

두 그룹 비교 ① — 차이와 흩어짐
차이가 크다고 다 진짜가 아닙니다. 같은 그룹 안의 흔들림보다 큰가를 물어야 합니다.

드디어 비교입니다. 유전자 13,095개 각각에 대해 물어봅시다 — KD 그룹과 WT 그룹의 값이 다른가?

가장 먼저 떠오르는 답은 평균의 차이입니다.

lfc = b.mean(1) - a.mean(1) # KD 평균 − WT 평균

이미 log2 눈금 위에 있으니, 이 뺄셈 하나가 곧 log2 fold change 입니다. 7강에서 만들어 둔 감각을 그대로 씁니다 — −1 이면 절반, +1 이면 두 배.

📏
신호 (signal)
두 그룹 평균의 차이 = log2FC
〰️
잡음 (noise)
같은 그룹 안에서의 흔들림 = 분산
⚖️
t = 신호 ÷ 잡음
잡음 대비 얼마나 큰 차이인가

왜 차이만으로는 부족할까요? 8강 위젯에서 이미 봤습니다. WT 4개 안에서도 값이 조금씩 흔들리죠. 만약 그룹 안의 흔들림이 그룹 간 차이만큼 크다면, 그 차이는 우연으로도 충분히 생길 수 있습니다.

평균 차이만으로 이미 방향은 보입니다. 하지만 아직 '믿을 만한가'는 모릅니다.
Python 브라우저에서 실행

두 그룹의 흩어짐을 하나로 — 합동분산(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강의 주제입니다.
Python 브라우저에서 실행

🎮 신호와 잡음을 직접 만들어 보기

두 그룹의 값을 직접 바꿔 보세요. 평균 차이는 그대로 두고 흩어짐만 키우면 t 가 어떻게 무너지는지 보입니다.

신호 대 잡음 실험실 — 같은 차이, 다른 확신
불러오는 중…
🤔 확인 문제
lfc = b.mean(1) - a.mean(1) 에서 a 와 b 의 순서를 바꾸면?
🤔 확인 문제
분산을 계산할 때 ddof=1 을 쓰는 이유는?
🤔 확인 문제
합동분산에서 (na-1), (nb-1) 로 가중치를 주는 까닭은?