티스토리 뷰

반응형

🎯 이항 분포로는 복잡하고, 포아송 분포로는 쉬운 이유

– 로또로 배우는 포아송 근사의 원리

여러분은 로또를 사 본 적 있나요?
로또에 당첨되기란 정말 어려운 일이죠.
그런데 만약 우리가 이런 질문을 한다면 어떨까요?
“오늘 로또 1등 당첨자가 정확히 3명 나올 확률은 얼마일까?”
이걸 풀기 위해 수학자들은 확률 분포라는 도구를 사용합니다.
가장 먼저 떠오르는 건 이항 분포입니다.


🧮 이항 분포로 로또를 모델링해보자

  • 전체 로또 응모자 수: \( n = 5{,}000{,}000 \)
  • 한 사람이 당첨될 확률: \( p = \frac{1}{5{,}000{,}000} \)
  • 관심 있는 사건: 정확히 3명이 당첨될 확률
이항 분포에 따르면 확률은 다음과 같이 계산됩니다: $$ P(X = 3) = \binom{5{,}000{,}000}{3} \cdot \left( \frac{1}{5{,}000{,}000} \right)^3 \cdot \left( 1 - \frac{1}{5{,}000{,}000} \right)^{4{,}999{,}997} $$ 이 수식은 이론적으로는 정확하지만, 실제로 계산하려고 하면 문제가 생깁니다.
  • 조합 값은 수조 단위
  • 확률은 너무 작고
  • 거듭제곱 횟수는 수백만 번
계산이 너무 복잡해서 실질적으로 사용할 수 없습니다.


❗ 계산을 간단하게 만들 수는 없을까?

수학자들은 여기서 아이디어를 냅니다:
“응모자 수가 아주 많고, 당첨 확률이 아주 작을 때
전체 당첨자 수는 평균적으로 일정하게 나오지 않을까?”
이때 사용하는 아이디어가 바로 포아송 근사(Poisson approximation)입니다.


🔁 포아송 근사란 무엇인가?

포아송 근사는 복잡한 이항 분포를
계산이 훨씬 쉬운 포아송 분포로 바꿔서 근사적으로 계산하는 방법입니다. 단순히 바꿔버리는 게 아니라,
특정한 조건이 만족될 때에만 가능한 근사입니다.

✅ 포아송 근사의 조건

  • 시행 횟수 \( n \)이 매우 크고
  • 성공 확률 \( p \)는 매우 작고
  • 평균 성공 횟수 \( \lambda = n \cdot p \)는 일정한 값을 유지할 때
이 조건 아래에서 이항 분포는 다음과 같이 근사됩니다: $$ P(X = k) \approx \frac{\lambda^k \cdot e^{-\lambda}}{k!} $$ 여기서 \( \lambda = n \cdot p \)는
전체적으로 평균 몇 번 성공이 기대되는지를 나타내는 값입니다.
이 수식이 바로 우리가 알고 있는 포아송 분포 공식입니다.


반응형

 


🧪 포아송 근사 유도: 수식 하나도 빠짐없이 따라가기

이제 이항 분포가 포아송 분포로 어떻게 바뀌는지를
수식 하나하나 생략 없이, 논리적으로 연결된 흐름으로 완전히 따라가 보겠습니다.


① 이항 분포의 일반식

$$ P(X = k) = \binom{n}{k} \cdot p^k \cdot (1 - p)^{n - k} $$ 이 식을 하나하나 바꾸어서 결국 포아송 분포의 형태인 $$ P(X = k) = \frac{\lambda^k \cdot e^{-\lambda}}{k!} $$ 로 만드는 것이 목표입니다.


② 조합 항 근사 \( \binom{n}{k} \)

$$ \binom{n}{k} = \frac{n(n - 1)(n - 2) \cdots (n - k + 1)}{k!} $$ 여기서 중요한 조건은 포아송 근사에서는 \( n \)이 매우 크고, \( k \)는 작다는 것입니다. 예를 들어 \( n = 5{,}000{,}000 \), \( k = 3 \)이라면: $$ 5{,}000{,}000 \cdot 4{,}999{,}999 \cdot 4{,}999{,}998 \approx 5{,}000{,}000^3 $$ 그래서 전체 조합 항은: $$ \binom{5{,}000{,}000}{3} \approx \frac{5{,}000{,}000^3}{3!} $$ 보다 일반적으로도: $$ \binom{n}{k} \approx \frac{n^k}{k!} $$


③ 평균 성공 횟수 \( \lambda \) 도입

포아송 근사를 쉽게 하기 위해
\( n \)과 \( p \) 대신 \( \lambda = n \cdot p \)라는 값을 사용합니다. 예시: $$ \lambda = n \cdot p = 5{,}000{,}000 \cdot \frac{1}{5{,}000{,}000} = 1 $$ 그래서: $$ p = \frac{\lambda}{n} $$


반응형

 


④ 확률 항 근사 \( p^k \)

$$ p^k = \left( \frac{\lambda}{n} \right)^k = \frac{\lambda^k}{n^k} $$


⑤ 실패 확률 항 근사 \( (1 - p)^{n - k} \)

$$ (1 - p)^{n - k} \approx (1 - p)^n = \left( 1 - \frac{\lambda}{n} \right)^n \approx e^{-\lambda} $$ 예: $$ (1 - p)^n = \left( 1 - \frac{1}{5{,}000{,}000} \right)^{5{,}000{,}000} \approx e^{-1} \approx 0.3679 $$


⑥ 전체 식 결합

원래 이항 분포: $$ P(X = k) = \binom{n}{k} \cdot p^k \cdot (1 - p)^{n - k} $$ 모든 근사 항 대입: $$ P(X = k) \approx \left( \frac{n^k}{k!} \right) \cdot \left( \frac{\lambda^k}{n^k} \right) \cdot e^{-\lambda} = \frac{\lambda^k}{k!} \cdot e^{-\lambda} $$


🎉 최종 결과: 포아송 분포 공식

$$ P(X = k) = \frac{\lambda^k \cdot e^{-\lambda}}{k!} $$ 이것이 바로 우리가 원하던 포아송 분포 공식입니다.
복잡한 \( n \), \( p \) 대신 하나의 값 \( \lambda \)만으로
확률을 간단하게 계산할 수 있게 되었습니다.


반응형

 


📊 이항 분포 vs 포아송 분포: 실제 수치 비교

이제 실제로 이항 분포로 계산한 확률값과,
같은 상황에서 포아송 분포로 근사한 확률값이 얼마나 차이나는지 비교해 보겠습니다.

예시 상황

  • 전체 응모자 수: \( n = 5{,}000{,}000 \)
  • 한 사람이 당첨될 확률: \( p = \frac{1}{5{,}000{,}000} \)
  • 평균 성공 횟수: \( \lambda = np = 1 \)
  • 목표: \( X = 0, 1, 2, 3 \)일 확률 계산



① 이항 분포로 계산한 값

$$ P_{\text{Binomial}}(X = k) = \binom{n}{k} \cdot p^k \cdot (1 - p)^{n - k} $$ 이항 분포 계산 결과:
k 이항 분포 확률 \( P_{\text{Binomial}}(X = k) \)
00.36788
10.36788
20.18394
30.06131




② 포아송 분포로 근사한 값

$$ P_{\text{Poisson}}(X = k) = \frac{\lambda^k \cdot e^{-\lambda}}{k!} \quad (\lambda = 1) $$ 포아송 분포 계산 결과:
k 포아송 분포 확률 \( P_{\text{Poisson}}(X = k) \)
00.36788
10.36788
20.18394
30.06131




✅ 비교 결과

  • 오차가 사실상 0에 가깝다
  • 특히 \( \lambda \)가 작고, \( n \)이 크고, \( p \)가 작을수록 근사 정확도가 매우 높다
  • 즉, 이런 상황에서는 포아송 근사가 실제 이항 분포와 거의 같다고 볼 수 있음



📈 이항 분포 vs 포아송 분포 그래프

  • X축: \( k \)값 (성공 횟수, 예: 0, 1, 2, ..., 10)
  • Y축: 각 \( k \)에 대한 확률값
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import binom, poisson

# Parameters
n = 5_000_000
p = 1 / 5_000_000
lam = 1
k = np.arange(0, 11)

# PMFs
binomial_pmf = binom.pmf(k, n, p)
poisson_pmf = poisson.pmf(k, lam)

# Plot
plt.figure(figsize=(8, 4))
plt.plot(k, binomial_pmf, 'bo-', label='Binomial (n=5e6, p=1/5e6)')
plt.plot(k, poisson_pmf, 'gs--', label='Poisson (λ=1)')
plt.title('Binomial vs Poisson Distribution', fontsize=14)
plt.xlabel('Number of occurrences (k)', fontsize=12)
plt.ylabel('Probability P(X = k)', fontsize=12)
plt.legend()
plt.grid(True)
plt.tight_layout()
plt.show()


포아송 분포와 이항분포는 잘 근사되는 것을 볼 수 있따!



반응형

 


✅ 최종 요약 정리 (표 포함)

항목 이항 분포 포아송 근사
확률 공식 \( P(X = k) = \binom{n}{k} p^k (1 - p)^{n - k} \) \( P(X = k) = \frac{\lambda^k e^{-\lambda}}{k!} \)
사용 조건 일반적인 경우 \( n \gg 1 \), \( p \ll 1 \), \( \lambda = np \) 고정
계산 난이도 매우 복잡 (조합, 거듭제곱 수천만 번) 매우 간단 (지수함수, 팩토리얼 계산만 필요)
계산 결과 정확도 정확한 원래 값 매우 높은 정확도 (조건 만족 시)
실전 예제 오차 거의 없음 거의 없음

반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함