본문 바로가기

독립과 반복 시행

한 사건을 알아도 다른 사건의 확률이 바뀌지 않는 독립을 정의하고, 동시에 일어날 수 없는 배반과 구분합니다. 쌍마다 독립이어도 셋이 함께 독립이 아닐 수 있음을 확인하고, 같은 시행을 반복하는 이항확률, 전체 확률의 법칙과 Bayes 정리를 정확한 분수로 계산합니다.

동전의 첫 결과를 알면 둘째 결과의 확률이 바뀔까요? 공정한 동전이라면 바뀌지 않지만, 주머니에서 공을 꺼낸 뒤 되돌려 놓지 않으면 다음에 꺼낼 공의 확률은 바뀝니다. 이 글에서는 표본공간과 조건부확률의 조건부확률로 두 사건이 서로 영향을 주지 않는다는 것을 정의하고, 같은 시행을 여러 번 반복할 때의 확률과 결과를 보고 원인을 거꾸로 추정하는 방법을 다룹니다.

독립과 배반은 다르다

P(A∩B)=P(A)P(B)P(A\cap B)=P(A)P(B)일 때 두 사건 A와 B를 독립(independent)이라고 합니다. P(B)>0P(B)>0이면 이 식은 P(A∣B)=P(A)P(A\mid B)=P(A)와 같으므로, B가 일어났다는 것을 알아도 A의 확률이 바뀌지 않는다는 뜻입니다. 앞 글의 두 주사위에서 "합이 7"과 "첫 주사위가 3"은 조건을 알아도 확률이 1/6 그대로였으므로 독립입니다.

독립을 배반과 헷갈리기 쉽지만 둘은 거의 반대입니다. 배반은 두 사건이 함께 일어날 수 없다는 뜻이라 P(A∩B)=0P(A\cap B)=0입니다. 두 사건의 확률이 모두 양수이면 P(A)P(B)P(A)P(B)는 양수이므로, 확률이 양수인 두 배반 사건은 독립일 수 없습니다. 주사위의 "짝수"와 "홀수"는 배반이고, 짝수가 나왔다는 것을 알면 홀수일 확률이 0이 되므로 독립이 아닙니다.

사건이 셋 이상이면 독립의 조건이 더 많아집니다. 세 사건 A, B, C가 독립이려면 두 사건씩의 곱 조건 세 개에 더해 P(A∩B∩C)=P(A)P(B)P(C)P(A\cap B\cap C)=P(A)P(B)P(C)도 성립해야 합니다. 쌍마다 독립이라고 해서 이 마지막 조건이 저절로 따라오지는 않습니다. 동전을 두 번 던질 때 A를 "첫째가 앞면", B를 "둘째가 앞면", C를 "두 결과가 같다"로 두고 확인해 보겠습니다.

from fractions import Fraction
from itertools import product
from math import comb

omega = set(product("HT", repeat=2))
A = {w for w in omega if w[0] == "H"}
B = {w for w in omega if w[1] == "H"}
C = {w for w in omega if w[0] == w[1]}


def P(event):
    return Fraction(len(event), len(omega))


print([P(e & f) == P(e) * P(f) for e, f in ((A, B), (A, C), (B, C))])
print(P(A & B & C), P(A) * P(B) * P(C))


def binomial(n, k, p):
    return comb(n, k) * p ** k * (1 - p) ** (n - k)


flips = list(product("HT", repeat=3))
print(binomial(3, 2, Fraction(1, 2)), Fraction(sum(1 for f in flips if f.count("H") == 2), len(flips)))

prior = Fraction(1, 100)
sensitivity = Fraction(99, 100)
false_positive = Fraction(5, 100)
positive = prior * sensitivity + (1 - prior) * false_positive
print(positive, prior * sensitivity / positive)
[True, True, True]
1/4 1/8
3/8 3/8
297/5000 1/6

첫 줄은 세 쌍이 모두 독립이라는 결과입니다. 예를 들어 첫째가 앞면이라는 것을 알아도 두 결과가 같을 확률은 1/2 그대로입니다. 하지만 둘째 줄에서 세 사건이 함께 일어날 확률은 1/4인데 세 확률의 곱은 1/8이라 다릅니다. 첫째와 둘째가 모두 앞면이면 두 결과는 저절로 같으므로, A와 B를 함께 알면 C가 확실해지기 때문입니다. 그래서 세 사건은 쌍마다 독립이지만 셋이 함께 독립이지는 않습니다. 코드의 나머지 두 부분은 뒤의 절에서 설명합니다.

되돌려 놓는가

빨간 공 2개와 파란 공 1개가 든 주머니에서 공을 두 번 꺼낼 때, 두 번 모두 빨간 공일 확률은 꺼낸 공을 되돌려 놓는지에 달려 있습니다. 되돌려 놓지 않으면 첫 번째가 빨강일 확률 2/3에, 빨강 1개와 파랑 1개가 남은 상태에서 다시 빨강일 확률 1/2을 곱해 P(A∩B)=P(A)P(B∣A)=1/3P(A\cap B)=P(A)P(B\mid A)=1/3입니다. 되돌려 놓으면 두 번째도 처음과 같은 상태에서 꺼내므로 두 시행이 독립이고 (2/3)2=4/9(2/3)^2=4/9입니다. 두 번째 확률의 분자와 분모가 첫 결과에 따라 바뀌는지를 보면 독립인지 알 수 있습니다.

이항확률

성공 확률이 p로 같은 시행을 서로 독립으로 n번 반복할 때, 정확히 k번 성공할 확률은 다음과 같습니다.

(nk)pk(1−p)n−k\binom nk p^k(1-p)^{n-k}

성공할 k번의 자리를 정한 결과 하나의 확률은 독립이므로 곱해서 pk(1−p)n−kp^k(1-p)^{n-k}이고, 그런 자리를 고르는 방법이 순열과 조합의 (nk)\binom nk가지라서 곱합니다. 공정한 동전을 3번 던져 앞면이 정확히 2번 나오는 경우는 HHT, HTH, THH의 세 가지이므로 3⋅(1/2)3=3/83\cdot(1/2)^3=3/8이고, 코드의 셋째 줄에서 공식의 값과 8가지 결과를 직접 센 값이 같습니다. 앞면이 적어도 한 번 나올 확률은 여사건을 써서 1−(1/2)3=7/81-(1/2)^3=7/8입니다.

이 공식은 시행이 독립이고 성공 확률이 매번 같을 때만 쓸 수 있습니다. 거꾸로, 독립인 시행에서는 앞의 결과가 다음 결과에 영향을 주지 않습니다. 뒷면이 여러 번 연달아 나왔으니 이번에는 앞면이 나올 차례라는 생각은 독립 모델에서 맞지 않으며, 이런 착각을 도박사의 오류(gambler's fallacy)라고 부릅니다.

전체 확률의 법칙과 Bayes 정리

사건 B1,…,BnB_1,\ldots,B_n이 서로 겹치지 않고 합쳐서 표본공간 전체가 되며 각 확률이 양수라고 합시다. 그러면 어떤 사건 A도 이 조각들로 나누어 셀 수 있으므로 다음이 성립하는데, 이것을 전체 확률의 법칙(law of total probability)이라고 합니다.

P(A)=∑i=1nP(Bi) P(A∣Bi)P(A)=\sum_{i=1}^{n}P(B_i)\,P(A\mid B_i)

결과 A를 보고 그 원인이 BiB_i였을 확률을 거꾸로 구할 수도 있습니다. 조건부확률의 정의를 두 방향으로 쓰면 P(Bi∣A)=P(Bi)P(A∣Bi)/P(A)P(B_i\mid A)=P(B_i)P(A\mid B_i)/P(A)이고, 분모에 전체 확률의 법칙을 넣은 이 식을 Bayes 정리(Bayes' theorem)라고 합니다. P(A)>0P(A)>0이어야 합니다.

가상의 검사로 계산해 보겠습니다. 어떤 질병이 100명 가운데 1명에게 있고, 검사는 환자의 99%를 양성으로 찾아내지만 건강한 사람의 5%도 양성으로 잘못 판정한다고 합시다. 코드의 마지막 줄처럼 양성이 나올 확률은 1100⋅99100+99100⋅5100=2975000\frac{1}{100}\cdot\frac{99}{100}+\frac{99}{100}\cdot\frac{5}{100}=\frac{297}{5000}, 곧 약 5.9%이고, 양성이 나온 사람이 실제로 환자일 확률은 1/6, 약 16.7%에 불과합니다. 검사가 정확해 보여도 병이 드물면 양성 가운데 건강한 사람이 훨씬 많기 때문입니다. "환자가 양성일 확률" 99%와 "양성이 환자일 확률" 16.7%는 조건과 사건을 맞바꾼 서로 다른 값입니다.

정리

  • P(A∩B)=P(A)P(B)P(A\cap B)=P(A)P(B)이면 독립이고, P(B)>0P(B)>0일 때 이것은 B를 알아도 A의 확률이 바뀌지 않는다는 뜻입니다.
  • 확률이 양수인 두 배반 사건은 독립일 수 없으며, 세 사건은 쌍마다 독립이어도 셋이 함께 독립이 아닐 수 있습니다.
  • 되돌려 놓지 않고 꺼내면 다음 확률이 바뀌므로 곱셈 규칙 P(A∩B)=P(A)P(B∣A)P(A\cap B)=P(A)P(B\mid A)를 씁니다.
  • 성공 확률 p인 독립 시행 n번에서 정확히 k번 성공할 확률은 (nk)pk(1−p)n−k\binom nk p^k(1-p)^{n-k}입니다.
  • 전체 확률의 법칙은 원인별로 나누어 결과의 확률을 구하고, Bayes 정리는 결과를 보고 원인의 확률을 거꾸로 구합니다.

연습 문제

1. 한 번 성공할 확률

성공 확률이 1/3인 독립 시행을 3번 할 때, 정확히 1번 성공할 확률을 구하세요.

해설 보기

성공할 한 번의 자리를 고르는 방법이 3가지이고, 자리를 정한 결과 하나의 확률은 (1/3)(2/3)2=4/27(1/3)(2/3)^2=4/27입니다. 그래서 답은 3⋅4/27=4/93\cdot4/27=4/9입니다. 성공 확률 1/3을 세 번 더해 1이라고 하면, 실패해야 할 나머지 두 번의 확률을 빠뜨리고 여러 번 성공한 경우를 겹쳐 세게 됩니다. 0번부터 3번까지 성공할 확률을 모두 더하면 1이 되는지로 검산할 수 있습니다.

2. 독립인가, 배반인가

P(A)=1/2P(A)=1/2, P(B)=1/3P(B)=1/3, P(A∩B)=0P(A\cap B)=0이면 두 사건은 독립인가요? 배반인가요?

해설 보기

P(A)P(B)=1/6P(A)P(B)=1/6이 P(A∩B)=0P(A\cap B)=0과 다르므로 독립이 아닙니다. 배반인지는 이 정보만으로 단정할 수 없습니다. 앞 글에서 본 것처럼 확률이 0인 결과를 허용하는 표본공간에서는 비어 있지 않은 교집합의 확률도 0일 수 있기 때문입니다. 모든 결과의 확률이 양수인 표본공간이라면 교집합이 비어 있어야 하므로 배반입니다.

3. 상자를 거꾸로 추정하기

상자 1에는 빨간 공 2개와 파란 공 1개, 상자 2에는 빨간 공 1개와 파란 공 2개가 있습니다. 상자를 같은 확률로 골라 공 하나를 꺼냈더니 빨간 공이었습니다. 상자 1을 골랐을 확률은 얼마인가요?

해설 보기

전체 확률의 법칙으로 빨간 공이 나올 확률은 12⋅23+12⋅13=12\frac12\cdot\frac23+\frac12\cdot\frac13=\frac12입니다. Bayes 정리로 상자 1이었을 확률은 (12⋅23)/12=23\left(\frac12\cdot\frac23\right)\Big/\frac12=\frac23입니다. 빨간 공을 보기 전에는 1/2이던 상자 1의 확률이, 빨간 공이 더 많은 상자라는 정보 때문에 2/3로 커졌습니다. 이 예에서는 "상자 1에서 빨강이 나올 확률"도 2/3이라 값이 같지만, 두 값은 조건과 사건을 맞바꾼 서로 다른 확률입니다.

확률을 곱하기 전에 두 사건이 독립인지, 아니면 조건부확률을 곱해야 하는지부터 적어 보세요. 다음 글 확률변수, 기댓값과 분산에서는 성공 횟수 같은 수치를 결과에 대응시키고, 그 평균과 흩어진 정도를 계산합니다.