독립과 반복 시행
한 사건을 알아도 다른 사건의 확률이 바뀌지 않는 독립을 정의하고, 동시에 일어날 수 없는 배반과 구분합니다. 쌍마다 독립이어도 셋이 함께 독립이 아닐 수 있음을 확인하고, 같은 시행을 반복하는 이항확률, 전체 확률의 법칙과 Bayes 정리를 정확한 분수로 계산합니다.
동전의 첫 결과를 알면 둘째 결과의 확률이 바뀔까요? 공정한 동전이라면 바뀌지 않지만, 주머니에서 공을 꺼낸 뒤 되돌려 놓지 않으면 다음에 꺼낼 공의 확률은 바뀝니다. 이 글에서는 표본공간과 조건부확률의 조건부확률로 두 사건이 서로 영향을 주지 않는다는 것을 정의하고, 같은 시행을 여러 번 반복할 때의 확률과 결과를 보고 원인을 거꾸로 추정하는 방법을 다룹니다.
독립과 배반은 다르다
일 때 두 사건 A와 B를 독립(independent)이라고 합니다. 이면 이 식은 와 같으므로, B가 일어났다는 것을 알아도 A의 확률이 바뀌지 않는다는 뜻입니다. 앞 글의 두 주사위에서 "합이 7"과 "첫 주사위가 3"은 조건을 알아도 확률이 1/6 그대로였으므로 독립입니다.
독립을 배반과 헷갈리기 쉽지만 둘은 거의 반대입니다. 배반은 두 사건이 함께 일어날 수 없다는 뜻이라 입니다. 두 사건의 확률이 모두 양수이면 는 양수이므로, 확률이 양수인 두 배반 사건은 독립일 수 없습니다. 주사위의 "짝수"와 "홀수"는 배반이고, 짝수가 나왔다는 것을 알면 홀수일 확률이 0이 되므로 독립이 아닙니다.
사건이 셋 이상이면 독립의 조건이 더 많아집니다. 세 사건 A, B, 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로 같은 시행을 서로 독립으로 n번 반복할 때, 정확히 k번 성공할 확률은 다음과 같습니다.
성공할 k번의 자리를 정한 결과 하나의 확률은 독립이므로 곱해서 이고, 그런 자리를 고르는 방법이 순열과 조합의 가지라서 곱합니다. 공정한 동전을 3번 던져 앞면이 정확히 2번 나오는 경우는 HHT, HTH, THH의 세 가지이므로 이고, 코드의 셋째 줄에서 공식의 값과 8가지 결과를 직접 센 값이 같습니다. 앞면이 적어도 한 번 나올 확률은 여사건을 써서 입니다.
이 공식은 시행이 독립이고 성공 확률이 매번 같을 때만 쓸 수 있습니다. 거꾸로, 독립인 시행에서는 앞의 결과가 다음 결과에 영향을 주지 않습니다. 뒷면이 여러 번 연달아 나왔으니 이번에는 앞면이 나올 차례라는 생각은 독립 모델에서 맞지 않으며, 이런 착각을 도박사의 오류(gambler's fallacy)라고 부릅니다.
전체 확률의 법칙과 Bayes 정리
사건 이 서로 겹치지 않고 합쳐서 표본공간 전체가 되며 각 확률이 양수라고 합시다. 그러면 어떤 사건 A도 이 조각들로 나누어 셀 수 있으므로 다음이 성립하는데, 이것을 전체 확률의 법칙(law of total probability)이라고 합니다.
결과 A를 보고 그 원인이 였을 확률을 거꾸로 구할 수도 있습니다. 조건부확률의 정의를 두 방향으로 쓰면 이고, 분모에 전체 확률의 법칙을 넣은 이 식을 Bayes 정리(Bayes' theorem)라고 합니다. 이어야 합니다.
가상의 검사로 계산해 보겠습니다. 어떤 질병이 100명 가운데 1명에게 있고, 검사는 환자의 99%를 양성으로 찾아내지만 건강한 사람의 5%도 양성으로 잘못 판정한다고 합시다. 코드의 마지막 줄처럼 양성이 나올 확률은 , 곧 약 5.9%이고, 양성이 나온 사람이 실제로 환자일 확률은 1/6, 약 16.7%에 불과합니다. 검사가 정확해 보여도 병이 드물면 양성 가운데 건강한 사람이 훨씬 많기 때문입니다. "환자가 양성일 확률" 99%와 "양성이 환자일 확률" 16.7%는 조건과 사건을 맞바꾼 서로 다른 값입니다.
정리
- 이면 독립이고, 일 때 이것은 B를 알아도 A의 확률이 바뀌지 않는다는 뜻입니다.
- 확률이 양수인 두 배반 사건은 독립일 수 없으며, 세 사건은 쌍마다 독립이어도 셋이 함께 독립이 아닐 수 있습니다.
- 되돌려 놓지 않고 꺼내면 다음 확률이 바뀌므로 곱셈 규칙 를 씁니다.
- 성공 확률 p인 독립 시행 n번에서 정확히 k번 성공할 확률은 입니다.
- 전체 확률의 법칙은 원인별로 나누어 결과의 확률을 구하고, Bayes 정리는 결과를 보고 원인의 확률을 거꾸로 구합니다.
연습 문제
1. 한 번 성공할 확률
성공 확률이 1/3인 독립 시행을 3번 할 때, 정확히 1번 성공할 확률을 구하세요.
해설 보기
성공할 한 번의 자리를 고르는 방법이 3가지이고, 자리를 정한 결과 하나의 확률은 입니다. 그래서 답은 입니다. 성공 확률 1/3을 세 번 더해 1이라고 하면, 실패해야 할 나머지 두 번의 확률을 빠뜨리고 여러 번 성공한 경우를 겹쳐 세게 됩니다. 0번부터 3번까지 성공할 확률을 모두 더하면 1이 되는지로 검산할 수 있습니다.
2. 독립인가, 배반인가
, , 이면 두 사건은 독립인가요? 배반인가요?
해설 보기
이 과 다르므로 독립이 아닙니다. 배반인지는 이 정보만으로 단정할 수 없습니다. 앞 글에서 본 것처럼 확률이 0인 결과를 허용하는 표본공간에서는 비어 있지 않은 교집합의 확률도 0일 수 있기 때문입니다. 모든 결과의 확률이 양수인 표본공간이라면 교집합이 비어 있어야 하므로 배반입니다.
3. 상자를 거꾸로 추정하기
상자 1에는 빨간 공 2개와 파란 공 1개, 상자 2에는 빨간 공 1개와 파란 공 2개가 있습니다. 상자를 같은 확률로 골라 공 하나를 꺼냈더니 빨간 공이었습니다. 상자 1을 골랐을 확률은 얼마인가요?
해설 보기
전체 확률의 법칙으로 빨간 공이 나올 확률은 입니다. Bayes 정리로 상자 1이었을 확률은 입니다. 빨간 공을 보기 전에는 1/2이던 상자 1의 확률이, 빨간 공이 더 많은 상자라는 정보 때문에 2/3로 커졌습니다. 이 예에서는 "상자 1에서 빨강이 나올 확률"도 2/3이라 값이 같지만, 두 값은 조건과 사건을 맞바꾼 서로 다른 확률입니다.
확률을 곱하기 전에 두 사건이 독립인지, 아니면 조건부확률을 곱해야 하는지부터 적어 보세요. 다음 글 확률변수, 기댓값과 분산에서는 성공 횟수 같은 수치를 결과에 대응시키고, 그 평균과 흩어진 정도를 계산합니다.