숫자 데스크의 확률과 통계: p값·신뢰구간·베이즈를 그림으로
·
강의 개요
1
우연은 생각보다 울퉁불퉁하다: 확률과 큰 수의 법칙
2
평균만 보면 속는다: 분포, 평균과 중앙값, 흩어짐
3
종 모양은 어디서 오나: 정규분포와 중심극한정리
4
1,000명에게 물어 5,000만 명을 안다: 표본과 표준오차
5
오차범위 ±3.1%p의 정체: 신뢰구간
6
우연일까 효과일까: 가설검정과 p값
7
p < 0.05의 함정: 오류, 검정력, 다중비교
8
양성인데 실제 병일 확률: 조건부 확률과 베이즈 정리
9
증거가 쌓일 때마다 생각을 고친다: 베이즈 갱신
10
같이 움직인다고 원인은 아니다: 상관, 인과, 심슨의 역설
오늘의 제보
#09 · 괴물 신인
제보
"누리리그 신인 타자 서도윤, 데뷔 첫 10타수 6안타. 타율 6할의 괴물 신인 등장!" (스포츠부 기사 초안, 내일 1면 후보. 선수와 리그는 가상)
확인할 것
10타수의 기록으로 이 선수의 진짜 실력을 어떻게 말해야 하는지 정한다. 어제 배운 베이즈 정리를 '증거가 올 때마다 믿음을 고치는 방법'으로 넓힌다.
한결일보 편집국 7층 · 숫자 데스크
목요일 아침, 스포츠부 기자가 어제 말한 기사 초안을 들고 왔습니다. 문 데스크도 따라 들어옵니다. "제목이 세잖아. 6할이면 리그 역사상 최고야. 숫자 틀린 건 없지? 10타수 6안타 맞고, 6 나누기 10은 0.6이고."
하린이 계산기를 두드립니다. "숫자는 맞아요. 그런데 어제 검사 이야기처럼, 맞는 숫자가 틀린 인상을 줄 수도 있는 거죠?" 강 선배가 고개를 끄덕입니다. "몇 타수 중에? 10타수야. 그리고 하나 더. 이 기록을 보기 전에, 신인 타자의 실력에 대해 우리가 이미 아는 건 없을까?"
하린은 잠시 생각합니다. "리그 평균 타율이 0.260쯤이라는 거요. 그리고 4할 타자는 거의 없다는 것도요." 강 선배가 화이트보드에 곡선 하나를 그립니다. "그게 출발점이야. 오늘은 그 곡선에 타석 하나하나를 넣어서 고쳐 가는 법을 볼 거야."
이번 교시에서는 사전 믿음, 가능도, 사후 믿음을 차례로 만나고, 작은 표본을 평균 쪽으로 당겨 읽는 축소를 익힙니다. 마지막에는 같은 생각으로 리뷰 별점을 다시 읽습니다.
먼저 무엇을 알고 싶은지 정합니다. 우리가 궁금한 것은 이 선수의 진짜 타율 p입니다. 아주 많은 타석에 섰을 때 안타가 나오는 비율, 곧 1교시에서 말한 확률로서의 실력입니다. 10타수 6안타라는 기록은 그 실력이 만든 결과 하나일 뿐입니다. 동전 열 번처럼 크게 출렁일 수 있습니다.
그런데 우리는 기록을 보기 전에도 p에 대해 꽤 많이 압니다. 이 가상 리그 타자들의 타율은 평균 0.260이고, 대부분 0.210에서 0.310 사이에 있습니다. 0.350을 넘는 타자는 아주 드뭅니다. 이 지식을 곡선으로 그린 것이 사전 믿음(prior) 입니다.
이 강의의 실습대는 사전 믿음을 '리그 평균 타자의 기록을 몇 타수만큼 미리 본 것과 같은가' 로 정합니다. 이것을 사전 믿음 강도라고 부르겠습니다. 강도 200이면 리그 평균 타자가 200타수에 52안타(0.260)를 친 기록을 미리 들고 있는 셈입니다. 이렇게 만든 곡선을 베타 분포(beta distribution) 라고 하는데, 이름은 몰라도 됩니다. "안타 몇 개, 아웃 몇 개를 미리 본 것과 같은 믿음"으로 기억하세요.
강도 200의 사전 믿음은 이런 뜻이 됩니다(반올림해 소수 셋째 자리까지).
| 질문 | 사전 믿음의 답 |
|---|---|
| 가장 그럴듯한 타율 | 0.260 근처 |
| 타자 열 명 중 아홉이 드는 범위 | 0.210 ~ 0.312 |
| 진짜 타율이 0.300을 넘을 확률 | 약 10% |
| 진짜 타율이 0.350을 넘을 확률 | 약 0.3% (1,000명 중 3명꼴) |
평균 수준(0.260)의 타자도 10타수 6안타 이상을 칠 확률이 약 2.4%입니다. 리그에 새로 나온 신인 타자가 40명이면 그중 한 명쯤은 실력과 상관없이 이런 출발을 합니다. 1교시의 교훈 그대로, 작은 표본은 극단을 만듭니다. 1면에 실릴 만큼 눈에 띄는 기록은 바로 그 극단에서 나옵니다.
이제 기록을 넣습니다. 각 후보 p에 대해 묻습니다. "진짜 타율이 p라면 10타수 6안타가 나올 가능성은 얼마나 될까?" 이것을 가능도(likelihood) 라고 합니다. 안타 6개와 아웃 4개가 나왔으니, 순서를 따지지 않을 때 가능도는 에 비례합니다. 0.260을 기준(1)으로 한 상대값은 이렇습니다.
| 진짜 타율 p | 0.200 | 0.260 | 0.300 | 0.400 | 0.600 |
|---|---|---|---|---|---|
| 10타수 6안타의 가능도 (0.260 = 1) | 0.28 | 1 | 1.89 | 5.73 | 12.9 |
기록만 보면 0.600이 0.260보다 약 13배 그럴듯합니다. 스포츠부 기사는 이 표의 오른쪽 끝만 본 셈입니다. 하지만 사전 믿음에서 0.600은 0.260보다 약 분의 1 만큼만 그럴듯합니다. 0이 스무 개 넘게 붙는 차이입니다. 13배의 증거로는 그 차이를 전혀 메울 수 없습니다.
두 가지를 합치는 규칙이 8교시의 베이즈 정리입니다.
는 "비례한다"는 뜻입니다. 곱한 뒤 곡선 아래 넓이가 다시 1이 되도록 전체 높이를 맞추면 사후 믿음(posterior) 이 됩니다. 타석 하나씩 보면 더 간단합니다.
아래 실습대의 가로축은 진짜 타율 p, 세로축은 믿음의 높이입니다. 회색 점선이 사전 믿음, 남색 곡선이 지금의 믿음이고, 남색으로 옅게 칠한 부분이 90% 믿음 구간입니다. 옅은 회색 실선들은 이전 곡선으로, 믿음이 어떻게 움직여 왔는지 보여 줍니다. 아래쪽 주황 점은 단순 타율(안타 ÷ 타수)입니다. '안타'와 '아웃'으로 타석을 하나씩 넣거나, '시즌 재생'으로 타석을 자동으로 이어 갈 수 있습니다.
안타 / 타수 0 / 0
단순 타율 –
베이즈 추정 0.260
90% 믿음 구간 0.210 ~ 0.312
아직 타석이 없습니다. 곡선은 사전 믿음입니다: 리그 평균 0.260 근처가 가장 그럴듯하고, 0.350이 넘는 타자는 드뭅니다.
실습대의 첫 선수는 시즌 끝에 500타수 145안타, 단순 타율 0.290을 기록합니다. 그때 베이즈 추정은 0.281, 90% 믿음 구간은 0.254–0.310이고, 숨겨 둔 실제 실력 0.290이 그 안에 있습니다. 10타수 때의 0.600은 시즌 내내 다시 나오지 않습니다.
곡선에서 읽을 것은 두 가지입니다.
'사전 믿음 강도'를 바꾸면 같은 10타수 6안타가 이렇게 다르게 읽힙니다.
| 사전 믿음 강도 | 베이즈 추정 | 90% 믿음 구간 |
|---|---|---|
| 0 (사전 믿음 없음) | 0.600 | 0.345 ~ 0.831 |
| 50 | 0.317 | 0.222 ~ 0.418 |
| 200 | 0.276 | 0.227 ~ 0.328 |
| 400 | 0.268 | 0.233 ~ 0.305 |
사전 믿음이 없으면 기록을 그대로 믿지만, 구간이 0.345에서 0.831까지 퍼집니다. "6할 타자"라고 말하기엔 너무 넓습니다. 사전 믿음이 강할수록 추정은 0.260 쪽에 머물고 구간은 좁아집니다.
실습대의 베이즈 추정은 손으로도 계산할 수 있습니다. 사전 믿음 강도를 라고 하면
입니다. 진짜 기록에 '리그 평균 타자의 가상 기록 타수'를 더해서 나눈 것입니다. 10타수 6안타, 을 넣으면
입니다. 같은 식을 이렇게 바꿔 쓸 수도 있습니다.
베이즈 추정은 단순 타율과 리그 평균의 가중 평균입니다. 기록의 무게 는 타수가 늘수록 커집니다. 10타수일 때 이니, 기록은 5%만 반영되고 95%는 리그 평균이 정합니다. 확인해 보면 으로 같습니다.
같은 선수가 시즌을 이어 가며 이런 기록을 남긴다고 해 봅시다().
| 타수 | 안타 | 단순 타율 | 기록의 무게 w | 베이즈 추정 |
|---|---|---|---|---|
| 10 | 6 | 0.600 | 0.048 | 0.276 |
| 30 | 12 | 0.400 | 0.130 | 0.278 |
| 100 | 33 | 0.330 | 0.333 | 0.283 |
| 200 | 62 | 0.310 | 0.500 | 0.285 |
| 600 | 180 | 0.300 | 0.750 | 0.290 |
단순 타율은 0.600에서 0.300까지 크게 떨어지지만, 베이즈 추정은 처음부터 0.28 안팎에서 차분하게 움직입니다. 타수가 와 같아지는 200타수에서 기록과 사전 믿음이 반반이 되고, 그 뒤로는 기록이 더 큰 목소리를 냅니다.
이렇게 작은 표본의 값을 전체 평균 쪽으로 당겨 읽는 것을 축소(shrinkage) 라고 합니다. 얼마나 당길지는 가 정하고, 는 "같은 부류가 원래 얼마나 고르게 퍼져 있나"로 정합니다. 타자들의 실력이 서로 비슷할수록(곡선이 좁을수록) 가 크고, 작은 기록 하나로는 잘 움직이지 않습니다. 실력 차가 큰 무리라면 가 작아 기록을 더 빨리 믿습니다.
강 선배의 한마디
작은 표본에서 나온 놀라운 숫자는 일단 평균 쪽으로 당겨 읽어. 신인의 6할, 개업 첫 달 매출 1위, 리뷰 세 개짜리 별점 5.0. 다 같은 모양이야. 얼마나 당길지는 '그 부류가 원래 얼마나 고르게 퍼져 있나'가 정해.
하린이 점심 먹을 곳을 고르다 지도 앱을 내밉니다. "A 식당은 별점 5.0인데 리뷰가 3개, B 식당은 4.6에 리뷰 500개예요. 어디가 더 맛있을까요?" 강 선배가 웃습니다. "오늘 배운 걸로 풀어 봐."
계산을 쉽게 하려고 리뷰 하나하나를 '만족(별 4–5개)'과 '불만(별 1–3개)'으로만 나눕니다. 그러면 타율과 똑같은 문제가 됩니다. 가게의 진짜 만족 비율을 추정하는 것입니다.
리뷰 3개뿐인 A는 평균 80% 쪽으로 크게 당겨지고, 리뷰 500개인 B는 거의 그대로입니다. 베이즈 추정으로는 B가 앞섭니다. 90% 믿음 구간은 A가 68.4%–93.5%, B가 89.4%–93.4%입니다. A가 B보다 좋을 가능성이 없지는 않지만, 지금 증거로는 A에 대해 아는 것이 거의 없습니다.
별점 평균에 같은 생각을 바로 쓸 수도 있습니다. 앱 전체 평균 별점이 4.0이라면, 가상 리뷰 20개를 4.0점으로 더해 평균을 냅니다.
이것을 베이즈식 평균(Bayesian average) 이라고 합니다. 리뷰 수가 제각각인 대상을 한 줄로 세워야 하는 순위표에서 실제로 이런 방식의 가중 평균을 많이 씁니다. 리뷰 하나짜리 5.0이 1위에 오르는 일을 막기 위해서입니다.
아래 실습대는 두 가게의 만족 비율에 대한 믿음 곡선입니다. 남색이 A, 청록이 B, 회색 점선이 사전 믿음(평균 80%)이고, 옅게 칠한 부분이 각각의 90% 믿음 구간입니다. 표에 리뷰 수, 단순 만족 비율, 베이즈 추정, 90% 믿음 구간이 나옵니다.
| 가게 | 리뷰 | 만족 | 단순 | 베이즈 추정 | 90% 구간 |
|---|---|---|---|---|---|
| 가게 A | 3 | 3 | 100% | 82.6% | 68.4~93.5% |
| 가게 B | 500 | 460 | 92% | 91.5% | 89.4~93.4% |
A 베이즈 추정 82.6%
B 베이즈 추정 91.5%
A는 리뷰 3개가 모두 만족(100%), B는 500개 중 460개 만족(92%)입니다. 베이즈 추정은 A 82.6%, B 91.5%. 리뷰가 적은 A는 평균 80% 쪽으로 크게 당겨지고, B는 거의 그대로입니다.
오늘 배운 것은 계산법이면서 생각하는 습관이기도 합니다. 강 선배는 네 가지로 정리합니다.
"데뷔 첫 주 타율 5할", "개업 3개월 만에 매출 1위", "리뷰 평점 만점" 같은 문장은 모두 작은 표본의 극단값입니다. 숫자 데스크의 고쳐 쓰기는 이렇습니다. 기록이 사실이면 기록을 쓰되, 몇 타수(몇 건) 중의 기록인지 함께 쓰고, 그 정도 표본에서는 우연히 나올 수 있는 값이라는 맥락을 붙입니다. 하린이 스포츠부에 보낸 의견은 이랬습니다. "'10타수 6안타로 산뜻한 출발'은 사실입니다. '6할 괴물'은 10타수로는 말할 수 없습니다. 리그 평균 타자도 40명 중 한 명꼴로 이런 출발을 합니다."
팩트체크 노트
사전 믿음: 기록을 보기 전에 이미 아는 것(리그 평균 0.260, 대부분 0.21~0.31)을 곡선으로 그린 것이다.
사후 믿음 ∝ 사전 믿음 × 가능도. 안타는 곡선에 p를, 아웃은 1 − p를 곱한다. 고친 곡선이 다음 증거의 사전 믿음이 된다.
베이즈 추정 = (안타 + 평균 × k) / (타수 + k). 작은 표본은 평균 쪽으로 당겨 읽고(축소), 기록이 쌓일수록 기록을 믿는다.
별점·평점도 같다. 리뷰 수가 적은 높은 점수는 전체 평균 쪽으로 당겨서 비교한다(베이즈식 평균).
기사에서 이 숫자를 만나면 물어볼 것: 몇 타수(몇 건) 중의 기록인가? 같은 부류의 평균은 얼마이고, 이 정도 표본이면 우연히 얼마나 자주 나오나?
스포츠부 기사의 제목은 "신인 서도윤, 10타수 6안타로 산뜻한 출발"로 바뀌었습니다. 퇴근 무렵 문 데스크가 내일 아침에 볼 독자 제보 한 장을 흔듭니다. "올여름 아이스크림이 많이 팔린 날일수록 물놀이 사고도 많았다. 아이스크림이 사고를 부르는 것 아닌가." 하린이 웃음을 참으며 강 선배를 봅니다. 강 선배가 말합니다. "같이 움직이는 건 맞을 거야. 그런데 누가 누구를 움직였을까?" 마지막 10교시에서는 상관과 인과, 그리고 숫자 기사를 읽는 체크리스트를 정리합니다.
새 교시·새 강의 소식 받기
이 강의에 새 교시가 더해지거나 이어지는 강의가 열리면 이메일로 알려 드려요.
R
ReflexKR
눌러 보며 배우는 파이썬과 Reflex. 모든 예제는 Reflex 0.10.0에서 직접 실행해 확인했습니다.
ReflexKR은 배너 광고 없이 무료로 운영돼요. 도움이 되셨다면 커피 한 잔으로 응원해 주세요.
© 2026 ReflexKR · Since 2026 · CC BY-NC 4.0
질문과 답변
이 교시에서 궁금한 점을 남겨 주세요. 모든 언어 페이지의 질문이 함께 모입니다.