푸아송 분포의 아이디어와 유도 과정에 대한 구체적인 원리


매일 아침 602번 버스를 타고 판교로 출퇴근하는 주니어 백엔드 개발자 라이언은, 버스를 기다리는 시간을 매우 싫어합니다.

따라서, 버스가 5분 안에 도착 할 확률 얼마일까?, 15분 안에 버스가 2대 이상 도착 할 확률은 얼마일까? 와 같은 질문들에 대해서 답을 계산하고 싶어합니다.

이러한 상황에서 버스가 도착할 확률을 푸아송 분포를 활용하여 모델링 하고 계산할 수 있습니다.

하지만, 푸아송 분포의 유도 과정에 대한 이해 없이 공식 만 본다면, 푸아송 분포는 매우 어렵게만 느껴집니다.

오늘은 중학교 수학으로 완벽하게 이해하는 푸아송 분포와 유도 과정, 그 활용에 대해 알아보겠습니다!



푸아송 분포의 정의


푸아송 분포의 정의
푸아송 분포의 정의

확률통계나 네트워크의 대기행렬 이론 등을 공부하신 분 이라면 한번쯤은 보셨을 법 한, 푸아송 분포의 정의 입니다. 매우 무시무시하게 생긴 수식이죠!

푸아송 분포는, 정해진 시간 안에 어떤 사건이 일어날 횟수에 대한 기대값을 알고있을 때 그 사건이 n 회 일어날 확률을 구하는 방법 입니다.

푸아송 분포의 수식과 정의만 봐서는, 대체 왜 저렇게 무섭게 생긴 수식이 사건이 n 회 일어날 확률을 계산할 수 있는건지 , 저런 식이 어떤 과정으로 탄생하게 되었는지 당최 이해를 할 수 없죠!

푸아송 분포의 아이디어와 유도과정부터 쉽고 천천히 알아보도록 하겠습니다.



푸아송 분포의 아이디어


푸아송 분포의 아이디어를 쉽게 이해하기 위해, 잠시 도로 교통 공학자가 되어봅시다!

우리는 특정 교차로에서 1시간 당 지나가는 자동차의 평균 대수를 알고있을 때, 우리는 교차로에 N 대 이상의 자동차가 지나갈 확률 을 구하고 싶습니다. 교통 정체를 방지하기 위해서죠!

1시간 당 지나가는 자동차의 평균 대수는 충분한 시간동안 교차로에 지나간 자동차의 대수를 센 후 측정한 시간 만큼 나누면 쉽게 구할 수 있습니다.

1시간 당 지나가는 자동차의 평균 대수를 알고있을 때, N 대 이상의 자동차가 지나갈 확률 은 ?

특정 교차로에서 1시간 당 지나가는 자동차의 평균 대수가 3대 라고 측정되었다고 해봅시다.

푸아송 분포의 아이디어는, 1시간 당 지나가는 자동차를 측정하는 방법을 다른 관점으로 바라보면서 시작됩니다.


1시간 동안 지나가는 자동차를 관측할 때, 10분 간격으로 지나간 자동차를 세어 보자!

특정 교차로에서 1시간 동안 평균 3대의 자동차가 지나간다는 사실을 우리는 측정을 통해 알고있습니다.

이때 1시간 동안 평균 3대의 자동차가 지나간다는 것은 곧 10분 간격으로 1시간 동안 측정하였을때 자동차 3대가 지나가는 경우와 같습니다.

관측하는 시간 간격을 10분으로 설정한 후, 1시간 동안 10분 간격으로 6번 측정을 해서 자동차가 지나간 횟수가 3번 이면 1시간 동안 평균 3대의 자동차가 지나갔다고 할 수 있겠죠!


1시간을 10분 간격으로 나누어 측정하였을 때 자동차가 3번 지나갔다고 측정되었다면,
1시간 당 지나가는 자동차의 평균 대수는 3대라고 할 수 있다

푸아송 분포의 본질적인 아이디어는, 이처럼 평균 값을 알고 있을 때 측정 간격을 우리가 정해서 바라볼 수 있다는 관점에서 시작합니다.

참으로 멋진 아이디어 아닌가요? 평균 이라는 하나의 ‘값’ 에서 ‘측정 간격’ 이라는 개념을 도입하여 새로운 관점에서 바라보는 것이죠!

이 아이디어가 푸아송 분포의 본질이자 가장 중요한 아이디어 라고 할 수 있습니다.

이에 대해서 조금 더 자세히 살펴보겠습니다!


1시간을 10분 간격으로 관측할 때 자동차가 3대 관측될 확률
= 동전을 10분 간격으로 6번 던질 때 앞면이 3번 나올 확률

앞서서 우리는 1시간에 자동차가 평균 3대 지나갈 확률이, 10분 간격으로 1시간 동안 측정할 때 자동차가 3대 지나갈 확률과 동일하다는 것을 살펴보았습니다.

여기서 10분 간격으로 1시간 동안 측정했을 때 자동차가 3대 지나갈 경우의 수는 얼마나 될 까요?

이는 우리가 어릴적 수학시간에 배웠던, 동전 던지기 게임의 경우의 수와 매우 비슷합니다.

10분 간격으로 6번 측정하여 자동차가 3대 지나갈 경우의수 는 동전을 6번 던져서 앞면이 3번 나오는 경우의 수와 동일합니다! 상황만 자동차에서 동전으로 바꾸었을 뿐 다를게 하나도 없죠.

결국 교차로를 10분 간격으로 관측했을 때 자동차가 N 번 지나갈 경우의 수는 동전을 10분 간격으로 던졌을 때 앞면이 N 번 나오는 경우의 수와 일치한다는 것 을 알게되었습니다!

이제 교차로에 지나가는 자동차가 몇대 일 지 확률을 계산하는 어려운 문제에서 훨씬 풀기 쉬운 동전 던지기에서 앞면이 몇 번 나올지를 맞추는 문제로 바뀌었네요.

이제 동전 앞면이 몇번 나올지를 맞춰봅시다!


동전 앞면이 나올 확률이 p 일때, 동전을 n 와 던져서 k 번 앞면이 나올 확률은 이항 분포를 따른다

동전을 n 회 던져서, k 번 앞면이 나올 확률은 대표적인 이항 분포의 예제 입니다.

이항분포, 기억 나시나요?

이항 분포의 계산 식은 위의 그림에서의 식과 같습니다. 전체 n 개 에서 k 개를 뽑는 이항 계수에 앞면이 나올 확률 p ^ k (확률 p 로 k 번 앞면이 나와야 함), 뒷면이 나올 확률 (1-p) ^ (n-k) (앞면이 나올 확률이 p 이니, 뒷면이 나올 확률은 1-p 이며 앞면이 전체 n 번 중 k 번 나왔으니, 뒷면은 n-k 번 나와야 함) 을 곱해주면 쉽게 구할 수 있습니다.


10분 간격으로 자동차를 측정하면, 10분 안에 2대가 지나가는 경우를 표현 할 수 없음
그렇다면, 측정 간격을 더 짧게 하면 되네!

드디어 푸아송 분포의 마지막 아이디어 입니다.

앞서 10분 간격으로 자동차가 지나가는 지 여부를 측정하였는데, 만약 10분 안에 자동차 2대가 지나간다면 어떻게 될 까요?

동전이 앞 / 뒷 면 만 있는 것 처럼, 우리도 자동차가 지나갔는지 / 안지나갔는지 여부 만을 측정할 수 있습니다.

따라서, 2대가 지나가던 100대가 지나가던 우리는 자동차가 지나갔네! 만 측정할 수 있는 것 이죠.

이를 해결하려면 어떻게 해야 할 까요?

가장 쉽고 직관적인 해답은, 자동차가 지나갔는지 측정하는 시간간격을 더 줄이는 것 입니다.

위의 그림처럼, 측정 시간 간격을 10분에서 5분으로 줄이면, 10분에 자동차 2대가 지나가는 경우도 5분에 1대씩 지나가는 것 으로 정상적으로 측정할 수 있겠죠!


이제 푸아송 분포의 아이디어를 한마디로 정리해보겠습니다.

어떤 사건의 발생 평균 값 을 알 때, 이를 측정하는 시간간격을 정하여 이항 분포로 사건을 바라볼 수 있고, 이때 측정 시간 간격을 매우매우 짧게 만든다!

자 이제 측정 시간 간격을 무한대로 매우매우 짧게 만들어 푸아송 분포를 유도해보겠습니다!


푸아송 분포의 유도 과정


이항 분포에서 사건 발생을 측정하는 횟수 n 을 무한대로 보내보자

위의 수식은, 앞서 1시간에 평균 K대의 자동차가 지나가는 경우를 1분 간격, 1초 간격으로 측정하여 이항 분포로 나타내었 을 때 자동차가 K 대 지나가는 것이 관측될 확률입니다.

그 후 가장 중요한 푸아송 분포의 아이디어인, 관측 시간 간격을 무한대로 매우매우 짧게 만들어 보는 것 이죠 (이는 사건 관측 횟수를 무한대로 크게 하는 것과 같습니다!)

이제 저 이항 분포의 극한 값을 구하기 위해, 식을 살짝 변형해 보겠습니다


이항 분포의 극한 값을 구해보자

이항 분포에서 사건 관측 횟수를 무한대로 크게 한 후 극한 값을 구하기 위해, 이항 분포의 분포를 살짝 바꿔봤습니다.


이항 분포의 극한값을 구했더니, 푸아송 분포의 결과 식이 자연스럽게 나오네!

이항 분포의 극한 값을 식을 하나 하나 풀어서 전개한 결과 입니다.

이때 자연상수 e 가 갑자기 튀어나오는 것을 볼 수 있습니다. 당황하지 마세요! 자연상수의 정의를 그대로 가져온 것 뿐입니다.

정말 놀랍게도, 이항 분포의 극한값을 식을 풀어서 계산한 결과가 푸아송 분포의 결과식과 정확하게 일치하는것 을 확인할 수 있습니다.

이 글의 도입부 에서 푸아송 분포의 결과식 만을 아무런 배경 지식 없이 봤을 때 에는 정말 무시무시하게 생겼었는데, 이제 보니까 별거 없네요! 그저 이항분포의 극한값이였던 것 입니다.


이항 분포의 극한 값 = 푸아송 분포

이제 우리는, 푸아송 분포의 아이디어와 이를 수식으로 풀어내어 전개한 결과식이 왜 저렇게 나왔는지를 정확하게 이해했습니다!

푸아송 분포의 결과식만 봤을 때 와 아이디어부터 수식의 유도 까지 차근 차근 살펴본 후에 보는 결과식은 느낌이 매우 다른것 같습니다.

하지만 수식에서 멈추면 안되겠죠! 현실에서 푸아송 분포로 어떤 문제들을 해결할 수 있는지 살펴보겠습니다.



푸아송 분포의 현실에서의 활용


판교로 출퇴근하는 개발자 라이언이 궁금해했던, 602번 버스가 1시간 당 도착하는 평균 횟수를 알고있을 때 10분 안에 602번 버스가 도착할 확률을 구해봅시다.

버스 정류장의 안내문에는 602번 버스가 운행 간격이 10분 이라고 적혀있습니다. 즉, 1시간에 602번 버스는 평균 6번 도착한다는 것 이죠

이때 우리는 직관적으로 10분 정도 기다리면 버스가 도착 할 확률이 어느정도 높아질 것 이라고 예상할 수 있지만, 우리는 엔지니어 인 만큼 푸아송 분포를 이용하여 확률을 계산 해 봅시다.

평균적으로 10분 당 1대의 버스가 도착 할 때, 푸아송 분포로 계산한 10분 안에 버스가 도착 할 확률

푸아송 분포로 계산한 결과, 평균적으로 10분 당 1대의 버스가 도착할 때 10분 안에 우리가 기다리는 버스가 도착할 확률은 55% 네요!


그렇다면, 개발자 라이언의 인내심을 조금 더 상향해서 20분 동안 버스를 기다려 봅시다.

과연 평균적으로 10분 당 1대의 버스가 도착 할 때 20분 안에 버스가 도착할 확률은 얼마나 될 까요?

평균적으로 10분 당 1대의 버스가 도착 할 때, 푸아송 분포로 계산한 20분 안에 버스가 도착 할 확률

푸아송 분포로 계산한 결과, 평균적으로 10분 당 1대의 버스가 도착할 때 20분 안에 우리가 기다리는 버스가 도착할 확률은 무려 94% 네요!

우리의 개발자 라이언이 20분 정도 기다리면 버스가 도착 할 확률이 94% 로 올라가는 것 을 알 수 있습니다.

푸아송 분포는 이처럼 현실 세계에서 평균 값 을 알고있는 사건에 대해서 그 사건이 N 회 이상 일어날 확률 등을 구하는 데 매우 유용하게 활용할 수 있는 확률 분포 입니다.

특히나 현실의 문제를 해결하는 엔지니어 들 에게 푸아송 분포는 확률이 대충 높겠지.. 라는 직관 보다 명확한 수치에 근거하여 판단을 할 수 있게 해줍니다.


푸아송 분포가 현실 세계의 문제들을 해결하는데 적용 될 수 있는 다른 예시들은 다음과 같습니다.

  • 어느 책 에서 5 페이지에 오타가 10개 발견되었다면, 한 페이지를 검사하였을 때 오타가 3개 이상 나올 확률은?
  • 쿠팡의 고객센터에는 1시간 당 평균 300 건의 고객 문의 전화가 걸려오는데, 이때 1분동안 걸려오는 고객 문의 전화가 10건 이하 일 확률 은?
  • 톨게이트에 1시간 당 1000대의 자동차가 지나갈 때, 10분에 50대 이하로 자동차가 지나갈 확률은?
  • 어떤 나라에서 1년동안 발생한 지진의 진도가 평균 3.0 일때, 진도 5.0 이상의 지진이 발생할 확률은?

위와 같은 질문들에 대한 답을 명확하게 내야 한다면, 직관 보다는 푸아송 분포에 기반하여 답을 계산해 보는게 어떨까요?


또한 푸아송 분포는 위와 같은 사례 말고도 네트워크와 서버의 트래픽 분야에서 아주 유용하게 사용될 수 있습니다.

평균적으로 N 명이 접속하는 서비스에서, 3000 명 이상이 동시에 접속 할 확률은 ?

위와같은 질문에 대답할 수 있다면 백엔드 엔지니어나 네트워크 인프라 엔지니어 분 들에게는 실제 서비스를 운영하는데 큰 도움이 되겠죠!

실제로 네트워크 분야에서 대기행렬 이론에 기반하여 대기열 속에서 대기하고 있는 패킷의 개수, 패킷의 대기 시간, 전체 지연 시간 등을 구하는 데 푸아송 분포가 매우 유용하게 사용됩니다.



부록: 푸아송 분포의 확률 분포와 전제 조건


앞에서 푸아송 분포를 기반으로 어떤 사건이 N 회 이상 발생할 확률을 구해보았는데요, 그렇다면 푸아송 분포의 확률 분포는 어떻게 생겼을까요?

다양한 '"`UNIQ--postMath-00000001-QINU`"'에 대한 푸아송 분포의 모습
푸아송 분포의 확률 질량 함수

푸아송 분포의 확률 질량 함수는 위처럼 생겼습니다.

평균적으로 1시간에 6대 씩 버스가 도착하는 상황이라면, 버스가 1시간에 6대 도착할 확률이 가장 큰 것을 푸아송 분포의 확률 질량 함수에서 확인할 수 있습니다.

이는 우리의 직관과도 어느정도 일치하죠!


Poisson cdf.svg
푸아송 분포의 누적 분포 함수

푸아송 분포의 누적 분포 함수는 위와 같습니다.

평균적으로 1시간에 X 대 씩 버스가 도착하는 상황이라면, 버스가 1시간에 X 대 이하로 도착 할 확률이 약 55 % 정도 되는것 을 확인할 수 있습니다.


이러한 푸아송 분포는 사실 현실에 적용하기 위한 전제조건이 존재합니다.

  • 독립성: 다른 구간에서 발생하는 사건은 통계적으로 독립적 이다
  • 일정성: 단위 시간 당 사건 발생 확률은 동일하다
  • 비집락성: 매우 작은 시간 안에 사건이 동시에 발생할 확률은 무시할 정도로 작다

전제 조건이 굉장히 어렵죠? 하지만 우리는 푸아송 분포의 아이디어 부터 유도 과정까지를 모두 살펴보았기 떄문에, 위의 전제조건이 당연한 이야기 라는 걸 쉽게 알 수 있습니다.

  • 독립성: 사건을 이항 분포로 바라 볼 것 이므로, 동전 던지기 처럼 각각의 사건이 독립 적 이여야 함

  • 일정성: 사건의 발생 확률이 시간에 따라 변하면 안됨! 동전을 던질 때 1 ~ 3회 까지는 앞면이 나올 확률이 높고, 4 ~ 6회 까지는 뒷면이 나올 확률이 높은 경우는 없다
  • 비집락성: 우리는 사건의 관측 시간 간격을 무한대로 짧게 보낼 것 이므로, 무한대로 짧은 관측 시간 간격 안에서 사건이 동시에 여러번 관측되는 상황은 없다

위처럼, 푸아송 분포의 주요 아이디어를 잘 이해하고 있다면 전제조건이 당연하게 이해됩니다!



결론


지금까지 푸아송 분포의 아이디어와 유도 과정, 현실에서의 적용과 확률 분포, 전제 조건 까지 푸아송 분포의 거의 모든 것 에 대해서 살펴보았습니다.

푸아송 분포는 현실에서 직관에 의존하지 않고 확률을 통계에 기반하여 계산하는 데 큰 도움을 줍니다.

하지만, 푸아송 분포의 아이디어와 유도 과정에 대한 아무런 이해 없이 푸아송 분포의 결과식 만을 보고 외운다면 푸아송 분포의 본질적인 의미를 이해할 수 없습니다.

푸아송 분포는 네트워크 분야 등 에서 정말 유용하게 사용되는 대기행렬 이론의 큐잉 모델과도 매우 밀접한 관련이 있으므로, 아이디어를 이해하고 계신다면 추후 여러 분야에서 도움이 많이 될 것 이라고 생각합니다.

많은 도움이 되었길 바랍니다!

긴 글 읽어주셔서 감사합니다.



Reference