122강까지의 확률은 아무 정보도 없는 상태의 확률이었습니다. 주사위를 던지기 전에 합이 일 확률은 입니다.
그런데 실제 상황에서는 정보가 조금씩 들어옵니다. 첫 주사위가 이미 굴러 멈췄고 짝수라는 것을 봤습니다. 이제 합이 일 확률은 얼마입니까.
정의는 한 줄입니다.
그런데 이 한 줄에서 확률론의 절반이 나옵니다. 곱셈법칙, 전확률의 법칙, 베이즈 정리, 그리고 124강의 독립까지 전부 이 정의의 변형입니다.
| 식 | 이름 | 어떻게 얻는가 |
|---|---|---|
| 곱셈법칙 | 양변에 를 곱합니다 | |
| 전확률의 법칙 | 분할로 쪼개고 곱셈법칙 | |
| P(B\mid A)=\dfrac{P(B)P(A\mid B)} | 베이즈 정리 | 두 방향의 곱셈법칙을 잇습니다 |
| 독립 | 정보가 확률을 바꾸지 않습니다 |
그리고 이것이 기계학습의 언어이기도 합니다. 분류 모형이 하는 일은 를 추정하는 것이고, 언어모형이 하는 일은 을 추정하는 것입니다.
문제. 주사위 두 개에서 는 합이 , 는 첫 눈이 짝수, 는 합이 이상입니다.
(1) 를 두 가지 방법으로 계산해 비교하세요.
(2) 와 도 구하세요.
(3) 정보가 확률에 미치는 효과를 분류하세요.
생각의 실마리. "가 일어났다"는 것을 알면 밖의 결과는 이제 불가능합니다. 121강의 표본공간이 에서 로 줄어든 셈입니다.
풀이. (1)(2) 검산 결과입니다.
| 조건부 | (교집합) | (조건) | 비 | 축소공간에서 직접 |
|---|---|---|---|---|
정의로 계산한 값과 축소공간에서 직접 센 값이 완전히 같습니다.
(3) 조건을 걸기 전후를 비교하면 세 가지 효과가 갈립니다.
| 비교 | 조건 없음 | 조건 있음 | 정보의 효과 |
|---|---|---|---|
| 를 로 조건 | 그대로입니다 | ||
| 를 로 조건 | 올라갑니다 | ||
| 를 로 조건 | 이 됩니다 |
첫 줄이 흥미롭습니다. 첫 눈이 짝수라는 것을 알아도 합이 일 확률이 그대로 입니다. 첫 눈이 무엇이든 둘째 눈이 그에 맞는 하나이면 되므로 언제나 이기 때문입니다. 정보가 아무 쓸모가 없는 경우이며, 124강의 독립이 정확히 이 상황입니다.
셋째 줄은 배반입니다. 합이 이상인데 합이 일 수는 없습니다.
이 문제에서 배우는 것: 조건부확률의 정의.
조건부확률. 일 때
이며 "가 일어났다는 조건 아래 가 일어날 확률"이라 읽습니다.
분모가 인 이유가 정규화입니다. 안에서만 보기로 했으니 전체가 새로운 확률 이 되어야 하고, 그러려면 모든 값을 로 나눠야 합니다.
등확률 표본공간에서는 세기로 환원됩니다.
가 약분되어 사라지고 분모가 로 바뀝니다. 이것이 "표본공간이 줄어든다"는 말의 정확한 뜻입니다.
주의. 와 는 전혀 다른 수입니다.
표에서 인데 입니다. 분자는 같고 분모가 다르기 때문입니다. 심화 1에서 이 혼동이 낳는 오류를 다룹니다.
바로 확인 1.
확인 1-1. 조건부확률의 정의를 쓰세요.
답. 이며 이어야 합니다.
확인 1-2. 등확률 표본공간에서 조건부확률을 세기로 쓰세요.
답. 입니다.
확인 1-3. 이면 무엇을 뜻합니까?
답. 가 에 대해 아무 정보도 주지 않는다는 뜻입니다.
문제. 항아리에 빨강 공 개와 파랑 공 개가 있습니다. 되돌려 넣지 않고 연달아 두 개를 꺼냅니다.
(1) 네 가지 순서의 확률을 각각 구하세요.
(2) 합이 인지 확인하세요.
(3) 두 번째가 빨강일 확률을 구하고 첫 번째와 비교하세요.
생각의 실마리. 두 번째를 뽑을 때의 확률은 첫 번째가 무엇이었느냐에 달려 있습니다. 조건부확률이 자연스럽게 등장하는 상황입니다.
풀이. (1)(2) 곱셈법칙으로 계산한 검산 결과입니다.
| 순서 | 곱셈법칙 계산 | 확률 |
|---|---|---|
| 빨강, 빨강 | ||
| 빨강, 파랑 | ||
| 파랑, 빨강 | ||
| 파랑, 파랑 |
**네 경우의 합이 정확히 **입니다.
(3) 두 번째가 빨강인 경우는 첫째와 둘째 줄이 아니라 첫째와 셋째 줄이므로
이고 이것은 으로 첫 번째가 빨강일 확률과 정확히 같습니다.
이 문제에서 배우는 것: 곱셈법칙.
곱셈법칙. 조건부확률의 정의를 이항하면
이며 어느 쪽을 조건으로 삼아도 됩니다.
연쇄로 늘릴 수 있습니다.
이 사슬 형태가 언어모형의 뼈대입니다. 심화 2에서 다룹니다.
교환가능성. 두 번째로 뽑은 공이 빨강일 확률이 첫 번째와 같다는 것은 우연이 아닙니다. 공에 번호를 붙여 뽑는 순서를 정한다고 생각하면, 번째 자리에 어떤 공이 오든 대칭이기 때문입니다.
직관적으로 확인하는 방법이 있습니다. 공 개를 무작위로 한 줄로 세우고 앞에서부터 본다고 하면, 두 번째 자리에 빨강이 올 확률은 자리와 무관하게 입니다. 어느 자리든 같습니다.
이 성질이 실무에서 유용합니다. 카드를 나눠 줄 때 먼저 받든 나중에 받든 특정 카드를 받을 확률이 같으며, 제비뽑기 순서가 유불리를 만들지 않는다는 것의 근거입니다.
주의할 것은 확률이 같다고 독립은 아니라는 점입니다. 첫 번째가 빨강이었다는 것을 알면 두 번째가 빨강일 확률은 로 바뀝니다. 정보를 얻기 전의 확률만 같습니다.
바로 확인 2.
확인 2-1. 곱셈법칙을 두 방향으로 쓰세요.
답. 입니다.
확인 2-2. 비복원 추출에서 두 번째가 빨강일 확률과 첫 번째의 관계를 쓰세요.
답. 같으며 자리에 대한 대칭성 때문입니다.
확인 2-3. 그렇다면 두 추출이 독립입니까?
답. 독립이 아닙니다. 첫 결과를 알면 두 번째 확률이 바뀝니다.
문제. 부품을 공장 세 곳에서 받습니다. 점유율은 , , 이고 불량률은 , , 입니다.
(1) 전체 불량률을 구하세요.
(2) 불량률의 단순평균과 비교하세요.
(3) 불량품 하나를 집었을 때 각 공장에서 왔을 확률을 구하세요.
생각의 실마리. 121강 문제 3의 분할이 여기서 주역이 됩니다. 세 공장이 를 겹침 없이 덮으므로, 불량 사건을 세 조각으로 쪼갤 수 있습니다.
풀이. (1) 를 "번 공장에서 왔다", 를 "불량이다"라 하면 검산 결과가 이렇습니다.
| 공장 | 점유율 | 불량률 | 기여분 |
|---|---|---|---|
(2) 불량률의 단순평균은 이며 전체 불량률 과 다릅니다. 불량률이 높은 공장의 점유율이 작으므로 가중평균이 단순평균보다 작습니다.
(3) 곱셈법칙을 뒤집으면 나옵니다.
| 공장 | |
|---|---|
**합이 정확히 **입니다. 점유율은 뿐인 번 공장이 불량품의 절반 가까이를 만들어 냅니다.
이 문제에서 배우는 것: 전확률의 법칙.
전확률의 법칙. 이 의 분할이고 각 이면
증명이 두 줄입니다. 121강 문제 3에서 이고 조각들이 서로 배반이므로 공리 3으로 더할 수 있고, 각 조각에 곱셈법칙을 쓰면 끝입니다.
이 법칙의 구조가 "쪼개고 가중평균"입니다.
| 항 | 뜻 |
|---|---|
| 각 경우의 비중입니다 | |
| 그 경우에서의 확률입니다 | |
| 합 | 비중으로 가중평균한 값입니다 |
단순평균이 아니라 가중평균이라는 점이 핵심이며, (2)에서 두 값이 다른 이유입니다.
직접 계산하기 어려운 확률을 조건을 걸어 쉽게 만드는 것이 이 법칙의 실전 용도입니다. "불량일 확률"은 바로 구하기 어렵지만 "공장별 불량률"은 알기 쉽습니다.
(3)에서 한 것이 사실 베이즈 정리입니다.
분모가 전확률의 법칙이며, 125강에서 정식으로 다룹니다.
바로 확인 3.
확인 3-1. 전확률의 법칙을 쓰세요.
답. 이며 가 분할이어야 합니다.
확인 3-2. 그 증명의 두 단계를 쓰세요.
답. 분할로 쪼개 공리 3으로 더하고 각 조각에 곱셈법칙을 씁니다.
확인 3-3. 전체 불량률이 불량률의 단순평균과 다른 이유를 쓰세요.
답. 점유율로 가중한 평균이기 때문입니다.
문제. 를 하나의 함수로 봅니다.
(1) 확률의 세 공리를 만족하는지 확인하세요.
(2) 만족한다면 무엇이 따라오는지 쓰세요.
(3) 여사건 공식이 조건부에서도 성립하는지 확인하세요.
생각의 실마리. 122강에서 세 공리만 만족하면 모든 따름정리가 자동으로 따라온다고 했습니다. 조건부확률이 확률이라면 새로 증명할 것이 없습니다.
풀이. (1) 검산 결과입니다.
| 공리 | 값 | 만족 |
|---|---|---|
| P1 표본점 개의 최소값 | 참입니다 | |
| P2 | 참입니다 | |
| P3 분할에 대한 합 | 참입니다 |
세 공리가 모두 성립합니다.
(2) 따라서 122강에서 유도한 모든 따름정리가 그대로 성립합니다. 새로 증명할 것이 없습니다.
(3) 이고 으로 일치합니다.
이 문제에서 배우는 것: 조건부확률은 새 확률측도다.
조건화의 결과. 이면 로 정의한 는 위의 확률측도입니다.
증명이 세 줄입니다.
배반인 에 대해 도 서로 배반이므로
이 사실이 주는 이득이 큽니다.
| 원래 성립하는 것 | 조건부에서도 |
|---|---|
| 단조성 | 성립합니다 |
| 포함배제 | 성립합니다 |
| 부울 부등식 | 성립합니다 |
| 전확률의 법칙 | 성립합니다 |
마지막 줄이 특히 쓸모 있습니다. 조건을 두 겹으로 걸 수 있다는 뜻이며, 다음 식이 성립합니다.
흔한 오해를 하나 짚습니다. 조건부확률이 확률인 것은 뒤의 조건 를 고정했을 때 앞의 인자에 대해서입니다. 앞을 고정하고 뒤를 바꾸는 는 확률이 아닙니다. 실제로 는 일반적으로 이 아닙니다.
바로 확인 4.
확인 4-1. 가 확률측도임을 쓰세요.
답. 세 공리를 모두 만족하므로 확률측도입니다.
확인 4-2. 그로부터 무엇이 따라옵니까?
답. 122강의 모든 따름정리가 조건부에서도 성립합니다.
확인 4-3. 입니까?
답. 일반적으로 아닙니다. 확률인 것은 앞 인자에 대해서입니다.
문제. 문이 셋이고 하나 뒤에 차가 있습니다. 하나를 고르면 사회자가 남은 문 중 하나를 엽니다.
(1) 사회자가 차가 없고 내가 고르지 않은 문을 연다는 규칙일 때 두 전략의 승률을 구하세요.
(2) 사회자가 내가 고르지 않은 문 중 아무거나 열었는데 우연히 염소였을 때의 승률을 구하세요.
(3) 두 답이 왜 다른지 설명하세요.
생각의 실마리. 겉으로는 같은 장면입니다. 문 하나가 열렸고 그 뒤에 염소가 있습니다. 그런데 조건으로 삼아야 할 사건이 다릅니다.
풀이. (1) 모든 경우를 전개한 검산 결과입니다.
| 전략 | 이길 확률 | 분수 |
|---|---|---|
| 그대로 | ||
| 바꾸기 |
바꾸는 것이 두 배 유리합니다. 합은 정확히 입니다.
(2) 사회자가 무작위로 열었고 결과적으로 염소였다는 조건에서는 이렇습니다.
| 전략 | 조건부 확률 | 분수 |
|---|---|---|
| 그대로 | ||
| 바꾸기 |
차이가 없습니다. 조건 사건의 확률은 입니다.
(3) 사회자가 무엇을 알고 행동했느냐가 다릅니다.
첫째 규칙에서 사회자는 차의 위치를 알고 반드시 염소 문을 엽니다. 따라서 문이 열렸다는 사실은 새 정보를 주지 않고, 내가 처음 고른 문의 확률은 그대로 남습니다. 나머지 가 남은 한 문에 몰립니다.
둘째 규칙에서 사회자는 모르고 열었으므로 차를 열 수도 있었습니다. 차가 안 나왔다는 것 자체가 정보이며, 그 정보가 내 문의 확률을 에서 로 올립니다.
이 문제에서 배우는 것: 조건은 관측 절차까지 포함한다.
핵심. 의 는 "무엇을 보았는가"가 아니라 **"어떤 절차로 그것을 보게 되었는가"**까지 담아야 합니다.
두 경우의 조건 사건이 실제로 다릅니다.
| 규칙 | 조건 사건 | 바꿀 때 승률 |
|---|---|---|
| 알고 연다 | 사회자가 규칙대로 문을 열었다 | |
| 모르고 연다 | 무작위로 열었는데 염소였다 |
둘째에서 조건 사건의 확률이 인 것이 그 차이를 드러냅니다. 첫째에서는 사회자가 반드시 염소를 열므로 조건 사건의 확률이 입니다. 확률 인 사건으로 조건을 걸면 아무것도 바뀌지 않습니다.
이 구조가 실무에서 반복해서 나타납니다.
| 상황 | 놓치기 쉬운 조건 |
|---|---|
| 설문 응답 분석 | 응답한 사람만 관측됩니다 |
| 생존 기업 수익률 | 망한 기업이 표본에서 빠집니다 |
| 임상시험 중도 탈락 | 탈락 이유가 결과와 얽힙니다 |
| 로그 기반 추천 평가 | 노출된 항목만 클릭이 관측됩니다 |
모두 "어떻게 관측되었는가"를 조건에 넣지 않아 생기는 편향이며, 통칭 선택 편향입니다. 마지막 줄은 추천 시스템에서 특히 심각하며, 노출되지 않은 항목의 선호를 알 수 없습니다.
바로 확인 5.
확인 5-1. 사회자가 알고 열 때 바꾸는 전략의 승률을 쓰세요.
답. 입니다.
확인 5-2. 모르고 열었는데 염소였을 때의 승률을 쓰세요.
답. 이며 바꾸든 안 바꾸든 같습니다.
확인 5-3. 두 답이 다른 이유를 한 줄로 쓰세요.
답. 조건 사건이 관측 절차를 포함하므로 서로 다른 사건이기 때문입니다.
| 개념 | 식 |
|---|---|
| 조건부확률 | |
| 등확률에서 | |
| 곱셈법칙 | |
| 연쇄 | |
| 전확률 | |
| 조건부도 확률 | 세 공리를 만족합니다 |
| 정보의 효과 | 관계 |
|---|---|
| 정보 없음 | |
| 확률이 오름 | |
| 확률이 내림 | |
| 불가능해짐 | , 배반 |
| 자주 하는 실수 | 바로잡기 |
|---|---|
| 와 를 혼동합니다 | 분모가 다릅니다 |
| 이라 봅니다 | 앞 인자에 대해서만 확률입니다 |
| 전체 확률을 단순평균으로 냅니다 | 비중으로 가중평균합니다 |
| 관측 절차를 조건에 안 넣습니다 | 어떻게 보게 되었는지가 조건입니다 |
문제 6. 조건부확률의 정의와 성립 조건을 쓰세요.
답. 이며 이어야 합니다.
문제 7. 등확률 표본공간에서 조건부확률을 세기로 쓰세요.
답. 입니다.
문제 8. 곱셈법칙을 두 방향으로 쓰세요.
답. 입니다.
문제 9. 세 사건의 연쇄 곱셈법칙을 쓰세요.
답. 입니다.
문제 10. 빨강 , 파랑 에서 비복원으로 둘 다 빨강일 확률을 쓰세요.
답. 입니다.
문제 11. 두 번째가 빨강일 확률과 그 이유를 쓰세요.
답. 이며 자리에 대한 대칭성 때문입니다.
문제 12. 전확률의 법칙을 쓰고 필요한 가정을 쓰세요.
답. 이며 가 분할이어야 합니다.
문제 13. 점유율 , 불량률 의 전체 불량률을 쓰세요.
답. 입니다.
문제 14. 그 값이 단순평균 과 다른 이유를 쓰세요.
답. 점유율로 가중한 평균이기 때문입니다.
문제 15. 가 확률측도임을 쓰고 그 함의를 쓰세요.
답. 세 공리를 만족하므로 122강의 모든 따름정리가 그대로 성립합니다.
문제 16. 를 쓰세요.
답. 입니다.
문제 17. 몬티 홀에서 사회자가 알고 열 때 바꾸는 전략의 승률을 쓰세요.
답. 입니다.
문제 18. 모르고 열었는데 염소였을 때의 승률과 그 이유를 쓰세요.
답. 이며 조건 사건에 관측 절차가 다르게 들어가기 때문입니다.
심화 1. 두 조건부확률을 혼동해서 생기는 오류를 정리하세요.
와 를 뒤집는 것을 조건부확률의 전도라 하며, 실무에서 가장 값비싼 통계 오류입니다.
의학 검사가 표준 예입니다. 유병률 , 민감도 , 특이도 인 검사에서 양성이 나왔을 때 실제 병일 확률을 구합니다. 전확률의 법칙으로
이고 곱셈법칙을 뒤집으면
약 뿐입니다. 와 혼동하면 라고 답하게 되며, 오차가 배입니다.
이유는 분모입니다. 병이 있는 사람이 워낙 적어서, 양성 판정의 대부분이 건강한 사람에게서 나오는 위양성입니다. 기저율을 무시하는 것이 오류의 정체이며 125강에서 정면으로 다룹니다.
법정에서도 같은 오류가 나옵니다. "무고한데 증거가 일치할 확률이 백만분의 일"과 "증거가 일치하는데 무고할 확률"은 전혀 다른 수이며, 이를 검사의 오류라 부릅니다.
| 혼동되는 두 수 | 의미 |
|---|---|
| 무고한 사람에게서 이 증거가 나올 확률 | |
| 이 증거가 나온 사람이 무고할 확률 |
용의자 풀이 클수록 뒤쪽이 커집니다. 백만분의 일이어도 인구 천만 명 중에서 검색했다면 우연히 일치하는 사람이 열 명쯤 됩니다.
심화 2. 곱셈법칙의 연쇄가 언어모형이 되는 과정을 설명하세요.
연쇄 곱셈법칙을 토큰 열에 적용합니다.
이것이 자기회귀 언어모형의 정의식 그 자체입니다. 근사도 가정도 없는 항등식이며, 조건부확률의 정의를 번 적용한 것뿐입니다.
모형이 하는 일은 오른쪽의 각 인자를 신경망으로 근사하는 것입니다.
| 항 | 모형에서 |
|---|---|
| 마지막 층의 소프트맥스 출력 | |
| 로그 확률의 합 | |
| 음의 로그가능도 | 교차엔트로피 손실 |
손실함수가 왜 로그의 합인지가 여기서 나옵니다. 곱을 다루기 어려우니 로그를 취하면 합이 되며, 이것이 149강 최대우도추정의 형태입니다.
마르코프 가정은 이 사슬을 자르는 것입니다. 로 두면 154강의 마르코프 연쇄가 되며, -gram 모형이 이 근사입니다. 트랜스포머는 자르지 않고 전부 보는 대신 주의 기제로 가중치를 학습합니다.
심화 3. 심프슨의 역설을 설명하세요.
조건을 걸면 방향이 뒤집히는 현상이 있습니다.
신장결석 치료 예입니다.
| 결석 크기 | 치료 A | 치료 B |
|---|---|---|
| 작은 결석 | ||
| 큰 결석 | ||
| 전체 |
두 그룹 각각에서는 A가 낫는데 전체로는 B가 낫습니다.
원인은 배정의 불균형입니다. 치료 A는 어려운 큰 결석에 주로 쓰였고 B는 쉬운 작은 결석에 주로 쓰였습니다. 전확률의 법칙으로 보면
인데 가중치 가 두 치료에서 다릅니다. 각 항이 커도 가중치가 나쁜 쪽에 쏠리면 합이 작아집니다.
어느 쪽이 옳은 결론인지는 확률만으로 정해지지 않습니다. 결석 크기가 치료 선택에 영향을 준 원인이라면 조건을 건 쪽이 옳고, 치료의 결과라면 전체가 옳습니다. 인과 구조를 알아야 판단할 수 있으며, S8에서 다룹니다.
기계학습에서도 나타납니다. 전체 정확도는 높은데 모든 하위 집단에서 낮은 모형이 가능하며, 집단별 평가가 필요한 이유입니다.
심화 4. 조건부확률과 정보의 관계를 개관하세요.
문제 1에서 정보의 효과를 셋으로 나눴습니다. 이를 정량화할 수 있습니다.
를 알기 전과 후의 불확실성 차이가 정보량입니다. 한 사건에 대한 정보량은 다음과 같이 씁니다.
| 값 | 뜻 |
|---|---|
| 가 를 지지합니다 | |
| 가 정보를 주지 않습니다 | |
| 가 를 반증합니다 | |
| 가 를 배제합니다 |
문제 1의 세 줄이 각각 , 양수, 입니다.
대칭성이 성립합니다. 곱셈법칙에서
이므로 가 에 대해 주는 정보와 가 에 대해 주는 정보가 같습니다. 이 양의 기댓값이 상호정보량이며, 138강의 상관계수와 함께 의존성의 척도가 됩니다.
주의할 것은 와 가 다르다는 점과 모순이 아니라는 것입니다. 다른 것은 확률이고 같은 것은 비입니다.
심화 5. 몬티 홀을 개의 문으로 일반화하세요.
문이 개이고 사회자가 염소 문 개를 연 뒤 바꿀 기회를 줍니다.
내가 처음 고른 문의 확률은 으로 유지됩니다. 사회자가 규칙대로 여는 한 새 정보가 없기 때문입니다. 나머지 확률 이 남은 개 문에 균등하게 퍼지므로
입니다.
| 그대로 | 바꾸기 | 배율 | ||
|---|---|---|---|---|
셋째 줄이 직관을 가장 잘 살립니다. 문 개에서 하나를 고르고 사회자가 개를 열어 주면 바꾸는 것이 배 유리하며, 이 규모에서는 헷갈리는 사람이 거의 없습니다.
넷째 줄은 문을 하나만 여는 경우입니다. 이득이 배로 줄지만 여전히 바꾸는 쪽이 낫습니다. 사회자가 문을 많이 열수록 이득이 커집니다.
심화 6. 판별모형과 생성모형을 조건부확률로 구분하세요.
분류 문제에서 목표는 입니다. 이를 얻는 두 갈래가 있습니다.
| 방식 | 모형화 대상 | 예 |
|---|---|---|
| 판별모형 | 를 직접 | 로지스틱회귀, 신경망 분류기 |
| 생성모형 | 와 | 나이브 베이즈, 가우시안 판별분석 |
생성모형은 베이즈 정리로 뒤집어 답을 냅니다.
분모가 문제 3에서 쓴 전확률의 법칙입니다.
| 판별 | 생성 | |
|---|---|---|
| 학습할 것 | 경계면만 | 데이터 분포 전체 |
| 데이터가 적을 때 | 불리합니다 | 유리합니다 |
| 가정이 틀렸을 때 | 견고합니다 | 취약합니다 |
| 새 데이터 생성 | 못 합니다 | 할 수 있습니다 |
| 결측치 처리 | 어렵습니다 | 주변화로 가능합니다 |
넷째 줄이 생성모형이라는 이름의 유래이며, 에서 표본을 뽑으면 새 데이터가 나옵니다. 262강부터의 생성모형이 이 갈래를 깊이 파고들며, 오늘날의 확산모형과 언어모형이 모두 여기에 속합니다.
import numpy as np, itertools
S = list(itertools.product(range(1, 7), repeat=2))
N = len(S)
P = lambda E: len(E)/N
A = {w for w in S if w[0] + w[1] == 7}
B = {w for w in S if w[0] % 2 == 0}
D = {w for w in S if w[0] + w[1] >= 10}
# --- 문제 1: 정보가 들어오면 표본공간이 줄어든다 ------------------------
print(" 주사위 두 개. A=합이7, B=첫눈짝수, D=합이10이상")
print(" 조건부 P(교집합) P(조건) 비 축소공간에서 직접")
for nm, X, Y in [("P(A|B)", A, B), ("P(B|A)", B, A), ("P(D|B)", D, B), ("P(A|D)", A, D)]:
pi, pc = P(X & Y), P(Y)
print(" %-10s %12.6f %10.6f %10.6f %18.6f"
% (nm, pi, pc, pi/pc, len(X & Y)/len(Y)))
print(" 조건이 주어지면 분모가 |S| 에서 |조건| 로 바뀝니다")
print(" 비교 조건 없음 조건 있음 정보의 효과")
print(" %-20s %12.6f %12.6f %14s" % ("A 를 B 로 조건", P(A), P(A & B)/P(B), "그대로"))
print(" %-20s %12.6f %12.6f %14s" % ("D 를 B 로 조건", P(D), P(D & B)/P(B), "올라감"))
print(" %-20s %12.6f %12.6f %14s" % ("A 를 D 로 조건", P(A), P(A & D)/P(D), "0 이 됨"))
print(" 합이 7 은 첫 눈이 무엇이든 확률이 1/6 이라 B 가 정보를 주지 않습니다")
# 주사위 두 개. A=합이7, B=첫눈짝수, D=합이10이상
# 조건부 P(교집합) P(조건) 비 축소공간에서 직접
# P(A|B) 0.083333 0.500000 0.166667 0.166667
# P(B|A) 0.083333 0.166667 0.500000 0.500000
# P(D|B) 0.111111 0.500000 0.222222 0.222222
# P(A|D) 0.000000 0.166667 0.000000 0.000000
# 조건이 주어지면 분모가 |S| 에서 |조건| 로 바뀝니다
# 비교 조건 없음 조건 있음 정보의 효과
# A 를 B 로 조건 0.166667 0.166667 그대로
# D 를 B 로 조건 0.166667 0.222222 올라감
# A 를 D 로 조건 0.166667 0.000000 0 이 됨
# 합이 7 은 첫 눈이 무엇이든 확률이 1/6 이라 B 가 정보를 주지 않습니다
# --- 문제 2: 곱셈법칙으로 순차 추출을 계산한다 --------------------------
print(" 항아리에 빨강 5, 파랑 3. 비복원으로 연달아 꺼냅니다")
R0, B0 = 5, 3
print(" 순서 곱셈법칙 계산 확률")
seqs = [("RR", [(5,8), (4,7)]), ("RB", [(5,8), (3,7)]),
("BR", [(3,8), (5,7)]), ("BB", [(3,8), (2,7)])]
tot = 0.0
for nm, fr in seqs:
p = 1.0; parts = []
for a, b in fr:
p *= a/b; parts.append("%d/%d" % (a, b))
tot += p
print(" %-10s %-36s %12.8f" % (nm, " * ".join(parts), p))
print(" 네 경우의 합 %.10f" % tot)
print(" 두 번째가 빨강일 확률 = %.8f 이며 첫 번째와 같습니다 (%.8f)"
% (5/8*4/7 + 3/8*5/7, 5/8))
# 항아리에 빨강 5, 파랑 3. 비복원으로 연달아 꺼냅니다
# 순서 곱셈법칙 계산 확률
# RR 5/8 * 4/7 0.35714286
# RB 5/8 * 3/7 0.26785714
# BR 3/8 * 5/7 0.26785714
# BB 3/8 * 2/7 0.10714286
# 네 경우의 합 1.0000000000
# 두 번째가 빨강일 확률 = 0.62500000 이며 첫 번째와 같습니다 (0.62500000)
# --- 문제 3: 전확률의 법칙은 분할로 쪼개는 것이다 -----------------------
print(" 공장 3곳이 부품을 대고 불량률이 다릅니다")
share = np.array([0.50, 0.30, 0.20])
defect = np.array([0.01, 0.02, 0.05])
print(" 공장 점유율 불량률 기여분 P(F_i)*P(D|F_i)")
for i in range(3):
print(" %8d %9.2f %8.2f %20.6f" % (i+1, share[i], defect[i], share[i]*defect[i]))
pD = float(share @ defect)
print(" P(D) = sum = %.6f (점유율 합 %.6f)" % (pD, share.sum()))
print(" 단순평균 불량률 %.6f 과 다릅니다" % defect.mean())
print(" 공장 P(F_i | D) = 기여분 / P(D)")
for i in range(3):
print(" %8d %20.6f" % (i+1, share[i]*defect[i]/pD))
print(" 사후확률의 합 %.10f" % float((share*defect/pD).sum()))
# 공장 3곳이 부품을 대고 불량률이 다릅니다
# 공장 점유율 불량률 기여분 P(F_i)*P(D|F_i)
# 1 0.50 0.01 0.005000
# 2 0.30 0.02 0.006000
# 3 0.20 0.05 0.010000
# P(D) = sum = 0.021000 (점유율 합 1.000000)
# 단순평균 불량률 0.026667 과 다릅니다
# 공장 P(F_i | D) = 기여분 / P(D)
# 1 0.238095
# 2 0.285714
# 3 0.476190
# 사후확률의 합 1.0000000000
# --- 문제 4: 조건부확률도 확률이다 --------------------------------------
print(" P(. | B) 가 세 공리를 만족하는지 확인합니다")
PB = lambda E: P(E & B)/P(B)
Sset = set(S)
print(" 공리 값 만족")
mn = min(PB({w}) for w in S)
print(" P1 표본점 36개의 최소값 %10.6f %10s" % (mn, mn >= 0.0))
print(" P2 P(S | B) %10.6f %10s" % (PB(Sset), PB(Sset) == 1.0))
parts = [{w for w in S if w[0] + w[1] == s} for s in range(2, 13)]
tot = sum(PB(p) for p in parts)
print(" P3 분할에 대한 합 %10.6f %10s" % (tot, abs(tot - 1) < 1e-12))
print(" 따라서 122강의 모든 따름정리가 조건부확률에도 그대로 성립합니다")
print(" P(A^c | B) = 1 - P(A | B): %.6f = %.6f" % (PB(Sset - A), 1 - PB(A)))
# P(. | B) 가 세 공리를 만족하는지 확인합니다
# 공리 값 만족
# P1 표본점 36개의 최소값 0.000000 True
# P2 P(S | B) 1.000000 True
# P3 분할에 대한 합 1.000000 True
# 따라서 122강의 모든 따름정리가 조건부확률에도 그대로 성립합니다
# P(A^c | B) = 1 - P(A | B): 0.833333 = 0.833333
# --- 문제 5: 몬티 홀 문제를 모든 경우로 전개한다 ------------------------
print(" 문 3개, 사회자는 차가 없고 내가 안 고른 문을 엽니다")
stay = switch = 0.0
for car in range(3):
for pick in range(3):
opts = [d for d in range(3) if d != car and d != pick]
for op in opts:
w = (1/3)*(1/3)*(1/len(opts))
other = [d for d in range(3) if d != pick and d != op][0]
stay += w*(pick == car)
switch += w*(other == car)
print(" 전략 이길 확률 분수")
print(" %-10s %12.8f %10s" % ("그대로", stay, "1/3"))
print(" %-10s %12.8f %10s" % ("바꾸기", switch, "2/3"))
print(" 합 %.10f" % (stay + switch))
print(" 사회자가 아무 문이나 열고 우연히 염소였을 때는 다릅니다")
stay2 = switch2 = norm = 0.0
for car in range(3):
for pick in range(3):
for op in range(3):
if op == pick: continue
w = (1/3)*(1/3)*(1/2)
if op == car: continue # 차가 드러난 경우는 조건에서 제외
norm += w
other = [d for d in range(3) if d != pick and d != op][0]
stay2 += w*(pick == car)
switch2 += w*(other == car)
print(" 전략 조건부 확률 분수")
print(" %-10s %12.8f %10s" % ("그대로", stay2/norm, "1/2"))
print(" %-10s %12.8f %10s" % ("바꾸기", switch2/norm, "1/2"))
print(" 조건 사건의 확률 %.8f 이며 사회자의 규칙이 답을 바꿉니다" % norm)
# 문 3개, 사회자는 차가 없고 내가 안 고른 문을 엽니다
# 전략 이길 확률 분수
# 그대로 0.33333333 1/3
# 바꾸기 0.66666667 2/3
# 합 1.0000000000
# 사회자가 아무 문이나 열고 우연히 염소였을 때는 다릅니다
# 전략 조건부 확률 분수
# 그대로 0.50000000 1/2
# 바꾸기 0.50000000 1/2
# 조건 사건의 확률 0.66666667 이며 사회자의 규칙이 답을 바꿉니다
문제 1의 세 줄이 이 강의의 지도입니다. 같은 정의로 계산했는데 정보의 효과가 그대로, 올라감, 이 됨으로 갈립니다. 첫 줄이 124강 독립의 씨앗이고 셋째 줄이 121강 배반의 재확인입니다.
문제 5의 두 표를 나란히 보십시오. 눈에 보이는 장면은 완전히 같은데 답이 과 로 다릅니다. 조건 사건이 관측 절차를 포함하기 때문이며, 이 한 가지를 놓쳐 실무의 분석이 무너지는 일이 대단히 흔합니다.
정답.
| 기호 | 읽는 법 | 뜻 |
|---|---|---|
| 비 조건 에이의 확률 | 를 안 뒤의 의 확률입니다 | |
| 곱셈법칙 | multiplication rule | 교집합을 조건부로 씁니다 |
| 연쇄법칙 | chain rule | 곱셈법칙을 이어 붙입니다 |
| 전확률의 법칙 | law of total probability | 분할로 쪼개 가중평균합니다 |
| 조건부확률의 전도 | prosecutor's fallacy | 두 방향을 뒤집는 오류입니다 |
| 기저율 | base rate | 조건 없는 사전확률입니다 |
| 교환가능성 | exchangeability | 순서를 바꿔도 분포가 같습니다 |
| 선택 편향 | selection bias | 관측 절차가 표본을 왜곡합니다 |
| 심프슨의 역설 | Simpson's paradox | 조건을 걸면 방향이 뒤집힙니다 |
| 판별모형 | discriminative model | 를 직접 씁니다 |
| 생성모형 | generative model | 와 를 씁니다 |
| 자기회귀 | autoregressive | 앞을 조건으로 다음을 예측합니다 |
다음 124강에서는 독립과 조건부 독립을 다룹니다. 문제 1의 첫 줄에서 본 "정보가 확률을 바꾸지 않는" 상황을 정식으로 정의하고, 그것이 라는 곱 형태와 같음을 봅니다. 121강 심화 5의 직사각형 사건이 독립의 기하적 정체로 드러나고, 조건을 걸면 독립이 생기거나 사라지는 현상을 통해 인과 구조를 읽는 첫 걸음을 뗍니다.