푸아송 분포, 너는 누구냐?

사실, 푸아송 분포 이해하기 쉽지 않다. 정의부터 먼저 살펴보자. 한글 위키피디어에서 가져왔다.

푸아송 분포(Poisson distribution)는 확률론에서 단위 시간 안에 어떤 사건이 몇 번 발생할 것인지를 표현하는 이산 확률 분포이다. 일단 정의에서 알 수 있는 것:

  1. 푸아송이라는 사람이 만들었다.
  2. 단위 시간 안에 발생하는 사건이 중요하다.
  3. 이산 확률 분포다.

수학적인 정의는 일단 생략하자. 뒤에서 다시 만나게 될 테니까. 정의만 봐서는 이해가 쉽지 않은 분포다. 직관적인 방식으로 푸아송 분포의 정의를 끌어낼 수는 없을까?1

푸아송 분포, 사실 이항 분포에 왔다?

잠시 이항 분포를 떠올려보자. 아마도 모든 확률 관련 수업에서 제일 처음 배우는 분포가 아닐까 한다. 이항 분포란, 1회 시행 시 발생할 확률이 \(p\;\)인 어떤 사건을 \(n\) 번 시행할 때 해당 사건이 \(k\) 번 발생할 확률의 분포를 나타낸다. 개별적으로 존재하는 사건이니까 당연히 이산 확률 분포에 속한다. 수학적으로는 아래와 같다.

\[B(k; n,p) = { {n}\choose{k} } p^k(1-p)^{n-k}\]

이항 분포의 정의를 말로 풀어보자. n번 시행 중에 사건이 발생한 경우 \(k\) 개를 뽑는다. 즉, 이런 경우가 \(n\) 번 중에서 얼마나 발생할 수 있는지 따진다. 그리고 해당 경우의 수가 발생할 확률을 곱해준 것이다.

이항 분포를 ‘시간’의 맥락으로 한번 바꿔보자. 하루 동안 내 사이트에 방문객이 한 명 찾아올 확률을 0.1이라고 하자. 28일, 즉 4 주 동안 10 명의 방문자가 찾아올 확률은? 이항 분포의 맥락에서 생각한다면, \(B(10; 28, 0.1)\)로 적을 수 있겠다. 그런데 이러한 모델링은 어딘가 찜찜하다.

이항 분포의 모델링은 하루 동안 사이트 방문객이 한 명일 확률에 기대고 있다. 그런데 하루에 방문객이 두 명 이상이라면? 하루에 방문객이 한 명 씩만 온다는 가정이 비현실적이지 않나?

두 명 이상의 방문자를 수용하려면 이항 분포의 모형을 어떻게 수정해야 할까? 가장 손쉬운 방법은 단위 시간을 바꾸는 것이다. 단위 시간을 하루가 아니라 시간으로 바꿔보자. 하루는 24시간이고 매 시간 동일한 정도로 이용자가 방문한다면, 시간당 1명이 방문할 확률은 0.1/24이 된다. 낮은 확률이겠으나 이론적으로 본다면 하루에 두 명 이상도 방문할 수 있게 된다.

푸아송 분포를 도출해보자.

한 달 동안 평균 방문객이 10 명이라는 사실을 과거 자료를 통해 미리 알고 있다. 이 10 명은 한 달 사이에 어떤 패턴으로 사이트를 방문할까? 이 문제를 이항 분포의 맥락에서 어떻게 풀어낼 수 있을까? 이항 분포는 단위 시간 동안 사건이 한 번 일어날 확률에 기대고 있기 때문에, 앞서 언급했듯 단위 시간을 최대한 잘게 쪼개면 될 것 같다.

이항 분포와 달리 푸아송 분포에서 파라미터는 한 개다. 푸아송 분포의 파라미터 \(\lambda\)는 단위 시간 당 평균 발생 횟수를 뜻한다. 비율(rate)이라고도 부른다. \(\lambda\)가 ‘파라미터’라는 의미는 무엇일까? 과거의 데이터로부터 혹은 어떤 방법으로든 푸아송 분포를 정의하는 시점에서 알려진 혹은 정의된 사실이라는 의미다. 즉, 우리가 관심을 두고 있는 기간 내에 평균적인 방문자 수가 주어진다는 뜻이다.

기간 내에 특정 순간 동안 어느 정도의 방문자가 올지 미리 알 수 없다. 방문자가 없다가 어느 순간 10명이 몰려올 수도 있다. 일정한 간격으로 한 명씩 10번 올 수도 있다. 매번 시행 때마다 해당 사건이 발생할 확률을 모형화하는 이항분포를 시간의 맥락으로 바꾸면 이렇게 뭔가 잘 들어맞지 않는 경우가 생긴다.

이항 분포를 통해 푸아송 분포를 표현하는 방법은 없을까? 어떤 패턴으로 방문자가 올지 알 수 없다면, 이항 분포의 기준이 되는 시행(시점)을 최대한 잘게 쪼개는 것이다. 이항 분포에서 평균은 \(np\;\) 다. 즉, 이항 분포의 맥락에서 보면 푸아송 분포의 파라미터 \(\lambda = n p\;\)다. \(\lambda\)가 고정되어 있다면 \(n\)을 무한대로 갈 때 \(p\)는 적절한 방식으로 0으로 접근할 것으로 가정해도 무방하다. 정리하면 푸아송 분포를 이항 분포에서 도출하기 위한 전략은 다음과 같다.

  1. \(n\)과 \(p\)를 \(\lambda\) 파라미터 하나로 바꾼다.
  2. \(n\)이 무한대로 갈 때 이항 분포의 확률 밀도 함수의 극한값을 도출한다.
\[\begin{aligned} \lim_{n \to \infty} B(k; n, p) = & \lim_{n \to \infty} { {n}\choose{k} } p^k(1-p)^{n-k} \\ = & \lim_{n \to \infty} \dfrac{n!}{k!(n-k)!}(\dfrac{\lambda}{n})^k (1-\dfrac{\lambda}{n})^{n-k} \\ = & \lim_{n \to \infty} \underset{(가)}{\left[ \dfrac{n!}{(n-k)! n^k} \right]} \left[ \dfrac{\lambda^k}{k!} (1-\dfrac{\lambda}{n})^{n} \right] \underset{(나)}{\left[ (1-\dfrac{\lambda}{n})^{-k}\right]} \\ = & 1\left[ \dfrac{\lambda^k}{k!} e^{-\lambda}\right] 1 \\ = & f(k; \lambda) \\ & \text{(푸아송 분포의 확률 질량 함수)} \end{aligned}\]

푸아송 분포 확률 질량 함수 앞 뒤로 붙은 극한값 (가)와 (나)에 관해 살짝 설명을 덧붙여보자. 먼저 (가)는 아래와 같다.

\[\lim_{n \to \infty} \dfrac{n!}{(n-k)! n^k} = \lim_{n \to \infty} \dfrac{n(n-1)\dotsb(n-(k-1))}{n^k} = 1\]

분자와 분모 모두 가장 높은 \(n\)의 차수는 \(k\)이고, 그 계수가 모두 1이므로 극한값은 1이다. (나)의 극한값은 쉽게 알 수 있으니 생략하자.

이항 분포의 확률 혹은 확률 질량 함수의 극한값이 바로 푸아송 분포의 그것이다! 이거 참 재미있는 연결 고리가 아닌가! 사실 푸아송 분포의 정의를 그냥 들여다봐서 직관적인 이해를 얻기는 어렵다. 이렇게 이항 분포에서 출발하는 것이 직관적인 이해에는 도움이 된다.

  1. 정확하게 언급하자면 분포의 정의라기보다는 분포의 확률 질량 함수 혹은 확률 밀도 함수라고 적는 게 맞을 것이다. 하지만 편의상 특별한 언급이 없는 경우 분포의 정의를 이런 의미로 사용하도록 하자.