실험을 돌리면 두 조건의 숫자는 거의 항상 다르게 나온다. 문제는 그 차이가 "진짜"인지 우연인지이고, 가설 검정은 이 질문에 답하기 위한 표준 절차다.
한국어 초성 줄임말 이해를 4지선다 200문항으로 평가한다고 하자. 모델 A가 61.5%, 모델 B가 58.0%를 받았다. A가 더 낫다고 결론 내려도 되는가?
곧바로 결론 내릴 수 없다. 200문항은 표본(sample)일 뿐이고, 같은 능력을 가진 두 모델이라도 문항 구성이나 우연에 따라 몇 점 차이는 흔하게 벌어진다. 동전을 200번 던져 앞면이 정확히 100번 나오지 않는 것과 같은 이치다. 관측된 3.5%p 차이가 "우연으로도 흔히 생길 수준"인지 "우연으로 보기 어려운 수준"인지 판정하는 절차가 가설 검정(hypothesis testing)이다.
가설 검정은 증명하고 싶은 것을 직접 증명하지 않는다. 대신 그 반대를 가정하고, 그 가정 아래에서 지금 데이터가 얼마나 이상한지를 잰다.
절차는 귀무가설을 참이라고 가정한 세계를 상상하는 데서 시작한다. 그 세계에서 지금 관측한 것만큼 극단적인 데이터가 나올 확률을 계산하고, 그 확률이 충분히 작으면 "차이가 없다는 가정과 데이터가 양립하기 어렵다"며 귀무가설을 기각(reject)한다. 주장을 직접 입증하는 대신 반대 가정을 무너뜨리는 이 구조는 2강에서 다룬 반증 논리와 같은 뼈대다.
p값(p-value)은 귀무가설이 참이라는 가정 아래에서, 관측된 것 이상으로 극단적인 결과가 나올 확률이다.
이 정의에서 놓치면 안 되는 것은 방향이다. p값은 "가 참일 때 데이터가 나올 확률"이지, "데이터를 봤을 때 가 참일 확률"이 아니다. 두 조건부 확률은 완전히 다른 값이다. "한국인일 때 한국어를 할 확률"과 "한국어를 할 때 한국인일 확률"이 다른 것과 같다.
앞의 예시로 돌아가면, "두 모델의 실력이 정말 같다면, 200문항에서 3.5%p 이상의 차이가 우연히 벌어질 확률"이 p값이다. 계산해서 p = 0.31이 나왔다면, 실력이 같아도 이 정도 차이는 세 번에 한 번꼴로 생긴다는 뜻이다. 이때 A가 낫다고 주장할 근거는 없다.
공식 없이 감을 잡기에 가장 좋은 방법은 순열 검정(permutation test)이다. 두 모델이 같은 200문항을 풀었고 관측된 정확도 차이가 3.5%p라고 하자.
t-검정, 이항 검정 같은 고전 검정들은 이 분포를 시뮬레이션 대신 수식으로 구하는 것일 뿐, 논리는 동일하다. "귀무가설의 세계를 만들어 놓고, 내 데이터가 그 세계에서 얼마나 드문지 잰다"는 한 문장이 모든 검정의 공통 구조다. 순열 검정은 분포 가정이 거의 없어 LLM 평가처럼 지표가 정규분포를 따른다고 보장할 수 없는 상황에서 특히 유용하다.
극단성을 재는 방향에 따라 검정이 갈린다. 양측 검정(two-tailed test)은 "차이가 있다"(어느 쪽이든)를, 단측 검정(one-tailed test)은 "A가 B보다 낫다"(한 방향만)를 대립가설로 둔다. 같은 데이터라면 단측 p값이 양측의 절반이라 유혹적이지만, 방향을 미리 고정할 강한 근거가 없다면 양측을 쓰는 것이 안전하다. 결과를 본 뒤 유리한 방향으로 단측을 고르는 것은 유의수준을 몰래 두 배로 늘리는 행위다. 기본값은 양측이고, 단측을 쓴다면 그 결정도 결과를 보기 전에 내려야 한다.
기각의 문턱값을 유의수준(significance level, )이라 하고 관례적으로 0.05를 쓴다. 이면 "통계적으로 유의하다(statistically significant)"고 말한다. 0.05는 자연법칙이 아니라 20세기 초에 굳어진 관례다. p = 0.049와 p = 0.051 사이에 본질적 차이는 없으며, 그래서 유의수준은 결과를 보기 전에 고정해야 한다(사전에 고정해야 하는 항목의 전체 목록은 14강에서 다룬다).
p값 오해는 통계학계가 공식 성명까지 낼 정도로 만연하다. 자주 나오는 것을 표로 정리한다.
| 오해 | 실제 |
|---|---|
| "p = 0.03이면 귀무가설이 참일 확률이 3%다" | p값은 가 참일 확률이 아니다. 를 참으로 가정한 뒤 계산한 값이므로, 그 가정 자체의 확률을 말할 수 없다 |
| "p < 0.05이면 대립가설이 맞을 확률이 95%다" | 위와 같은 방향 뒤집기 오류다. 가설이 맞을 확률은 p값으로 계산되지 않는다 |
| "p값이 작을수록 효과가 크다" | p값은 효과 크기가 아니다. 표본이 크면 미미한 차이도 p값이 작아진다. 크기는 효과 크기와 신뢰구간으로 보며, 10강에서 다룬다 |
| "p = 0.6이면 차이가 없다는 것이 증명됐다" | 기각 실패는 "차이 없음의 증명"이 아니라 "차이를 검출하지 못함"이다. 표본이 부족했을 수 있다. 이 구분은 12강에서 다룬다 |
| "p = 0.03이면 재현 실험도 97% 확률로 유의하게 나온다" | p값은 재현 확률을 말하지 않는다. 실제 재현율은 이보다 훨씬 낮은 경우가 많다 |
| "유의하면 우연이 아니라는 것이 확정된다" | 는 실제로 차이가 없어도 20번에 1번꼴로 유의 판정이 난다는 뜻이다. 이 오탐을 1종 오류(Type I error)라 한다 |
주의: 마지막 항목은 검정을 여러 번 반복할수록 심각해진다. 실험 조건을 20개 돌리면 아무 효과가 없어도 하나쯤은 "유의"하게 나온다. 이 문제와 보정 방법은 15강에서 다룬다.
검정의 판정은 틀릴 수 있고, 틀리는 방식이 두 가지다.
| 실제로 차이 없음 ( 참) | 실제로 차이 있음 ( 거짓) | |
|---|---|---|
| 기각함 ("유의하다") | 1종 오류: 없는 효과를 있다고 봄, 확률 | 올바른 검출 |
| 기각 못함 | 올바른 판정 | 2종 오류: 있는 효과를 놓침 |
로 고정한다는 것은 1종 오류율을 5%로 묶겠다는 계약이다. 반면 2종 오류율은 표본 크기와 효과의 실제 크기에 따라 달라지며, 이를 통제하는 개념이 검정력(power)이다. "표본이 몇 개면 충분한가"라는 질문과 함께 12강에서 다룬다. 여기서는 두 오류가 트레이드오프 관계라는 점만 기억하면 된다. 를 0.01로 조이면 오탐은 줄지만, 같은 표본으로는 실재하는 효과를 놓칠 확률이 올라간다.
p값 오남용이 얼마나 큰 파장을 낳는지 보여준 사건이 심리학 재현성 프로젝트(Open Science Collaboration의 Reproducibility Project: Psychology)다. 수백 명의 연구자가 유명 심리학 저널에 실린 연구 100건을 원저자 협조까지 받아 그대로 재현했는데, 원논문 대부분이 유의한 결과를 보고했음에도 재현 실험에서 유의하게 나온 것은 절반에 훨씬 못 미쳤고, 재현된 효과 크기도 원논문보다 대체로 작았다. "p < 0.05로 출판됐다"는 사실이 그 효과의 실재를 보장하지 않는다는 것이 대규모로 확인된 것이다.
이 파장 속에서 미국통계학회(ASA)는 이례적으로 p값에 관한 공식 성명을 발표했다. 성명의 요지는 이 문서의 오해 표와 같다. p값은 가설이 참일 확률도, 효과의 크기도, 결과의 중요성도 말해주지 않으며, 과학적 결론이 "p가 문턱값을 넘었는가"만으로 내려져서는 안 된다는 것이다. 일부 저널은 아예 p값 보고를 금지하는 극단적 대응까지 했다. 교훈은 p값을 버리라는 것이 아니라, 정의대로만 읽고 효과 크기·신뢰구간·재현과 함께 보라는 것이다.
초성 줄임말 4지선다 실험을 기준으로 절차를 정리한다.
"모델 A의 정확도가 찍기 수준(25%)을 넘는가"와 "A가 baseline B보다 나은가"는 서로 다른 검정이다. 무엇을 검정할지, 를 얼마로 할지 실험 전에 적어둔다. 결과를 본 뒤 유의하게 나온 비교만 골라 보고하는 것은 2강에서 정의한 HARKing의 통계판이며, 이를 구조적으로 막는 장치가 사전 등록(14강)이다.
| 상황 | 대표 검정 |
|---|---|
| 정확도가 찍기 수준(25%)을 넘는가 | 이항 검정(binomial test) |
| 서로 다른 문항을 푼 두 그룹 비교 | 독립표본 검정 (예: 독립 t-검정, 카이제곱) |
| 같은 문항을 두 모델이 푼 결과 비교 | 대응 검정 (예: McNemar 검정, 순열 검정) |
LLM 벤치마크 비교는 거의 항상 세 번째 상황이다. 같은 200문항을 두 모델이 풀었으므로 문항별 승패를 짝지어 비교할 수 있고, 이 대응(paired) 구조를 살리면 검정이 훨씬 예민해진다. 왜 그런지와 설계 요령은 11강에서 다룬다.
LLM 평가에는 디코딩 시드, 보기 순서 셔플 등 실행마다 달라지는 무작위성이 있다. 시드 하나로 얻은 숫자 하나에 검정을 걸면 그 시드의 운까지 효과로 계산된다. 다중 시드로 돌린 분포 위에서 비교해야 하며, 이 연구실 하네스가 단일 시드 보고를 아예 에러로 막는 이유이기도 하다(13강). 여러 시드 결과를 하나의 검정으로 묶는 파이프라인 구성은 20강에서 다룬다.
보고 문장에는 최소한 다음이 들어간다: 검정 이름, 표본 크기, 통계량, p값, 효과 크기와 신뢰구간(10강). 나쁜 보고와 좋은 보고를 비교하면 이렇다.
나쁜 예: "모델 A가 유의하게 우수했다 (p < 0.05)."
좋은 예: "동일 200문항에 대한 McNemar 검정에서 A가 B보다 유의하게 정확했다 (p = 0.01). 정확도 차이는 5.5%p (95% CI: 1.5~9.5%p), 시드 5개 전체에서 방향이 일치했다."
좋은 예는 독자가 스스로 판단할 재료를 준다. 유의했다는 판정뿐 아니라 차이가 얼마나 크고 얼마나 불확실한지까지 드러나기 때문이다.
p = 0.31이 나왔다면 그대로 보고한다. 유의해질 때까지 문항을 더 모으거나 조건을 바꿔 다시 돌리는 것은 1종 오류율을 조용히 끌어올리는 행위다(15강). 그리고 "차이를 검출하지 못했다"는 결과 자체가 연구적 가치를 가질 수 있다는 점은 16강에서 다룬다.