# 통계적 검정과 다중검정

> 반복 측정의 변동, p-value, 효과 크기와 다중검정 보정을 일반적인 실험에서 해석하는 법을 설명한다.

통계적 검정은 **관찰한 차이가 조건의 효과인지, 반복할 때 생기는 흔들림만으로도 나타날 수 있는지** 판단하는 절차입니다. 차이가 크다는 사실과 그 차이가 반복해서 관찰된다는 사실을 함께 봅니다.

## 같은 차이, 다른 확신

새 서버 설정을 한 번 시험했더니 응답 시간이 `200 ms`에서 `100 ms`로 줄었다고 해봅시다. 두 배 차이는 보이지만, 그 한 번이 우연히 빠른 요청이었는지는 알 수 없습니다.

설정마다 여러 번 측정했을 때 기존 설정은 `190~210 ms`, 새 설정은 `90~110 ms`에 모인다면 차이는 반복 측정의 흔들림보다 큽니다. 반대로 두 설정의 값이 모두 `50~300 ms`에 넓게 퍼지면 평균 차이가 같아도 확신은 낮아집니다.

반복 측정은 이 흔들림, 즉 분산을 추정하는 데 필요합니다. 몇 번이면 충분한지는 효과의 크기와 변동, 측정 비용, 사용하려는 검정에 따라 달라집니다.

## p-value가 말하는 것

p-value는 **실제로 조건 차이가 없다는 모델 아래에서, 지금 관찰한 것만큼 또는 그보다 극단적인 결과가 나올 확률**입니다.

따라서 p-value는 다음 확률이 아닙니다.

- 관찰한 결과가 우연일 확률
- 조건 차이가 없을 확률
- 분석 가설이 틀릴 확률

p-value가 작아도 차이가 클 필요는 없습니다. 측정 횟수가 매우 많으면 작은 차이도 안정적으로 검출됩니다. 반대로 중요한 차이가 있어도 데이터가 적거나 흔들림이 크면 p-value가 클 수 있습니다.

## 효과 크기와 불확실성을 함께 본다

검정 결과를 판단하려면 p-value뿐 아니라 **차이가 얼마나 큰지**를 나타내는 효과 크기를 함께 봐야 합니다. 응답 시간이 `200 ms`에서 `199 ms`로 줄어든 결과가 통계적으로 매우 유의하더라도 실제 운영에는 의미가 없을 수 있습니다.

가능하면 효과 크기의 신뢰구간도 확인합니다. 추정값 하나는 가장 그럴듯한 크기를 보여 주고, 신뢰구간은 현재 데이터로 어느 범위까지 불확실한지를 보여 줍니다.

## 여러 항목을 동시에 검사하면

서로 차이가 없는 지표 1개를 `p < 0.05` 기준으로 검사하면 장기적으로 약 5%의 실험이 기준을 우연히 통과할 수 있습니다. 지표 20,000개를 같은 방식으로 검사하면 [거짓 양성](/reference/classification-metrics/#통계-검정의-거짓-양성과는-무엇이-다른가)이 많이 생깁니다. 여기서 거짓 양성은 분류기의 오분류 한 건이 아니라, 실제 효과가 없는 가설을 유의하다고 선택한 결과입니다.

**다중검정 보정**은 검사 횟수가 늘면서 쌓이는 거짓 양성을 다룹니다. 자주 쓰는 기준 가운데 **FDR**(false discovery rate)은 선택한 결과 집합에서 기대되는 거짓 발견의 비율을 제한합니다. 보정 뒤의 p-value는 흔히 `adjusted p-value` 또는 `padj`라고 표시합니다.

FDR 5%는 선택된 항목마다 틀릴 확률이 정확히 5%라는 뜻이 아닙니다. 같은 분석 절차를 반복했을 때, 선택된 결과 집합 안에 포함되는 거짓 발견의 비율을 평균적으로 제어하려는 기준입니다.

## 사례: 여러 유전자의 발현 차이를 검사할 때

RNA-seq 차등 발현 분석은 유전자 수천 개를 동시에 검사하므로 다중검정 보정이 필요합니다. [PyDESeq2](/reference/pydeseq2/) 같은 도구는 유전자별 raw count의 샘플 간 변동을 모델링하고 조건에 따른 차이를 검사합니다.

결과에서는 적어도 다음 세 값을 함께 봅니다. DESeq2 계열 결과표의 여섯 열을 연결해서 읽는 방법은 [DESeq2·PyDESeq2 결과표 읽기](/reference/deseq2-results/)에서 설명합니다.

- `baseMean`: 해당 유전자가 전체 샘플에서 어느 정도 관찰됐는가
- `log2FoldChange`: 두 조건 사이에서 어느 방향으로 몇 배 달라졌는가
- `padj`: 많은 유전자를 함께 검사한 뒤에도 통계적 증거가 남는가

count가 매우 낮은 유전자는 read 몇 개만 달라져도 비율이 크게 변합니다. 그래서 낮은 count를 사전에 거르거나 분석 도구의 독립 필터링을 사용하기도 합니다.

## 사례: 유전자 집합의 enrichment를 검사할 때

후보 유전자 100개 가운데 면역 경로 유전자가 20개라고 해봅시다. 중요한 것은 20이라는 숫자 자체가 아니라, 분석 가능한 전체 유전자에서 그 경로가 차지하는 비율보다 후보 목록에 유난히 많이 포함됐는가입니다.

Enrichment 검정은 후보 목록을 배경 유전자 집합과 비교합니다. 배경을 전체 게놈으로 둘지, 실험에서 실제로 측정할 수 있었던 유전자로 둘지에 따라 결과가 달라집니다. 경로도 여러 개를 동시에 검사하므로 이 단계에도 다중검정 보정이 필요합니다.

## 정리

통계적 검정은 관찰한 차이를 반복 측정의 변동과 비교합니다. p-value는 귀무모델 아래에서 데이터가 얼마나 극단적인지를 나타내며, 효과의 크기나 중요성을 대신하지 않습니다. 여러 항목을 동시에 검사했다면 보정된 p-value와 FDR을 확인하고, 효과 크기와 불확실성도 함께 판단합니다.