확률의 기초: 사건, 조건부 확률, 독립

표본 공간과 사건, 확률의 기본 규칙, 여사건과 덧셈 규칙을 익히고, 조건부 확률과 독립을 정확히 구별해요. 양성 판정을 받아도 실제 병일 확률이 17%밖에 안 되는 이유와 생일 문제를 계산과 시뮬레이션으로 확인하며, 직관이 확률에서 자주 틀리는 지점을 짚어요.

초급강의 1 / 8약 7분

AI는 확신하지 않아요. "이 사진은 고양이일 확률 97%", "다음 단어는 '날씨'일 확률 23%"처럼 언제나 확률로 말해요. 확률은 불확실한 세상을 숫자로 다루는 언어예요. 그런데 확률은 사람의 직관이 유난히 자주 틀리는 분야이기도 해요. 이번 강의에서는 확률의 기본 규칙을 익히고, 직관이 함정에 빠지는 대표적인 장면들을 계산으로 바로잡아요.

표본 공간과 사건

  • 시행: 결과가 우연에 따라 정해지는 실험. 주사위 던지기, 동전 던지기.
  • 표본 공간 Ω\Omega: 나올 수 있는 모든 결과의 집합. 주사위면 {1,2,3,4,5,6}\{1, 2, 3, 4, 5, 6\}.
  • 사건: 표본 공간의 부분집합. "짝수가 나온다" ={2,4,6}= \{2, 4, 6\}.

수학 기초 트랙의 집합이 그대로 쓰여요. 사건은 집합이고, 사건끼리의 "그리고"는 교집합, "또는"은 합집합이에요.

같은 정도로 일어날 때

모든 결과가 똑같이 일어날 법하면 확률은 세기 문제가 돼요.

P(A)=∣A∣∣Ω∣=A에 속하는 결과 수전체 결과 수P(A) = \frac{|A|}{|\Omega|} = \frac{\text{A에 속하는 결과 수}}{\text{전체 결과 수}}

주사위 두 개의 합이 7일 확률은, 전체 6×6=366 \times 6 = 36가지 중 (1,6),(2,5),(3,4),(4,3),(5,2),(6,1)(1,6), (2,5), (3,4), (4,3), (5,2), (6,1)의 6가지라서 6/36=1/66/36 = 1/6이에요. 조합론 강의의 세는 기술이 여기서 쓰여요.

확률의 기본 규칙

어떤 확률이든 지켜야 하는 세 가지 규칙(콜모고로프의 공리)이 있어요.

  1. 모든 사건의 확률은 0 이상이다.
  2. 표본 공간 전체의 확률은 1이다.
  3. 동시에 일어날 수 없는 사건들의 "또는"의 확률은 각 확률의 합이다.

나머지 모든 성질이 여기서 나와요.

여사건: 반대로 세기

P(Ac)=1−P(A)P(A^c) = 1 - P(A)

"적어도 하나"가 들어간 문제는 반대(하나도 없음)를 구해서 1에서 빼는 게 훨씬 쉬워요. 이 기술은 아래 생일 문제에서 바로 써요.

덧셈 규칙

두 사건이 겹칠 수 있으면 겹친 부분을 한 번 빼요. 집합 강의의 포함과 배제 원리 그대로예요.

P(A∪B)=P(A)+P(B)−P(A∩B)P(A \cup B) = P(A) + P(B) - P(A \cap B)

조건부 확률

"B가 일어났다는 걸 알 때, A가 일어날 확률"을 조건부 확률이라고 해요.

P(A∣B)=P(A∩B)P(B)P(A \mid B) = \frac{P(A \cap B)}{P(B)}

새로운 정보가 들어오면 표본 공간이 B로 좁아진다고 생각하면 돼요. 주사위가 짝수라는 걸 알 때 4 이상일 확률은, 표본 공간이 {2,4,6}\{2, 4, 6\}으로 줄고 그중 {4,6}\{4, 6\}이니 2/32/3이에요.

곱셈 규칙

정의를 뒤집으면 두 사건이 함께 일어날 확률이 나와요.

P(A∩B)=P(B) P(A∣B)=P(A) P(B∣A)P(A \cap B) = P(B)\,P(A \mid B) = P(A)\,P(B \mid A)

방향이 중요하다

P(A∣B)P(A \mid B)와 P(B∣A)P(B \mid A)는 전혀 다른 값이에요. "비가 올 때 우산을 쓸 확률"은 높지만, "우산을 쓴 사람을 봤을 때 비가 올 확률"은 양산일 수도 있으니 다르죠. 이 둘을 혼동하는 것이 확률에서 가장 흔하고 위험한 실수예요. 법정에서 이 혼동이 억울한 유죄 판결로 이어진 사례도 있어서, "검사의 오류"라는 이름까지 붙었어요.

양성 판정의 함정

어떤 병의 유병률이 1%예요. 검사는 환자의 99%를 양성으로 잡아내지만(민감도), 건강한 사람도 5%는 잘못 양성이 나와요(위양성). 검사에서 양성이 나왔어요. 실제로 병이 있을 확률은?

많은 사람이 "99%쯤?"이라고 답해요. 계산해 볼게요. 1만 명이 검사를 받았다고 생각하면 쉬워요.

양성음성합계
환자 (1%)991100
건강한 사람 (99%)4959,4059,900
합계5949,40610,000

양성 594명 중 진짜 환자는 99명뿐이에요.

P(병∣양성)=99594≈0.167P(\text{병} \mid \text{양성}) = \frac{99}{594} \approx 0.167

**약 17%**예요. 검사가 정확한데도 이렇게 낮은 이유는 병 자체가 드물어서예요. 건강한 사람이 압도적으로 많으니, 그중 5%만 잘못 나와도 진짜 환자 수보다 훨씬 많아져요. 이것을 기저율 무시라고 해요. 기저율(원래의 비율)을 무시하고 검사의 정확도만 보면 크게 틀려요.

같은 검사를 한 번 더 해서 또 양성이면, 이번에는 "양성이 한 번 나온 사람들"(환자일 확률 17%)이 출발점이 돼요. 계산하면 약 80%로 올라가요. 증거가 쌓일수록 믿음이 갱신되는 이 과정이 베이즈 정리이고, 이 트랙의 베이즈 추론 강의에서 제대로 다뤄요.

AI와의 연결 사기 거래 탐지, 질병 진단, 스팸 필터처럼 "드문 것을 찾는" AI는 모두 이 함정을 안고 있어요. 정확도 99%인 사기 탐지 모델도 사기가 1만 건 중 1건이라면 경보의 대부분이 헛경보일 수 있어요. 머신러닝 트랙의 평가 강의에서 정확도 대신 정밀도와 재현율을 따지는 이유예요.

독립

한 사건이 일어났다는 사실이 다른 사건의 확률을 전혀 바꾸지 않으면 두 사건은 독립이에요.

P(A∣B)=P(A)⟺P(A∩B)=P(A) P(B)P(A \mid B) = P(A) \quad \Longleftrightarrow \quad P(A \cap B) = P(A)\,P(B)

동전을 두 번 던지면 첫 결과가 둘째 결과에 영향을 주지 않으니 독립이에요. 그래서 둘 다 앞면일 확률은 12×12=14\frac{1}{2} \times \frac{1}{2} = \frac{1}{4}이에요.

도박사의 오류

룰렛에서 빨강이 다섯 번 연속 나왔어요. "이번엔 검정이 나올 차례야!" 아니에요. 각 회차가 독립이면 룰렛은 과거를 기억하지 않아요. 다음에도 확률은 그대로예요. 연속된 결과에서 "균형이 맞춰질 것"을 기대하는 착각을 도박사의 오류라고 해요.

독립과 배반은 다르다

헷갈리기 쉬운 두 개념이에요.

  • 배반: 동시에 일어날 수 없음. P(A∩B)=0P(A \cap B) = 0. (주사위가 1이면서 6일 수는 없음)
  • 독립: 서로 영향을 주지 않음. P(A∩B)=P(A)P(B)P(A \cap B) = P(A)P(B).

확률이 0이 아닌 두 사건이 배반이면 오히려 강하게 의존해요. A가 일어났다는 걸 알면 B는 절대 안 일어난다는 걸 알게 되니까요.

생일 문제

한 방에 몇 명이 모이면, 생일이 같은 사람이 있을 확률이 50%를 넘을까요? 많은 사람이 183명(365의 절반) 근처를 떠올려요. 정답은 23명이에요.

"적어도 한 쌍이 같다"의 반대인 "모두 다르다"를 구해요. 첫 사람은 아무 날, 둘째는 첫 사람과 다른 364일, 셋째는 363일...

P(모두 다름)=365365×364365×⋯×365−n+1365P(\text{모두 다름}) = \frac{365}{365} \times \frac{364}{365} \times \cdots \times \frac{365 - n + 1}{365}
def birthday(n):
    q = 1.0
    for k in range(n):
        q *= (365 - k) / 365
    return 1 - q

for n in (10, 23, 30, 50, 70):
    print(n, round(birthday(n), 4))
인원같은 생일이 있을 확률
1011.7%
2350.7%
3070.6%
5097.0%
7099.9%

직관이 틀리는 이유는 "나와 생일이 같은 사람"을 떠올리기 때문이에요. 실제로는 모든 쌍을 봐야 해요. 23명이면 쌍이 (232)=253\binom{23}{2} = 253개나 돼요.

시뮬레이션으로 확인하기

수식이 맞는지 의심스러우면 컴퓨터로 직접 수만 번 실험해 보면 돼요.

import numpy as np

rng = np.random.default_rng(0)
trials = rng.integers(0, 365, size=(20000, 23))     # 23명의 생일을 2만 번
has_dup = [len(set(row)) < 23 for row in trials]
print(np.mean(has_dup))    # 약 0.498

계산값 0.507 근처가 나와요. 확률 계산이 헷갈릴 때는 시뮬레이션으로 확인하세요. 이건 전문가들도 쓰는 강력한 습관이에요.

해시 충돌과 생일 문제

생일 문제는 컴퓨터 보안에서 실제로 쓰여요. 출력이 NN가지인 해시 함수에서 충돌(같은 출력)이 50% 확률로 생기려면 입력이 약 N\sqrt{N}개면 충분해요. 그래서 128비트 해시의 안전성은 21282^{128}이 아니라 2642^{64} 수준으로 봐요. 이걸 이용한 공격을 생일 공격이라고 불러요.

연습 문제

  1. 주사위 두 개를 던져 합이 10 이상일 확률은?
  2. 동전 다섯 번을 던져 적어도 한 번 앞면이 나올 확률은?
  3. 카드 52장에서 한 장을 뽑았더니 하트예요. 그 카드가 그림 카드(J, Q, K)일 확률은?
  4. 유병률 0.1%, 민감도 99%, 위양성 1%인 검사에서 양성이 나왔을 때 실제 환자일 확률은? (10만 명 표를 그려 보세요)
  5. 두 사건 A, B가 배반이고 P(A)=0.3P(A) = 0.3, P(B)=0.4P(B) = 0.4예요. A와 B는 독립인가요?

정답

  1. 합이 10, 11, 12인 경우는 3+2+1=63 + 2 + 1 = 6가지라 6/36=1/66/36 = 1/6
  2. 반대(모두 뒷면)가 (1/2)5=1/32(1/2)^5 = 1/32이니 31/32≈0.96931/32 \approx 0.969
  3. 하트 13장 중 그림 카드 3장이라 3/133/13
  4. 10만 명으로 생각하면 환자 100명 중 양성 99명, 건강한 99,900명 중 양성 999명이라 99/(99+999)≈9%99 / (99 + 999) \approx 9\%예요.
  5. 아니에요. 배반이라 P(A∩B)=0P(A \cap B) = 0인데 P(A)P(B)=0.12P(A)P(B) = 0.12라서 같지 않아요.

다음 강의

다음 강의에서는 결과를 숫자로 바꾸는 확률 변수와, 우연이 따르는 대표적인 모양인 확률 분포들(이항, 포아송, 정규, 지수)을 배워요. 세상의 많은 불확실성이 몇 가지 분포로 놀랄 만큼 잘 설명돼요.