127강 문제 5에서 이항분포의 한 극한을 봤습니다. , 이면서 로 붙잡으면 이런 것이 나왔습니다.
이번 강의는 이것을 극한이 아니라 그 자체로 다룹니다.
두 분포를 함께 보는 이유가 있습니다. 같은 상황을 반대 방향에서 묻기 때문입니다.
| 질문 | 분포 | 값의 성격 |
|---|---|---|
| 정해진 시간에 몇 번 일어나는가 | 포아송 | 횟수입니다 |
| 한 번 일어날 때까지 얼마나 걸리는가 | 기하 | 기다림입니다 |
같은 동전의 양면이며, 실제로 두 분포는 하나의 과정에서 함께 나옵니다. 콜센터에 시간당 걸려 오는 전화 수가 포아송이면, 다음 전화까지의 대기 시간은 기하 또는 지수분포입니다.
그리고 기하분포에는 다른 어떤 이산분포에도 없는 성질이 하나 있습니다.
이미 기다린 시간이 앞으로의 기다림에 아무 영향을 주지 않습니다. 이를 무기억성이라 하며, 문제 5에서 이 성질을 갖는 이산분포가 기하분포뿐임을 봅니다.
문제. 를 봅니다.
(1) 총합이 인지 확인하고 근거를 밝히세요.
(2) 평균과 분산을 구하세요.
(3) 둘의 관계를 정리하세요.
생각의 실마리. 가 부터 무한대까지 갑니다. 총합이 이 되려면 어떤 급수가 필요한지 생각합니다. 54강에서 배운 급수 하나가 정확히 맞습니다.
풀이. (1)(2) 검산 결과입니다.
| 합 | 평균 | 분산 | 평균분산 | |
|---|---|---|---|---|
| 2.22\times10^ | ||||
| 2.28\times10^ |
마지막 줄의 오차가 다른 줄보다 큽니다. 에서 잘랐는데 이면 표준편차가 라 은 평균에서 표준편차 떨어진 곳이고, 그래도 꼬리가 조금 남아 있기 때문입니다. 급수를 유한하게 자른 대가입니다.
정규화의 근거는 54강의 지수급수입니다.
(3) 평균과 분산이 모두 로 같습니다.
이 문제에서 배우는 것: 포아송분포.
포아송분포. 이면
평균을 유도하는 계산이 깔끔합니다. 항은 이므로 만 보면
로 지수를 하나 내리는 것이 요령이며, 분산도 를 같은 방식으로 계산해 얻습니다.
평균과 분산이 같다는 것이 포아송의 지문입니다. 이 성질을 갖는 표준 분포는 포아송뿐입니다.
이것이 실무에서 진단 도구가 됩니다. 관측된 횟수 자료에서 표본평균과 표본분산을 비교합니다.
| 비교 | 이름 | 무엇을 뜻하는가 |
|---|---|---|
| 분산 평균 | 포아송에 부합 | 사건이 독립적으로 발생합니다 |
| 분산 평균 | 과산포 | 발생률이 균일하지 않거나 뭉칩니다 |
| 분산 평균 | 과소산포 | 발생이 서로 밀어냅니다 |
과산포가 압도적으로 흔합니다. 실제 자료에서 발생률이 개체나 시간대마다 다르기 때문이며, 심화 1에서 다룹니다.
바로 확인 1.
확인 1-1. 포아송분포의 질량함수를 쓰세요.
답. 입니다.
확인 1-2. 총합이 인 근거를 쓰세요.
답. 지수급수 입니다.
확인 1-3. 평균과 분산을 쓰세요.
답. 둘 다 입니다.
문제. 구간 에 사건이 평균 번 일어납니다. 구간을 조각으로 나누고 각 조각에 확률 을 줍니다.
(1) 을 키우며 이항분포를 포아송과 비교하세요.
(2) 한 조각에 두 번 이상 일어날 확률이 어떻게 되는지 보세요.
(3) 극한이 성립하는 이유를 정리하세요.
생각의 실마리. 각 조각을 베르누이 시행으로 보면 총 횟수가 이항분포입니다. 조각을 잘게 쪼갤수록 "한 조각에 두 번"이라는 근사 오차가 줄어들 것입니다.
풀이. (1) 검산 결과입니다.
| 최대오차 | |||||
|---|---|---|---|---|---|
| 4.28\times10^ | |||||
| 7.02\times10^ | |||||
| 3.43\times10^ | |||||
| 3.36\times10^ |
포아송 의 값은 , , , 입니다.
(2) 각 조각에 사건이 두 번 이상 일어날 확률과 그것을 조각 수로 곱한 값입니다.
| 한 조각에 회 이상 확률 | 조각 수를 곱한 기대값 | |
|---|---|---|
| 3.694\times10^ | ||
| 1.730\times10^ | ||
| 4.411\times10^ | ||
| 4.499\times10^ |
조각당 확률은 로 줄고, 조각이 개이므로 총합이 로 줄어 에 갑니다.
(3) 이것이 극한의 핵심입니다.
이 문제에서 배우는 것: 포아송 과정.
포아송 과정의 세 조건. 구간에서 일어나는 사건 수가 포아송을 따르려면 다음이 필요합니다.
겹치지 않는 구간의 사건 수가 독립이고, 짧은 구간 에서 한 번 일어날 확률이 이며, 두 번 이상 일어날 확률이 입니다.
셋째 조건이 문제 2의 표가 확인한 것입니다. 조각을 잘게 쪼개면 한 조각에서 두 번 일어나는 일이 사실상 사라집니다.
포아송 극한 정리의 증명 골자도 같은 관찰입니다.
세 조각이 각각 , , 로 가고 가운데가 남습니다. 두 번째 밑줄이 54강에서 배운 입니다.
포아송이 적용되는 상황의 공통점이 이것입니다.
| 상황 | 왜 포아송인가 |
|---|---|
| 시간당 도착 전화 수 | 각 순간이 독립이고 동시 도착이 드뭅니다 |
| 페이지당 오타 수 | 각 글자가 독립이고 오타율이 낮습니다 |
| 단위 부피의 방사성 붕괴 | 원자마다 독립이고 붕괴 확률이 극히 작습니다 |
| 하루 서버 오류 수 | 요청마다 독립이고 오류율이 낮습니다 |
**"많은 기회 × 각각 작은 확률"**이 공통 구조이며, 그 곱 만이 결과를 정합니다.
바로 확인 2.
확인 2-1. 포아송 과정의 세 조건을 쓰세요.
답. 구간 독립, 짧은 구간에 한 번은 , 두 번 이상은 입니다.
확인 2-2. 극한 증명에서 가 어디서 나오는지 쓰세요.
답. 에서 나옵니다.
확인 2-3. 포아송이 적용되는 상황의 공통 구조를 쓰세요.
답. 기회가 많고 각각의 확률이 작으며 그 곱이 고정된 상황입니다.
문제. 와 이 독립입니다.
(1) 의 분포를 합성곱으로 계산하세요.
(2) 와 비교하세요.
(3) 대수적 근거를 밝히세요.
생각의 실마리. 두 독립 확률변수의 합은 가능한 모든 분해를 더한 것입니다. 가 되려면 이고 여야 하며, 를 부터 까지 훑습니다.
풀이. (1)(2) 검산 결과입니다.
| 합성곱 | 차이 | ||
|---|---|---|---|
| 8.67\times10^ | |||
| 2.78\times10^ | |||
| 1.39\times10^ | |||
**전체 최대 차이가 **로 부동소수점 한계이며, 합성곱의 총합은 입니다.
(3) 합성곱을 직접 전개하면 이렇게 됩니다.
에 을 곱해 이항계수를 만든 것이며, 20강의 이항정리로 합이 가 됩니다.
이 문제에서 배우는 것: 포아송의 가법성.
가법성. 과 가 독립이면
직관이 명확합니다. 두 개의 독립적인 포아송 과정을 겹쳐 놓으면 전체도 포아송 과정이고 발생률이 더해집니다. 두 콜센터의 전화를 합치면 시간당 도착률이 합쳐집니다.
분포족이 합에 대해 닫히는 것을 재생성이라 하며, 흔치 않은 성질입니다.
| 분포 | 독립인 합 | 닫히는가 |
|---|---|---|
| 포아송 | 닫힙니다 | |
| 이항 (같은 ) | 닫힙니다 | |
| 정규 | 닫힙니다 | |
| 기하 | 음이항분포 | 닫히지 않습니다 |
| 균등 | 삼각형 모양 | 닫히지 않습니다 |
넷째 줄이 이 강의와 관련됩니다. 기하분포 개의 합은 음이항분포이며 "번째 성공까지의 시행 수"를 나타냅니다.
134강의 적률생성함수를 배우면 이 표를 훨씬 쉽게 만들 수 있습니다. 독립인 합의 적률생성함수가 곱이 되므로, 곱이 같은 족에 남는지만 확인하면 됩니다.
바로 확인 3.
확인 3-1. 독립 포아송의 합의 분포를 쓰세요.
답. 입니다.
확인 3-2. 증명의 핵심 단계를 쓰세요.
답. 합성곱에서 이항계수를 만들고 이항정리를 적용합니다.
확인 3-3. 기하분포 개의 합은 무엇입니까?
답. 음이항분포이며 번째 성공까지의 시행 수입니다.
문제. 성공확률 인 시행을 첫 성공이 나올 때까지 반복하고 그 횟수를 이라 합니다.
(1) 를 구하세요.
(2) 평균과 분산을 수치로 구하고 공식과 비교하세요.
(3) 를 구하고 121강과 비교하세요.
생각의 실마리. 이려면 앞의 번이 모두 실패하고 번째가 성공해야 합니다. 독립이므로 곱입니다.
풀이. (1) 곧바로 나옵니다.
(2) 검산 결과입니다.
| 평균(수치) | 분산(수치) | (1-p)/p^ | ||
|---|---|---|---|---|
네 줄 모두 정확히 일치합니다.
평균 가 직관적입니다. 성공확률이 이면 평균 열 번 걸립니다.
(3) 이려면 처음 번이 모두 실패해야 하므로
입니다. 에서 일 때 , , , 이며 121강 문제 4의 누적표와 정확히 같은 수입니다.
이 문제에서 배우는 것: 기하분포.
기하분포. 이면
평균을 구하는 우아한 방법이 있습니다. 첫 시행에서 조건을 겁니다. 성공하면 번이고, 실패하면 처음부터 다시 시작하므로
풀면 입니다. 123강의 전확률의 법칙을 기댓값에 적용한 것이며, 137강의 조건부기댓값에서 정식으로 다룹니다.
꼬리가 지수적으로 줄어드는 것도 중요합니다. 가 기하급수적으로 감소하므로 아주 오래 기다릴 확률이 급격히 작아집니다.
두 가지 판본에 주의합니다. "시행 횟수"로 세면 이고 평균이 입니다. "실패 횟수"로 세면 이고 평균이 입니다.
분산은 두 판본에서 같습니다. 상수만큼 평행이동한 것이기 때문입니다. 문헌마다 다르므로 반드시 확인해야 합니다.
바로 확인 4.
확인 4-1. 기하분포의 질량함수와 꼬리확률을 쓰세요.
답. 이고 입니다.
확인 4-2. 평균과 분산을 쓰세요.
답. 와 입니다.
확인 4-3. 두 판본의 평균 차이를 쓰세요.
답. 시행 횟수는 이고 실패 횟수는 입니다.
문제. 인 기하분포에서 을 봅니다.
(1) 여러 에서 계산해 과 비교하세요.
(2) 균등분포에서도 같은 성질이 성립하는지 확인하세요.
(3) 결과를 정리하세요.
생각의 실마리. 조건부확률의 정의를 씁니다. 이므로 교집합이 작은 쪽입니다.
풀이. (1) 검산 결과입니다.
| 차이 | ||||
|---|---|---|---|---|
| 5.55\times10^ |
정확히 같습니다. 계산으로도 즉시 보입니다.
(2) 균등분포에서는 다릅니다.
| 차이 | ||||
|---|---|---|---|---|
| 1.11\times10^ | ||||
| 8.57\times10^ | ||||
| 3.00\times10^ |
차이가 점점 커집니다. 균등분포는 상한이 있으므로 기다릴수록 남은 여지가 줄어듭니다.
(3) 기하분포만 이 성질을 갖습니다.
이 문제에서 배우는 것: 무기억성.
무기억성. 모든 에 대해
이면 무기억성을 갖는다고 합니다.
유일성. 무기억성을 갖는 이산분포는 기하분포뿐이고, 연속분포는 지수분포뿐입니다.
증명이 함수방정식으로 됩니다. 라 하면 조건이 입니다. 곱을 합으로 바꾸는 함수방정식이며, 로그를 취하면 가 덧셈을 보존하므로 선형입니다. 따라서 꼴이고 입니다.
14강의 지수함수 성질 이 이 성질의 정체입니다.
의미가 반직관적입니다. 동전을 열 번 던져 앞면이 안 나왔어도 **다음에 나올 확률은 여전히 **입니다. "슬슬 나올 때가 됐다"는 생각이 틀린 이유이며, 도박사의 오류라 부릅니다.
실무에서 이 성질이 유용한 경우와 위험한 경우가 있습니다.
| 상황 | 무기억성이 | 결과 |
|---|---|---|
| 방사성 붕괴 대기 | 성립합니다 | 남은 수명이 나이와 무관합니다 |
| 전자부품 초기 고장 | 대략 성립합니다 | 지수분포 모형이 적절합니다 |
| 기계 마모 고장 | 깨집니다 | 오래 쓸수록 위험률이 오릅니다 |
| 사람의 수명 | 깨집니다 | 나이가 들수록 위험률이 오릅니다 |
셋째와 넷째 줄에는 다른 분포가 필요합니다. 위험률이 시간에 따라 변하는 와이불분포를 쓰며, 131강 심화에서 다룹니다.
바로 확인 5.
확인 5-1. 무기억성을 식으로 쓰세요.
답. 입니다.
확인 5-2. 무기억성을 갖는 이산분포와 연속분포를 각각 쓰세요.
답. 기하분포와 지수분포뿐입니다.
확인 5-3. 증명의 핵심 함수방정식을 쓰세요.
답. 이며 해가 지수함수 꼴입니다.
| 분포 | 질량함수 | 평균 | 분산 |
|---|---|---|---|
| 포아송 | |||
| 기하 (시행) | (1-p)/p^ | ||
| 기하 (실패) | (1-p)/p^ | ||
| 음이항 | \binom{k-1}{r-1}(1-p)^{k-r}p^ | r(1-p)/p^ |
| 성질 | 내용 |
|---|---|
| 포아송 정규화 | 지수급수입니다 |
| 포아송 지문 | 평균 분산 |
| 포아송 가법성 | 가 더해집니다 |
| 기하 꼬리 | P(N>k)=(1-p)^ |
| 무기억성 | 기하와 지수만 갖습니다 |
| 진단 | 판정 |
|---|---|
| 분산 평균 | 포아송에 부합합니다 |
| 분산 평균 | 과산포입니다 |
| 분산 평균 | 과소산포입니다 |
| 자주 하는 실수 | 바로잡기 |
|---|---|
| 기하분포의 두 판본을 혼동합니다 | 시행 횟수인지 실패 횟수인지 확인합니다 |
| 과산포 자료에 포아송을 씁니다 | 음이항이나 준포아송을 씁니다 |
| 무기억성을 마모 고장에 씁니다 | 위험률이 오르면 와이불을 씁니다 |
| 오래 안 나왔으니 곧 나온다고 봅니다 | 도박사의 오류입니다 |
문제 6. 포아송분포의 질량함수를 쓰세요.
답. 입니다.
문제 7. 총합이 인 근거를 쓰세요.
답. 지수급수 입니다.
문제 8. 포아송의 평균과 분산을 쓰세요.
답. 둘 다 입니다.
문제 9. 분산이 평균보다 크면 무엇이라 하고 왜 생기는지 쓰세요.
답. 과산포이며 발생률이 균일하지 않거나 사건이 뭉치기 때문입니다.
문제 10. 포아송 과정의 세 조건을 쓰세요.
답. 구간 독립, 짧은 구간에 한 번은 , 두 번 이상은 입니다.
문제 11. 포아송 극한에서 가 어디서 나오는지 쓰세요.
답. 에서 나옵니다.
문제 12. 독립 포아송의 합의 분포를 쓰세요.
답. 입니다.
문제 13. 그 증명의 핵심 단계를 쓰세요.
답. 합성곱에서 이항계수를 만들고 이항정리를 씁니다.
문제 14. 기하분포의 질량함수와 꼬리확률을 쓰세요.
답. 이고 입니다.
문제 15. 기하분포의 평균을 조건을 걸어 유도하세요.
답. 에서 입니다.
문제 16. 무기억성을 식으로 쓰세요.
답. 입니다.
문제 17. 무기억성을 갖는 분포를 이산과 연속에서 각각 쓰세요.
답. 기하분포와 지수분포뿐입니다.
문제 18. 기하분포 개의 합은 무엇입니까?
답. 음이항분포이며 번째 성공까지의 시행 수입니다.
심화 1. 과산포를 다루는 방법을 정리하세요.
문제 1에서 평균과 분산의 비교가 진단이 된다고 했습니다. 실제 자료는 거의 언제나 과산포입니다.
원인이 대개 이질성입니다. 개체마다 발생률 가 다른데 하나의 로 모형화하면, 관측된 분산에 의 변동이 더해집니다. 전체 분산 법칙(137강)으로
둘째 항만큼 평균보다 커집니다. 가 상수면 과산포가 없습니다.
에 감마분포를 주면 음이항분포가 나옵니다.
| 모형 | 가정 | 분산 |
|---|---|---|
| 포아송 | 고정 | |
| 준포아송 | 분산을 로 둠 | |
| 음이항 | \Lambda\sim\text |
음이항이 가장 널리 쓰입니다. 131강에서 감마분포를 배우면 이 혼합이 왜 음이항을 낳는지 계산할 수 있습니다.
과산포를 무시하면 표준오차가 과소평가됩니다. 신뢰구간이 너무 좁아지고 유의하지 않은 것이 유의해 보이며, 거짓 발견의 흔한 원인입니다.
심화 2. 포아송 과정에서 대기시간을 유도하세요.
문제 2의 과정에서 첫 사건까지의 시간 를 봅니다.
포아송의 항이 그대로 답입니다. 따라서 분포함수가
이고 이것이 지수분포입니다. 131강에서 다룹니다.
두 분포가 한 과정의 두 얼굴임이 여기서 드러납니다.
| 무엇을 세는가 | 분포 |
|---|---|
| 고정 시간의 사건 수 | 포아송 |
| 첫 사건까지의 시간 | 지수 |
| 번째 사건까지의 시간 | 감마 |
이산 세계의 대응이 정확히 평행합니다.
| 이산 | 연속 |
|---|---|
| 이항 | 포아송 |
| 기하 | 지수 |
| 음이항 | 감마 |
무기억성도 그대로 옮겨집니다. 기하분포의 가 지수분포의 에 대응하며, 둘 다 지수함수 꼴이라 함수방정식 를 만족합니다.
심화 3. 포아송 회귀를 개관하세요.
127강 심화 5에서 이항의 를 입력에 의존시켜 로지스틱 회귀를 얻었습니다. 포아송에도 같은 것을 합니다.
지수를 씌우는 이유는 이어야 하기 때문입니다. 로그를 연결함수로 쓴다고 말합니다.
로그가능도가 이렇게 됩니다.
마지막 항이 와 무관해 최적화에서 사라집니다. 그리고 이 함수는 에 대해 오목하므로 최대점이 유일합니다. 107강의 볼록성이 여기서 쓰입니다.
계수의 해석이 곱셈적입니다. 가 늘면 가 배가 되며, 로지스틱 회귀에서 오즈비가 곱해지던 것과 같은 구조입니다.
노출량이 다를 때 오프셋을 씁니다. 관측 기간이나 인구가 다르면
로 두어 발생률을 모형화합니다. 계수를 추정하지 않는 고정항이며 오프셋이라 부릅니다.
심화 4. 쿠폰 수집가 문제를 풀어 보세요.
종류의 쿠폰을 하나씩 무작위로 모읍니다. 전부 모으는 데 걸리는 기대 횟수를 구합니다.
종류를 이미 모은 상태에서 새 종류가 나올 확률이 이므로, 그 다음 새 종류까지의 대기가 기하분포입니다.
전체는 기댓값의 선형성으로 더하면 됩니다.
이 조화수이고 가 오일러 상수입니다.
| nH_ | ||
|---|---|---|
셋째 줄이 흥미롭습니다. 종류를 모두 모으려면 평균 번 뽑아야 하며, 122강의 생일 문제에서 명이면 충돌이 생기던 것과 대비됩니다. 충돌을 만나는 것은 쉽고 전부 모으는 것은 어렵습니다.
기댓값의 선형성이 독립을 요구하지 않는다는 점이 이 풀이의 핵심입니다. 들은 서로 독립이지만, 설령 아니어도 기댓값은 더해집니다. 127강 문제 3의 관찰이 여기서 힘을 발휘합니다.
분산도 구할 수 있습니다. 가 독립이므로 분산이 더해지며 입니다. 표준편차가 에 비례하므로 평균 에 비해 상대적으로 작아 집중됩니다.
심화 5. 포아송 과정의 놀라운 성질들을 모으세요.
첫째로 조건부 균등성입니다. 구간 에 사건이 정확히 번 일어났다는 조건을 걸면, 그 개의 위치는 의 균등분포에서 독립으로 뽑은 것과 같습니다.
시각을 몰라도 개수만 알면 위치는 완전히 무작위입니다. 몬테카를로 시뮬레이션에서 포아송 과정을 만드는 표준 방법이 이것입니다.
둘째로 분해와 병합입니다.
| 조작 | 결과 |
|---|---|
| 병합 | 독립 포아송 과정을 겹치면 \lambda_{1}+\lambda_ |
| 분해 | 각 사건을 확률 로 골라내면 |
| 분해된 둘 | 서로 독립입니다 |
셋째 줄이 놀랍습니다. 전화를 무작위로 두 상담원에게 배분하면 두 상담원이 받는 전화 수가 서로 독립인 포아송이 됩니다. 총합이 고정되어 있지 않기 때문에 가능한 일이며, 다항분포에서는 성립하지 않습니다.
셋째로 비균질 포아송 과정입니다. 발생률이 시간에 따라 변하는 를 허용하면
적분이 등장하며 S3의 정적분이 도구가 됩니다. 하루 중 시간대별로 트래픽이 다른 상황을 모형화할 때 씁니다.
심화 6. 두 분포가 기계학습에 나타나는 자리를 정리하세요.
| 자리 | 어느 분포 | 어떻게 |
|---|---|---|
| 카운트 데이터 회귀 | 포아송 | 심화 3의 포아송 회귀 |
| 단어 빈도 모형 | 포아송, 음이항 | 문서당 단어 출현 수 |
| 추천의 노출 수 | 포아송 | 노출 횟수 모형화 |
| 강화학습의 에피소드 길이 | 기하 | 종료확률이 일정하면 기하 |
| 할인율 | 기하 | 무한 지평의 기하급수 |
| 드롭아웃 | 베르누이 | 각 뉴런의 유지 여부 |
| 희소 사건 탐지 | 포아송 | 이상치의 기저 발생률 |
다섯째 줄이 특히 근본적입니다. 강화학습의 할인 보상
에서 는 매 단계 확률 로 종료되는 과정의 생존확률입니다. 곧 할인은 임의의 편의가 아니라 기하분포로 분포된 지평을 뜻하며, 기대 지평이 입니다.
| 기대 지평 | |
|---|---|
를 에서 로 올리면 고려하는 미래가 열 배 길어집니다. 274강에서 다룹니다.
여섯째 줄도 흥미롭습니다. 드롭아웃은 각 뉴런에 독립 베르누이를 곱하는 것이며, 살아남는 뉴런 수가 이항분포입니다. 층이 넓으면 127강의 정규 근사가 통해 가우스 잡음을 주입하는 것과 비슷해집니다.
import numpy as np, math
C = lambda n, k: math.comb(n, k)
pois = lambda k, lam: np.exp(-lam)*lam**k/math.factorial(k)
# --- 문제 1: 지수급수가 정규화를 준다 -----------------------------------
print(" 포아송 P(X=k) = e^{-lam} lam^k / k!")
print(" lam 합(k<=60) 평균 분산 평균-분산")
for lam in [0.5, 1.0, 2.0, 5.0, 20.0]:
ks = np.arange(0, 61)
pk = np.array([pois(int(k), lam) for k in ks])
m = float(ks @ pk); v = float(((ks - m)**2) @ pk)
print(" %8.1f %13.10f %12.6f %12.6f %12.2e" % (lam, pk.sum(), m, v, abs(m - v)))
print(" 합이 1 인 근거는 54강의 지수급수 sum lam^k/k! = e^{lam} 입니다")
print(" 포아송은 평균과 분산이 같은 유일한 표준 분포입니다")
# 포아송 P(X=k) = e^{-lam} lam^k / k!
# lam 합(k<=60) 평균 분산 평균-분산
# 0.5 1.0000000000 0.500000 0.500000 0.00e+00
# 1.0 1.0000000000 1.000000 1.000000 2.22e-16
# 2.0 1.0000000000 2.000000 2.000000 0.00e+00
# 5.0 1.0000000000 5.000000 5.000000 0.00e+00
# 20.0 1.0000000000 20.000000 20.000000 2.28e-10
# 합이 1 인 근거는 54강의 지수급수 sum lam^k/k! = e^{lam} 입니다
# 포아송은 평균과 분산이 같은 유일한 표준 분포입니다
# --- 문제 2: 시간을 잘게 쪼개면 이항이 포아송이 된다 --------------------
lam = 3.0
print(" 구간 [0,1] 을 n 조각으로 나누고 각 조각에 확률 lam/n 을 줍니다")
print(" n P(0회) P(1회) P(2회) P(3회) 최대오차")
tgt = np.array([pois(k, lam) for k in range(6)])
for n in [10, 50, 100, 10000]:
p = lam/n
b = np.array([C(n, k)*(p**k)*((1-p)**(n-k)) for k in range(6)])
print(" %7d %10.6f %10.6f %10.6f %10.6f %12.2e"
% (n, b[0], b[1], b[2], b[3], np.abs(b - tgt).max()))
print(" 포아송 lam=3 : %.6f %.6f %.6f %.6f" % tuple(tgt[:4]))
print(" 한 조각에 두 번 이상 일어날 확률이 O(1/n^2) 이라 사라지는 것이 핵심입니다")
print(" n 한 조각에 2회 이상 확률 조각 수를 곱한 기대값")
for n in [10, 50, 100, 10000]:
q = lam/n
per = 1 - np.exp(-q)*(1 + q) # 조각당 2회 이상일 확률
print(" %7d %22.3e %22.6f" % (n, per, n*per))
print(" n 을 키우면 조각당 확률이 1/n^2 로, 총합이 1/n 로 줄어 0 에 갑니다")
# 구간 [0,1] 을 n 조각으로 나누고 각 조각에 확률 lam/n 을 줍니다
# n P(0회) P(1회) P(2회) P(3회) 최대오차
# 10 0.028248 0.121061 0.233474 0.266828 4.28e-02
# 50 0.045331 0.144673 0.226243 0.231057 7.02e-03
# 100 0.047553 0.147070 0.225153 0.227474 3.43e-03
# 10000 0.049765 0.149339 0.224053 0.224075 3.36e-05
# 포아송 lam=3 : 0.049787 0.149361 0.224042 0.224042
# 한 조각에 두 번 이상 일어날 확률이 O(1/n^2) 이라 사라지는 것이 핵심입니다
# n 한 조각에 2회 이상 확률 조각 수를 곱한 기대값
# 10 3.694e-02 0.369363
# 50 1.730e-03 0.086480
# 100 4.411e-04 0.044110
# 10000 4.499e-08 0.000450
# n 을 키우면 조각당 확률이 1/n^2 로, 총합이 1/n 로 줄어 0 에 갑니다
# --- 문제 3: 독립 포아송의 합도 포아송이다 ------------------------------
l1, l2 = 2.0, 3.0
print(" Pois(%.1f) + Pois(%.1f) 를 합성곱으로 계산합니다" % (l1, l2))
K = 40
p1 = np.array([pois(k, l1) for k in range(K)])
p2 = np.array([pois(k, l2) for k in range(K)])
conv = np.array([sum(p1[j]*p2[k-j] for j in range(k+1)) for k in range(K)])
tgt3 = np.array([pois(k, l1+l2) for k in range(K)])
print(" k 합성곱 Pois(lam1+lam2) 차이")
for k in [0, 1, 3, 5, 8, 12]:
print(" %7d %13.10f %16.10f %12.2e" % (k, conv[k], tgt3[k], abs(conv[k]-tgt3[k])))
print(" 전체 최대 차이 %.2e, 합성곱의 총합 %.10f" % (np.abs(conv-tgt3).max(), conv.sum()))
print(" 이항계수 항등식 sum C(k,j) l1^j l2^(k-j) = (l1+l2)^k 가 근거입니다")
# Pois(2.0) + Pois(3.0) 를 합성곱으로 계산합니다
# k 합성곱 Pois(lam1+lam2) 차이
# 0 0.0067379470 0.0067379470 8.67e-19
# 1 0.0336897350 0.0336897350 0.00e+00
# 3 0.1403738958 0.1403738958 0.00e+00
# 5 0.1754673698 0.1754673698 2.78e-17
# 8 0.0652780393 0.0652780393 1.39e-17
# 12 0.0034342403 0.0034342403 0.00e+00
# 전체 최대 차이 2.78e-17, 합성곱의 총합 1.0000000000
# 이항계수 항등식 sum C(k,j) l1^j l2^(k-j) = (l1+l2)^k 가 근거입니다
# --- 문제 4: 기하분포는 기다림의 분포다 ---------------------------------
print(" 첫 성공까지의 시행 횟수 N. P(N=k) = (1-p)^(k-1) p")
print(" p 평균(수치) 1/p 분산(수치) (1-p)/p^2")
for p in [0.1, 0.25, 0.5, 0.8]:
ks = np.arange(1, 4001)
pk = (1-p)**(ks-1)*p
m = float(ks @ pk); v = float(((ks - m)**2) @ pk)
print(" %9.2f %13.6f %10.4f %13.6f %12.6f" % (p, m, 1/p, v, (1-p)/p**2))
print(" P(N > k) = (1-p)^k 이며 121강 문제 4 의 누적표와 같은 식입니다")
print(" p=0.5 에서 k P(N > k)")
for k in [1, 3, 10, 20]:
print(" %20d %14.10f" % (k, 0.5**k))
# 첫 성공까지의 시행 횟수 N. P(N=k) = (1-p)^(k-1) p
# p 평균(수치) 1/p 분산(수치) (1-p)/p^2
# 0.10 10.000000 10.0000 90.000000 90.000000
# 0.25 4.000000 4.0000 12.000000 12.000000
# 0.50 2.000000 2.0000 2.000000 2.000000
# 0.80 1.250000 1.2500 0.312500 0.312500
# P(N > k) = (1-p)^k 이며 121강 문제 4 의 누적표와 같은 식입니다
# p=0.5 에서 k P(N > k)
# 1 0.5000000000
# 3 0.1250000000
# 10 0.0009765625
# 20 0.0000009537
# --- 문제 5: 무기억성은 기하분포만 갖는다 -------------------------------
print(" 무기억성 P(N > m+n | N > m) = P(N > n) 을 검사합니다")
p = 0.3
print(" m n P(N>m+n | N>m) P(N>n) 차이")
for m, n in [(1, 1), (3, 2), (5, 5), (10, 3)]:
lhs = (1-p)**(m+n)/(1-p)**m
rhs = (1-p)**n
print(" %7d %5d %16.10f %14.10f %12.2e" % (m, n, lhs, rhs, abs(lhs-rhs)))
print(" 이미 기다린 시간은 앞으로의 기다림에 아무 영향이 없습니다")
print(" 다른 분포에서는 깨집니다. 균등분포 {1,...,10} 으로 확인합니다")
Pu = lambda k: 1.0 - min(k, 10)/10.0 # P(U > k)
print(" m n P(U>m+n | U>m) P(U>n) 차이")
for m, n in [(1, 1), (3, 2), (5, 3)]:
lhs = Pu(m+n)/Pu(m); rhs = Pu(n)
print(" %7d %5d %16.10f %14.10f %12.2e" % (m, n, lhs, rhs, abs(lhs-rhs)))
print(" 균등분포는 기다릴수록 남은 시간이 줄어 무기억성이 깨집니다")
# 무기억성 P(N > m+n | N > m) = P(N > n) 을 검사합니다
# m n P(N>m+n | N>m) P(N>n) 차이
# 1 1 0.7000000000 0.7000000000 0.00e+00
# 3 2 0.4900000000 0.4900000000 0.00e+00
# 5 5 0.1680700000 0.1680700000 0.00e+00
# 10 3 0.3430000000 0.3430000000 5.55e-17
# 이미 기다린 시간은 앞으로의 기다림에 아무 영향이 없습니다
# 다른 분포에서는 깨집니다. 균등분포 {1,...,10} 으로 확인합니다
# m n P(U>m+n | U>m) P(U>n) 차이
# 1 1 0.8888888889 0.9000000000 1.11e-02
# 3 2 0.7142857143 0.8000000000 8.57e-02
# 5 3 0.4000000000 0.7000000000 3.00e-01
# 균등분포는 기다릴수록 남은 시간이 줄어 무기억성이 깨집니다
문제 1의 마지막 줄이 검산의 한계를 보여 줍니다. 에서 평균과 분산의 차이가 으로 다른 줄보다 큰데, 이론적 오차가 아니라 급수를 에서 자른 대가입니다. 검산 코드도 근사이며 그 사실을 알고 읽어야 합니다.
문제 2의 두 표를 나란히 보십시오. 위 표는 이항이 포아송에 수렴하는 것을 보여 주고, 아래 표는 왜 수렴하는지를 보여 줍니다. 한 조각에 두 번 이상 일어날 기대 조각 수가 에서 로 줄어드는 것이 수렴의 엔진입니다.
문제 5의 두 표가 유일성의 증거입니다. 기하분포에서는 차이가 인데 균등분포에서는 , , 으로 점점 커집니다. 상한이 있는 분포는 기다릴수록 남은 여지가 줄어들 수밖에 없습니다.
정답.
| 기호 | 읽는 법 | 뜻 |
|---|---|---|
| 포아송분포 | 드문 사건의 횟수입니다 | |
| 람다 | 평균이자 분산입니다 | |
| 기하분포 | 첫 성공까지의 시행 수입니다 | |
| 음이항분포 | negative binomial | 번째 성공까지의 시행 수입니다 |
| 무기억성 | memorylessness | 기다린 시간이 영향을 주지 않습니다 |
| 과산포 | overdispersion | 분산이 평균보다 큽니다 |
| 포아송 과정 | Poisson process | 시간축 위의 사건 발생 모형입니다 |
| 재생성 | reproductive property | 합이 같은 분포족에 남습니다 |
| 조건부 균등성 | conditional uniformity | 개수를 알면 위치가 균등합니다 |
| 조화수 H_ | harmonic number | 입니다 |
| 도박사의 오류 | gambler's fallacy | 무기억성을 부정하는 착각입니다 |
| 오프셋 | offset | 노출량을 반영하는 고정항입니다 |
다음 129강에서는 연속확률변수와 확률밀도를 다룹니다. 121강 문제 5에서 남긴 숙제, 곧 한 점의 확률이 인데 구간의 확률은 양수인 구조를 확률밀도함수로 정확히 표현합니다. 126강의 분포함수를 미분하면 밀도가 되고, 그 순간 S3의 정적분이 확률 계산의 주된 도구가 됩니다. 이 강의의 대기시간 이야기가 131강 지수분포로 이어집니다.