숫자 데스크의 확률과 통계: p값·신뢰구간·베이즈를 그림으로
·
강의 개요
1
우연은 생각보다 울퉁불퉁하다: 확률과 큰 수의 법칙
2
평균만 보면 속는다: 분포, 평균과 중앙값, 흩어짐
3
종 모양은 어디서 오나: 정규분포와 중심극한정리
4
1,000명에게 물어 5,000만 명을 안다: 표본과 표준오차
5
오차범위 ±3.1%p의 정체: 신뢰구간
6
우연일까 효과일까: 가설검정과 p값
7
p < 0.05의 함정: 오류, 검정력, 다중비교
8
양성인데 실제 병일 확률: 조건부 확률과 베이즈 정리
9
증거가 쌓일 때마다 생각을 고친다: 베이즈 갱신
10
같이 움직인다고 원인은 아니다: 상관, 인과, 심슨의 역설
오늘의 제보
#08 · 정확도 99%
제보
"새봄진단의 ○○병 조기 검사, 정확도 99%!" (건강검진 회사 전면 광고) / "이 검사에서 양성이 나왔어요. 99% 병이라는 뜻인가요? 무서워서 잠이 안 옵니다." (독자 메일)
확인할 것
'정확도 99% 검사에서 양성'이 실제 병일 확률로 몇 %인지 계산한다. 그러려면 그 99%가 '누구 중에서'의 비율인지부터 가린다.
한결일보 편집국 7층 · 숫자 데스크
둘째 주 수요일 아침입니다. 문 데스크가 신문 한 면을 통째로 차지한 광고와 출력한 독자 메일을 함께 내려놓습니다. 광고 속 회사는 새봄진단, 물론 지어낸 회사입니다. "광고는 광고팀 일이고, 메일이 문제야. 비슷한 메일이 열 통이 넘어. 99%면 거의 확실한 거 맞아? 오늘 안에 답 기사 하나 써."
하린은 메일을 다시 읽습니다. "정확도가 99%면 틀릴 확률은 1%잖아요. 양성이면 99% 병인 거 아니에요?" 강 선배가 커피를 내려놓습니다. "몇 명 중에? 그 병, 검진받는 사람 중에 원래 몇 명이 걸려 있어?"
광고 아래 작은 글씨를 찾아보니 이 병은 검진 대상자 100명 중 1명꼴로 있습니다. 강 선배가 화이트보드에 '1만 명'이라고 씁니다. "확률로 생각하면 머리가 꼬여. 사람 수로 세 보자."
이번 교시에서는 조건부 확률, 자연 빈도로 세기, 기저율, 그리고 이 모두를 한 줄로 묶는 베이즈 정리를 익힙니다. 마지막에 재검사가 무엇을 바꾸는지 봅니다. 의학 조언이 아니라 숫자를 읽는 원리를 다룹니다. 실제 검사 결과의 해석은 의료진과 상의해야 합니다.
먼저 쉬운 질문 두 개입니다.
두 질문은 같은 두 단어(농구 선수, 키 180cm 이상)로 만들었는데 답이 전혀 다릅니다. 차이는 누구 중에서 세느냐입니다. 첫 질문은 농구 선수들을 모아 놓고 세고, 두 번째 질문은 키 큰 사람들을 모아 놓고 셉니다.
이렇게 "어떤 무리 안에서의 확률"을 조건부 확률(conditional probability) 이라고 합니다. 세로 막대 | 뒤에 '누구 중에서'를 씁니다.
검사 광고의 99%도 조건부 확률입니다. 그런데 어느 쪽일까요? 검사의 성능은 보통 이렇게 잽니다. 병이 있다고 이미 확인된 사람들에게 검사를 해 보고, 그중 몇 %가 양성으로 나오는지 셉니다. 즉 광고의 99%는 , "병 있는 사람 중에서 양성이 나오는 비율"입니다.
독자가 궁금한 것은 반대 방향입니다. 나는 이미 양성이 나왔고, 이제 알고 싶은 것은 , "양성이 나온 사람 중에서 실제 병인 비율"입니다. 농구 선수와 키처럼, 이 두 확률은 같을 이유가 전혀 없습니다. 조건과 결과를 뒤집으면 다른 숫자가 됩니다.
| 기호 | 읽는 법 | 뜻 |
|---|---|---|
| B일 때 A일 확률 | B인 사람(경우)들만 모아 놓고 셌을 때 A의 비율 | |
| ~일 때, ~ 중에서 | 세로 막대 뒤가 '누구 중에서'(조건) | |
| 병일 때 양성일 확률 | 민감도. 병 있는 사람을 얼마나 잘 잡아내나 | |
| 병이 없을 때 음성일 확률 | 특이도. 병 없는 사람을 얼마나 잘 통과시키나 | |
| 양성일 때 병일 확률 | 양성 예측도. 독자가 실제로 궁금한 숫자 |
확률을 곱하고 나누다 보면 어느 쪽이 분모인지 금방 헷갈립니다. 그래서 강 선배는 확률을 사람 수로 바꿔 셉니다. 이것을 자연 빈도(natural frequency) 로 생각하기라고 합니다. 심리학자 게르트 기거렌처가 이 방법을 쓰면 의사와 일반인 모두 이런 문제를 훨씬 잘 푼다는 것을 보여 주면서 널리 알려졌습니다.
검진받는 사람 1만 명을 떠올립니다. 숫자는 광고와 같게 둡니다. 유병률 1%, 민감도 99%, 특이도 99%입니다.
| 1만 명 | 양성 | 음성 | 합계 |
|---|---|---|---|
| 병 있음 | 99 | 1 | 100 |
| 병 없음 | 99 | 9,801 | 9,900 |
| 합계 | 198 | 9,802 | 10,000 |
양성 198명 중 실제 병은 99명, 정확히 50% 입니다. 정확도 99% 검사에서 양성이 나와도 병일 확률은 동전 던지기와 같습니다. 99%가 틀린 것이 아닙니다. 병 없는 9,900명의 1%가 병 있는 100명의 99%와 같은 크기가 되었을 뿐입니다.
아래 실습대는 이 1만 명을 점 100 × 100개로 그린 것입니다. 점 하나가 한 사람입니다. 남색은 병이 있고 양성인 사람, 주황은 병이 없는데 양성인 사람(거짓 양성), 빨강은 병이 있는데 음성인 사람(놓침), 옅은 회색은 병이 없고 음성인 사람입니다. 오른쪽의 세 슬라이더로 유병률·민감도·특이도를 바꿀 수 있고, 그림 아래 표는 같은 사람 수를 2 × 2 표로 보여 줍니다.
| 양성 | 음성 | 합계 | |
|---|---|---|---|
| 병 있음 | 99 | 1 | 100 |
| 병 없음 | 99 | 9,801 | 9,900 |
| 합계 | 198 | 9,802 | 10,000 |
병 있는 사람 100명
양성 판정 198명
양성 중 실제 병
50%
양성 198명 중 실제 병 99명
점 하나가 한 사람입니다. 1만 명 가운데 병 있는 사람(남색과 빨강)은 100명뿐입니다. '양성만 보기'를 눌러 보세요.
실습대에서 본 것을 용어로 정리합니다. 검사 하나를 설명하는 숫자는 적어도 네 개입니다.
| 이름 | 뜻 | 1만 명 표에서 | 값 |
|---|---|---|---|
| 민감도 (sensitivity) | 병 있는 사람 중 양성 | 99 / 100 | 99% |
| 특이도 (specificity) | 병 없는 사람 중 음성 | 9,801 / 9,900 | 99% |
| 양성 예측도 (positive predictive value) | 양성인 사람 중 실제 병 | 99 / 198 | 50% |
| 음성 예측도 (negative predictive value) | 음성인 사람 중 실제로 병 없음 | 9,801 / 9,802 | 약 99.99% |
민감도와 특이도는 검사의 성질입니다. 병이 확인된 사람과 없는 사람에게 미리 재 두는 값이라, 누구에게 쓰든 대체로 비슷합니다. 양성 예측도와 음성 예측도는 검사받는 사람들의 성질까지 섞인 숫자입니다. 같은 검사라도 누구에게 쓰느냐에 따라 달라집니다. 독자에게 필요한 숫자는 양성 예측도인데, 광고는 대개 민감도나 '정확도'만 씁니다.
'정확도(accuracy)' 라는 말도 조심해야 합니다. 보통 "전체 중 맞게 판정한 비율"을 뜻합니다. 위 표에서는 (99 + 9,801) / 10,000 = 99%입니다. 그런데 이 병에서는 아무것도 보지 않고 모두에게 음성이라고 말하는 검사도 9,900명을 맞히니 정확도가 99%입니다. 병이 드물면 정확도라는 숫자 하나로는 검사가 쓸모 있는지조차 알 수 없습니다.
강 선배의 한마디
'정확도 99%'를 보면 세 가지를 따로 물어. 병 있는 사람을 몇 % 잡아내나(민감도), 병 없는 사람을 몇 % 통과시키나(특이도), 그리고 검사받는 사람 중 원래 몇 %가 병인가(유병률). 셋 중 하나라도 빠지면 양성의 뜻을 계산할 수 없어.
검사를 받기 전에 이미 알고 있는 "원래 몇 %인가"를 기저율(base rate) 이라고 합니다. 병이라면 유병률(prevalence) 입니다. 사람들은 검사 결과라는 새 정보에 마음을 빼앗겨 기저율을 잊는 버릇이 있습니다. 이것을 기저율 무시(base rate neglect) 라고 합니다.
같은 검사(민감도 99%, 특이도 99%)를 유병률이 다른 무리에게 쓰면 양성의 뜻이 이렇게 달라집니다. 값은 반올림 없이 계산한 뒤 소수 첫째 자리에서 반올림했습니다.
| 유병률 | 1만 명 중 병 | 진짜 양성 | 거짓 양성 | 양성 중 실제 병 |
|---|---|---|---|---|
| 0.1% | 10 | 9.9 | 99.9 | 9.0% |
| 0.5% | 50 | 49.5 | 99.5 | 33.2% |
| 1% | 100 | 99 | 99 | 50.0% |
| 5% | 500 | 495 | 95 | 83.9% |
| 10% | 1,000 | 990 | 90 | 91.7% |
| 20% | 2,000 | 1,980 | 80 | 96.1% |
거짓 양성은 유병률과 상관없이 늘 100명 안팎입니다. 병 없는 사람이 거의 1만 명이고, 그 1%이기 때문입니다. 바뀌는 것은 진짜 양성 쪽입니다. 병이 드물면 진짜 양성이 거짓 양성에 묻힙니다. (실습대는 사람 수를 정수로 반올림해서 그립니다. 그래서 유병률 0.1%에서는 진짜 양성 10명, 거짓 양성 100명으로 9.1%가 나옵니다.)
그래서 누구에게 검사하느냐가 결과의 뜻을 바꿉니다. 증상이 있어 병원을 찾은 사람들은 유병률이 높으니 양성이 나오면 실제 병일 가능성이 큽니다. 아무 증상 없는 사람 전체를 훑는 검진에서는 같은 검사의 양성이라도 거짓 양성의 비중이 훨씬 큽니다. 검진에서 양성이 나오면 다른 방법으로 다시 확인하는 절차가 따로 있는 이유입니다.
같은 원리가 병원 밖에도 있습니다.
1만 명 표에서 한 계산을 식으로 쓰면 이렇습니다. "양성인 사람 중 병인 사람" = 병이면서 양성인 사람 ÷ 양성인 사람 전체입니다.
길어 보이지만 표의 칸과 하나씩 맞춰 보면 단순합니다.
숫자를 넣어 봅니다.
1만 명을 곱하면 분자는 99명, 분모는 198명입니다. 표에서 센 것과 똑같습니다. 이 식이 베이즈 정리(Bayes' theorem) 입니다. 18세기 영국의 목사이자 수학자 토머스 베이즈의 이름을 땄고, 그의 글은 세상을 떠난 뒤인 1763년에 발표되었습니다. 식을 외울 필요는 없습니다. 1만 명 표를 그릴 수 있으면 언제든 다시 만들 수 있습니다.
베이즈 정리가 하는 일을 한 문장으로 말하면, '결과가 이렇게 나올 확률'을 '이 결과일 때 원인일 확률'로 뒤집는 것입니다. 이 뒤집기를 빼먹는 실수는 법정에서도 일어납니다. "범인이라면 현장 흔적과 일치할 확률이 높다"를 "흔적이 일치하니 범인일 확률이 높다"로 바꿔 말하는 것입니다. 일치하는 사람이 범인 말고도 많을 수 있다면, 즉 기저율을 따지지 않으면 두 문장은 전혀 다른 숫자입니다. 이 실수에는 검사(檢事)의 오류(prosecutor's fallacy) 라는 이름까지 붙어 있습니다. 여기서 검사는 의료 검사가 아니라 재판의 검사입니다.
하린이 묻습니다. "그럼 양성 나온 사람은 어떻게 해요? 50%면 아무것도 모르는 거잖아요." 강 선배가 답합니다. "아무것도 모르는 게 아니야. 1%였던 게 50%가 됐잖아. 한 번 더 확인하면 돼."
이 변화는 오즈(odds), 곧 "병 : 병 아님"의 비로 보면 깔끔합니다.
이것도 베이즈 정리입니다. 8-4절의 식과 같은 내용을 오즈로 쓴 것입니다. 증거 하나가 들어올 때마다 오즈에 그 증거의 가능도비를 곱하면 됩니다. 이 "믿음에 증거를 곱해 고친다"는 생각이 9교시의 주인공입니다.
아래 실습대는 같은 1만 명으로 이 두 단계를 차례로 보여 줍니다. 처음에는 1만 명 전체, 다음은 1차 검사에서 양성인 사람들만 오른쪽 상자로 모으고, 마지막에는 그중 재검사에서 음성이 나온 사람을 흐리게 지웁니다. 아래 표가 단계마다 남은 사람과 병일 비율을 보여 줍니다.
| 단계 | 남은 사람 | 병 있음 | 병 없음 | 병일 비율 |
|---|---|---|---|---|
| 1만 명 | 10,000 | 100 | 9,900 | 1% |
| 1차 검사 양성 | 198 | 99 | 99 | 50% |
| 재검사도 양성 | 99 | 98 | 1 | 99% |
두 검사의 오류가 서로 독립이라고 가정했습니다. 같은 이유로 또 틀리는 검사라면 재검사의 힘은 이보다 약합니다.
병 있는 사람 100명
양성 판정 198명
양성 중 실제 병
50%
양성 198명 중 실제 병 99명
1만 명 중 병 있는 사람은 100명(1%)입니다. '재생'을 누르면 먼저 모두를 한 번 검사합니다.
1만 명으로 세면 1차 양성 198명(병 99, 병 없음 99) 가운데 재검사에서도 양성인 사람은 병 있는 99명의 99%인 약 98명, 병 없는 99명의 1%인 약 1명입니다. 남은 99명 중 98명, 약 99%가 실제 병입니다. 유병률이 0.1%라면 두 번 양성이어도 약 91%로, 첫 양성 뒤의 약 9%에서 크게 올랐지만 99%에는 못 미칩니다.
여기에는 중요한 가정이 하나 있습니다. 두 검사의 오류가 서로 독립이어야 합니다. 어떤 사람이 몸의 특정한 성질 때문에 거짓 양성이 나왔다면, 같은 검사를 다시 해도 같은 이유로 또 양성이 나올 수 있습니다. 그러면 재검사는 거의 새 정보를 주지 못합니다. 확인 검사를 흔히 원리가 다른 검사로 하는 이유가 이것입니다.
이런 문장을 자주 만납니다. "정확도 99% 검사", "AI가 98% 정확도로 사기 거래를 잡아낸다", "이 장비는 위험물을 99% 탐지한다". 숫자 데스크가 고쳐 쓰는 방향은 늘 같습니다. "양성(경보) 100건 중 실제는 몇 건인가" 를 사람 수로 적고, 그 숫자가 검사받는 무리의 기저율에 따라 달라진다는 것을 함께 씁니다.
하린의 답 기사 문장은 이렇게 정리됐습니다. "이 검사를 받은 1만 명 중 양성은 약 198명이고, 그중 실제 환자는 약 99명이다. 양성이 나왔다는 것은 병일 가능성이 1%에서 50% 정도로 올라갔다는 뜻이며, 확정이 아니다. 정확한 판단은 확인 검사와 의료진의 설명을 거쳐야 한다."
팩트체크 노트
조건부 확률 P(A | B)는 B인 경우들만 모아 놓고 센 A의 비율이다. 조건과 결과를 뒤집으면 다른 숫자가 된다.
확률이 헷갈리면 1만 명으로 센다(자연 빈도). 병 있음·없음 × 양성·음성의 2 × 2 표 하나면 충분하다.
민감도·특이도는 검사의 성질, 양성 예측도는 검사받는 무리의 기저율까지 섞인 숫자다. 드문 병에서는 거짓 양성이 진짜 양성을 묻는다.
베이즈 정리: 검사 뒤의 오즈 = 검사 전의 오즈 × 가능도비. 독립적인 증거가 하나 더 오면 한 번 더 곱한다.
기사에서 이 숫자를 만나면 물어볼 것: 그 99%는 누구 중에서의 비율인가? 검사받는 사람 중 원래 몇 %가 해당하나? 양성 100명 중 진짜는 몇 명인가?
답 기사가 온라인에 올라가고 오후 늦게, 스포츠부 기자가 숫자 데스크 문을 두드립니다. "금요일 아침 1면 후보예요. '신인 타자, 첫 10타수 6안타. 타율 6할 괴물 신인'. 제목 괜찮죠?" 하린이 강 선배를 봅니다. 강 선배는 웃기만 합니다. "몇 타수 중에? 오늘 배운 걸 내일은 한 번이 아니라 타석마다 쓰게 될 거야." 9교시에서는 증거가 하나씩 쌓일 때마다 믿음을 고쳐 가는 베이즈 갱신을 다룹니다.
새 교시·새 강의 소식 받기
이 강의에 새 교시가 더해지거나 이어지는 강의가 열리면 이메일로 알려 드려요.
R
ReflexKR
눌러 보며 배우는 파이썬과 Reflex. 모든 예제는 Reflex 0.10.0에서 직접 실행해 확인했습니다.
ReflexKR은 배너 광고 없이 무료로 운영돼요. 도움이 되셨다면 커피 한 잔으로 응원해 주세요.
© 2026 ReflexKR · Since 2026 · CC BY-NC 4.0
질문과 답변
이 교시에서 궁금한 점을 남겨 주세요. 모든 언어 페이지의 질문이 함께 모입니다.