Poisson Distribution, 포아송 분포
🤗 Poisson Distributuion
포아송 분포에 대해서 알아보고, 파이썬을 통해서 간단한 예제 문제를 풀도록 하겠습니다.
파이썬 문제는https://wikidocs.net/165588를 참고했습니다.
문제
파이썬으로 포아송 분포Poisson distribution를 구현해보세요.
베이스라인의 code here 을 채우세요.
베이스라인
from scipy.stats import poisson
import matplotlib.pyplot as plt
def pmf_poisson_graphing(lamb):
'''
주어진 lambda에 대한 확률값을 시각화한다.
x의 범위는 [0, 3*lambda]이다.
'''
xs = # code here
ps = # code here
fig, ax = plt.subplots()
ax.plot(
# code here
marker='o'
)
plt.show()
Input
pmf_poisson_graphing(3)
pmf_poisson_graphing(7)
Output
베이스 라인 (정답 - 더보기 클릭)
import numpy as np
from scipy.stats import poisson
import matplotlib.pyplot as plt
def pmf_poisson_graphing(lamb):
'''
주어진 lambda에 대한 확률값을 시각화한다.
x의 범위는 [0, 3*lambda]이다.
'''
xs = np.arange(0, 3 * lamb + 1)
ps = poisson.pmf(xs, lamb)
fig, ax = plt.subplots()
ax.plot(
xs, ps,
marker='o'
)
ax.set_title(f'Poisson_pmf({lamb})')
ax.set_xlabel('Events')
ax.set_ylabel('Prob')
plt.xticks(range(0, len(xs)))
plt.grid(True)
plt.show()
포아송 분포에 대해서 알아보는 시간
흔히들 말하는 '단위 시간/공간 당 사건의 발생 횟수'에 대한 확률 분포로 일정 시간 동안 몇건의 구매가 발생했는지. 하루에 커피를 몇잔을 판매 하는지. 다음날은 몇잔을 파는지 이런 판매량이나 발생량에 대해서 단위 시간 또는 단위 공간에서 특정 사건이 발생하는 횟수를 나타내는 이산 확률 분포입니다.
포아송 분포의 특징
모수
포아송 분포는 하나의 모두 $\lambda$(람다)를 가지며, 이는 평균 발생 횟수를 뜻합니다.
확률 질량 함수
$$P(X=x;\lambda)=\frac{\lambda^{x}e^{-\lambda}}{x!}, x=0,1,2,... $$
- $X$는 사건 발생 횟수를 나타내는 확률 변수
- $k$는 특정 사건 발생 횟수
- $e$는 자연 상수(약 2.718)
평균과 분산
포아송 분포의 평균과 분산은 모두 λ로 동일합니다.
$$ E(X) = \lambda, \quad Var(X) = \lambda $$
이항 분포와의 관계
포아송 분포는 이항 분포의 특수한 경우로 볼 수 있습니다. 이항 분포에서 n (시행 횟수)이 매우 크고 p (성공 확률)이 매우 작을 때, 포아송 분포로 근사할 수 있습니다.
$$ \lim_{n \to \infty, p \to 0} \binom{n}{k} p^k (1-p)^{n-k} = \frac{e^{-\lambda} \lambda^k}{k!} \quad (\lambda = np) $$
활용
포아송 분포는 다음과 같은 경우에 주로 사용됩니다.
- 단위 시간 또는 단위 공간당 발생하는 사건 횟수 모델링
- 대기 행렬 이론, 통계학, 보험, 금융 등 다양한 분야에서 활용
주의 사항
- 포아송 분포는 사건 발생이 독립적이고 평균 발생률이 일정하다는 가정하에 적용 가능
- 실제 데이터가 과산포 현상을 보이는 경우 음이항 분포 등 다른 분포 고려
예시
어느 카페에서 하루에 판매되는 커피 잔의 수가 평균 100잔이라고 가정하면, 포아송 분포를 이용하여 특정 날에 판매되는 커피 잔 수를 확률적으로 모델링할 수 있습니다. 예를 들어, 특정 날에 110잔의 커피가 판매될 확률은 다음과 같이 계산할 수 있습니다.
$$ P(X = 110) = \frac{e^{-100} 100^{110}}{110!} \approx 0.0268 $$
포아송 분포에서 exp를 사용하는 이유
왜 포아송 분포에서는 $e$를 밑으로 하는 지수 함수를 사용했을지에 대해서 궁금해서 찾아본 결과. 포아송의 확률 질량 함수는 특정 사건 k번 발생할 확률을 나타내는데, 이 과정에서 자연 상수 $e$와 지수 함수가 자연스럽게 등장하게 되는데, 포아송 분포가 이상 분포의 극한의 형태이기 때문에 사용하게 됨.
exp 함수는 미분과 적분에 용이하며, 다양한 수학적 성질을 가지고 있기 때문에 포아송 분포와 관련된 계산을 할 때 단순화 할 수 있습니다. 이를 통해서 포아송 분포의 평균, 분산을 계산하거나 다른 분포와의 관계를 유도할 때 유용하게 사용 합니다.
즉, 포아송에서 사용하는 exp 함수를 통해서 pmf, 계산의 편의성, 통계적 의미들을 이해하고 활용하기에 용이하기 때문에 필수적인 요소로 사용됩니다.