ヘロログ
統計学

ポアソン分布

ポアソン分布は、「一定時間内に発生する稀な事象の回数」を表す離散型確率分布である。フランスの数学者シメオン・ドニ・ポアソンにちなんで名付けられた。

ポアソン分布が適用できる典型的な例として、1時間に届くメールの件数、1日に発生する交通事故の件数、1ページあたりの誤植の数、放射性物質の崩壊回数などがある。いずれも「稀な事象」が「多数の機会」のなかで発生する状況である。

ポアソン分布は二項分布の極限として導かれる。試行回数 n が大きく、成功確率 p が小さいとき、二項分布はポアソン分布で近似できる。また、ポアソン分布は期待値と分散が等しいという特徴的な性質をもつ。

定義

非負整数値をとる確率変数 Y が、パラメータ \lambda > 0 に対して以下の確率関数をもつとき、Yポアソン分布(Poisson distribution)に従うといい、\text{Po}(\lambda) と表す。

ポアソン分布の確率関数
P(Y = y) = \dfrac{\lambda^y}{y!} e^{-\lambda}, \quad y = 0, 1, 2, \ldots

ここで \lambda は単位時間(または単位区間)あたりの平均発生回数を表し、e \approx 2.71828 は自然対数の底である。

確率の総和が1になることの確認

指数関数のマクローリン展開 e^x = \sum_{y=0}^{\infty} \dfrac{x^y}{y!} を用いると

\sum_{y=0}^{\infty} P(Y = y) = \sum_{y=0}^{\infty} \dfrac{\lambda^y}{y!} e^{-\lambda} = e^{-\lambda} \sum_{y=0}^{\infty} \dfrac{\lambda^y}{y!} = e^{-\lambda} \cdot e^{\lambda} = 1

となり、確率関数の条件を満たす。

確率分布のグラフ

以下は \text{Po}(3) の確率関数のグラフである。

P(Y=y) 0.25 0.19 0.125 0.06 0 y 0 1 2 3 4 5 6 7 8 9 E[Y]=λ=3
図1: ポアソン分布 Po(3) の確率関数

ポアソン分布は \lambda が小さいときは右に裾を引く形になり、\lambda が大きくなると左右対称に近づく。

二項分布からの導出

ポアソン分布は、二項分布 \text{Bin}(n, p) において np = \lambda を固定したまま n \to \infty(したがって p = \dfrac{\lambda}{n} \to 0)としたときの極限として得られる。

二項分布の確率関数は

P(Y = y) = {}_n C_y \, p^y (1-p)^{n-y} = {}_n C_y \left(\dfrac{\lambda}{n}\right)^y \left(1 - \dfrac{\lambda}{n}\right)^{n-y}

これを変形すると

\begin{aligned} P(Y = y) &= \dfrac{n!}{y!(n-y)!} \cdot \dfrac{\lambda^y}{n^y} \cdot \left(1 - \dfrac{\lambda}{n}\right)^{n-y} \\[8pt] &= \dfrac{\lambda^y}{y!} \cdot \dfrac{n(n-1)\cdots(n-y+1)}{n^y} \cdot \left(1 - \dfrac{\lambda}{n}\right)^{n} \cdot \left(1 - \dfrac{\lambda}{n}\right)^{-y} \end{aligned}

n \to \infty のとき

  • \dfrac{n(n-1)\cdots(n-y+1)}{n^y} = 1 \cdot \left(1-\dfrac{1}{n}\right) \cdots \left(1-\dfrac{y-1}{n}\right) \to 1
  • \left(1 - \dfrac{\lambda}{n}\right)^{n} \to e^{-\lambda}(指数関数の定義)
  • \left(1 - \dfrac{\lambda}{n}\right)^{-y} \to 1

したがって

{}_n C_y \left(\dfrac{\lambda}{n}\right)^y \left(1 - \dfrac{\lambda}{n}\right)^{n-y} \to \dfrac{\lambda^y}{y!} e^{-\lambda} \quad (n \to \infty)
ポアソン近似

n が大きく p が小さいとき、二項分布 \text{Bin}(n, p) はポアソン分布 \text{Po}(np) で近似できる。目安として n \geq 100 かつ np \leq 10 のとき、近似精度が良い。

期待値と分散

ポアソン分布の大きな特徴は、期待値と分散が等しく、ともに \lambda に等しいことである。

確率母関数

まず確率母関数を求める。

\begin{aligned} G(s) &= E[s^Y] = \sum_{y=0}^{\infty} s^y \cdot \dfrac{\lambda^y}{y!} e^{-\lambda} \\[8pt] &= e^{-\lambda} \sum_{y=0}^{\infty} \dfrac{(\lambda s)^y}{y!} \\[8pt] &= e^{-\lambda} \cdot e^{\lambda s} = e^{\lambda(s-1)} \end{aligned}
確率母関数
G(s) = e^{\lambda(s-1)}

期待値の導出

確率母関数を微分して s = 1 を代入すると期待値が得られる。

G'(s) = \lambda e^{\lambda(s-1)}
E[Y] = G'(1) = \lambda e^{\lambda(1-1)} = \lambda e^0 = \lambda
期待値
E[Y] = \lambda

分散の導出

分散は V[Y] = E[Y(Y-1)] + E[Y] - (E[Y])^2 を用いて求める。まず E[Y(Y-1)] = G''(1) を計算する。

G''(s) = \lambda^2 e^{\lambda(s-1)}
E[Y(Y-1)] = G''(1) = \lambda^2 e^0 = \lambda^2

したがって

\begin{aligned} V[Y] &= E[Y(Y-1)] + E[Y] - (E[Y])^2 \\[5pt] &= \lambda^2 + \lambda - \lambda^2 = \lambda \end{aligned}
分散
V[Y] = \lambda
ポイント

ポアソン分布 \text{Po}(\lambda) では

  • 期待値:E[Y] = \lambda
  • 分散:V[Y] = \lambda
  • 標準偏差:\sigma = \sqrt{\lambda}
  • 期待値 = 分散という特徴をもつ

この結果は、二項分布からの極限としても確認できる。\text{Bin}(n, p)np = \lambda のとき、期待値は np = \lambda、分散は np(1-p) = \lambda\left(1 - \dfrac{\lambda}{n}\right) \to \lambdan \to \infty)となる。

再生性

ポアソン分布にも再生性がある。

ポアソン分布の再生性

Y_1 \sim \text{Po}(\lambda_1)Y_2 \sim \text{Po}(\lambda_2) で、Y_1Y_2 が独立ならば

Y_1 + Y_2 \sim \text{Po}(\lambda_1 + \lambda_2)

これは確率母関数を用いて証明できる。

\begin{aligned} E[s^{Y_1 + Y_2}] &= E[s^{Y_1}] \times E[s^{Y_2}] \\[5pt] &= e^{\lambda_1(s-1)} \times e^{\lambda_2(s-1)} \\[5pt] &= e^{(\lambda_1 + \lambda_2)(s-1)} \end{aligned}

これは \text{Po}(\lambda_1 + \lambda_2) の確率母関数に一致する。

再生性は実用上も重要である。たとえば、1時間あたり平均3件の電話がかかってくるとき、2時間で平均6件の電話がかかってくることを意味する。

計算例

例1:コールセンターの着信

あるコールセンターには1時間あたり平均5件の電話がかかってくる。1時間に電話が1件もかかってこない確率、および3件以下の確率を求めよ。

【解答】

着信件数 Y\text{Po}(5) に従う。

電話が1件もかかってこない確率は

P(Y = 0) = \dfrac{5^0}{0!} e^{-5} = e^{-5} \approx 0.0067

3件以下の確率は

\begin{aligned} P(Y \leq 3) &= P(Y=0) + P(Y=1) + P(Y=2) + P(Y=3) \\[5pt] &= e^{-5}\left(1 + 5 + \dfrac{25}{2} + \dfrac{125}{6}\right) \\[5pt] &= e^{-5} \times 39.33 \approx 0.265 \end{aligned}

例2:印刷物の誤植

ある本は1ページあたり平均0.5個の誤植がある。10ページの章に誤植が1つもない確率を求めよ。

【解答】

1ページあたりの誤植数が \text{Po}(0.5) に従うとすると、再生性より10ページでの誤植数は \text{Po}(5) に従う。

P(Y = 0) = e^{-5} \approx 0.0067

約0.67%の確率で誤植が1つもない。

練習問題

問1. ある交差点では1時間あたり平均2件の事故が発生する。1時間に事故が3件以上発生する確率を求めよ。

事故件数 Y\text{Po}(2) に従う。

\begin{aligned} P(Y \geq 3) &= 1 - P(Y \leq 2) \\[5pt] &= 1 - e^{-2}\left(1 + 2 + \dfrac{4}{2}\right) \\[5pt] &= 1 - 5e^{-2} \approx 1 - 0.677 = 0.323 \end{aligned}
問2. \text{Po}(\lambda) において、P(Y = 0) = P(Y = 1) となる \lambda の値を求めよ。
P(Y = 0) = e^{-\lambda}, \quad P(Y = 1) = \lambda e^{-\lambda}

P(Y = 0) = P(Y = 1) より

e^{-\lambda} = \lambda e^{-\lambda}

e^{-\lambda} > 0 なので両辺を割ると \lambda = 1

問3. Y_1 \sim \text{Po}(2)Y_2 \sim \text{Po}(3) が独立のとき、Y_1 + Y_2 の期待値と分散を求めよ。

再生性より Y_1 + Y_2 \sim \text{Po}(5) である。

E[Y_1 + Y_2] = 5, \quad V[Y_1 + Y_2] = 5

まとめ

項目 内容
分布名 ポアソン分布(Poisson distribution)
記法 \text{Po}(\lambda)
確率関数 P(Y=y) = \dfrac{\lambda^y}{y!} e^{-\lambda} (y = 0, 1, 2, \ldots
期待値 E[Y] = \lambda
分散 V[Y] = \lambda
確率母関数 G(s) = e^{\lambda(s-1)}
再生性 \text{Po}(\lambda_1) + \text{Po}(\lambda_2) = \text{Po}(\lambda_1 + \lambda_2)(独立の場合)
二項分布との関係 \text{Bin}(n, p)n \to \inftynp = \lambda 固定のとき近似可能

Pythonで実装する

Pythonを使ってポアソン分布の計算やシミュレーションを行う。

poisson_distribution.py
import numpy as np
from scipy import stats

# パラメータ設定
lam = 3  # λ

print(f"=== ポアソン分布 Po({lam}) ===")
print(f"期待値: E[Y] = λ = {lam}")
print(f"分散  : V[Y] = λ = {lam}")
print(f"標準偏差: σ = √λ = {np.sqrt(lam):.4f}")

# scipy.statsを使用
dist = stats.poisson(lam)
print(f"\nscipy.statsによる確認:")
print(f"期待値: {dist.mean()}")
print(f"分散  : {dist.var()}")

# 確率関数
print(f"\n確率関数 P(Y=y):")
for y in range(10):
    prob = dist.pmf(y)
    bar = "█" * int(prob * 40)
    print(f"  P(Y={y}) = {prob:.4f} {bar}")

# 累積確率
print(f"\nP(Y ≤ 3) = {dist.cdf(3):.4f}")
print(f"P(Y ≥ 5) = {1 - dist.cdf(4):.4f}")

# 二項分布との比較
print(f"\n--- 二項分布との比較 (np=λ={lam}) ---")
for n in [30, 100, 1000]:
    p = lam / n
    binom = stats.binom(n, p)
    print(f"Bin({n}, {p:.4f}): E={binom.mean():.2f}, V={binom.var():.4f}")
print(f"Po({lam}):       E={dist.mean():.2f}, V={dist.var():.4f}")

# シミュレーション
np.random.seed(42)
samples = stats.poisson.rvs(lam, size=10000)
print(f"\nシミュレーション(10000回):")
print(f"標本平均: {np.mean(samples):.4f}")
print(f"標本分散: {np.var(samples, ddof=0):.4f}")
=== ポアソン分布 Po(3) === 期待値: E[Y] = λ = 3 分散 : V[Y] = λ = 3 標準偏差: σ = √λ = 1.7321 scipy.statsによる確認: 期待値: 3.0 分散 : 3.0 確率関数 P(Y=y): P(Y=0) = 0.0498 █ P(Y=1) = 0.1494 █████ P(Y=2) = 0.2240 ████████ P(Y=3) = 0.2240 ████████ P(Y=4) = 0.1680 ██████ P(Y=5) = 0.1008 ████ P(Y=6) = 0.0504 ██ P(Y=7) = 0.0216 P(Y=8) = 0.0081 P(Y=9) = 0.0027 P(Y ≤ 3) = 0.6472 P(Y ≥ 5) = 0.1847 --- 二項分布との比較 (np=λ=3) --- Bin(30, 0.1000): E=3.00, V=2.7000 Bin(100, 0.0300): E=3.00, V=2.9100 Bin(1000, 0.0030): E=3.00, V=2.9910 Po(3): E=3.00, V=3.0000 シミュレーション(10000回): 標本平均: 2.9946 標本分散: 2.9666

二項分布との比較から、n が大きくなるほど分散がポアソン分布の値 \lambda に近づくことが確認できる。