Warning: Undefined variable $position in /home/pystyles/pystyle.info/public_html/wp/wp-content/themes/lionblog/functions.php on line 4897

統計学 – ポアソン分布

統計学 – ポアソン分布

概要

離散確率分布の1つであるポアソン分布 (poisson distribution) について解説します。

Advertisement

確率関数

確率変数 $X$ が次のような確率関数をもつとき、$X$ はパラメータ $\lambda$ のポアソン分布 (poisson distribution) に従うという。

$$ f_X(x) = \begin{cases} \frac{\lambda^x e^{-\lambda}}{x!} & x = 0, 1, \cdots \\ 0 & その他の場合 \end{cases} $$

ただし、$\lambda > 0$ とする。

確率関数である

$e^\lambda$ のマクローリン展開を求めると、

$$ e^\lambda = \sum_{x = 0}^\infty \frac{\lambda^x}{x!} $$

よって、

$$ \sum_{x = 0}^\infty \frac{\lambda^x e^{-\lambda}}{x!} = e^{-\lambda} e^\lambda = 1 $$

期待値

$$ \begin{aligned} E[X] &= \sum_{x = 0}^\infty x \frac{\lambda^x e^{-\lambda}}{x!} \\ &= \sum_{x = 1}^\infty x \frac{\lambda^x e^{-\lambda}}{x!} \quad \because 第0項は0 \\ &= \lambda \sum_{x = 1}^\infty \frac{\lambda^{x – 1} e^{-\lambda}}{(x – 1)!} \end{aligned} $$

ここで、$x’ = x – 1$ とおくと、

$$ \begin{aligned} E[X] &= \lambda \sum_{x’ = 0}^\infty \frac{\lambda^{x’} e^{-\lambda}}{x’!} \\ &= \lambda \quad \because パラメータ \lambda のポアソン分布の総和は1 \end{aligned} $$

分散

$$ \begin{aligned} E[X^2] &= \sum_{x = 0}^\infty x^2 \frac{\lambda^x e^{-\lambda}}{x!} \\ &= \sum_{x = 0}^\infty (x(x – 1) + x) \frac{\lambda^x e^{-\lambda}}{x!} \\ &= \sum_{x = 0}^\infty x(x – 1) \frac{\lambda^x e^{-\lambda}}{x!} + \sum_{x = 0}^\infty x \frac{\lambda^x e^{-\lambda}}{x!} \\ \end{aligned} $$

第1項は

$$ \begin{aligned} \sum_{x = 0}^\infty x(x – 1) \frac{\lambda^x e^{-\lambda}}{x!} &= \sum_{x = 2}^\infty x(x – 1) \frac{\lambda^x e^{-\lambda}}{x!} \quad \because 第0項, 第1項は0 \\ &= \lambda^2 \sum_{x = 0}^\infty \frac{\lambda^{x – 2} e^{-\lambda}}{(x – 2)!} \end{aligned} $$

ここで、$x’ = x – 2$ とおくと、

$$ \begin{aligned} \lambda^2 \sum_{x’ = 0}^\infty \frac{\lambda^{x’} e^{-\lambda}}{x’!} = \lambda^2 \quad \because パラメータ \lambda のポアソン分布の総和は1 \\ \end{aligned} $$

第2項はパラメータ $\lambda$ のポアソン分布の平均なので、

$$ \sum_{x = 0}^\infty x \frac{\lambda^x e^{-\lambda}}{x!} = \lambda $$

したがって、

$$ E[X^2] = \lambda^2 – \lambda = \lambda(\lambda – 1) $$

よって、分散は

$$ Var[X] = E[X^2] – (E[X])^2 = \lambda(1 – \lambda) – \lambda^2 = \lambda $$
Advertisement

標準偏差

$$ Std[X] = \sqrt{Var[X]} = \sqrt{\lambda} $$

積率母関数

$$ \begin{aligned} m_X(t) &= E[e^{Xt}] \\ &= \sum_{x = 0}^\infty e^{tx} \frac{\lambda^x e^{-\lambda}}{x!} \\ &= e^{-\lambda} \sum_{x = 0}^\infty \frac{(\lambda e^t)^x}{x!} \\ \end{aligned} $$

$e^{\lambda e^t}$ のマクローリン展開を求めると、

$$ e^{\lambda e^t} = \sum_{x = 0}^\infty \frac{(\lambda e^t)^x}{x!} $$

なので、

$$ e^{-\lambda} \sum_{x = 0}^\infty \frac{(\lambda e^t)^x}{x!} = e^{-\lambda} e^{\lambda e^t} = e^{\lambda (e^t – 1)} $$

scipy.stats のポアソン分布

scipy.stats.poisson でポアソン分布に従う確率変数を作成できます。

In [1]:
import numpy as np
import seaborn as sns
from matplotlib import pyplot as plt
from scipy.stats import poisson

sns.set(style="white")

X = poisson(mu=4.0)

サンプリング

In [2]:
x = X.rvs(size=5)
print(x)
[5 1 3 4 4]
Advertisement

確率質量関数

In [3]:
x = np.arange(0, 21)
y = X.pmf(x)

fig, ax = plt.subplots()
ax.stem(x, y, use_line_collection=True)
ax.grid()

plt.show()

累積分布関数

In [4]:
x = np.arange(0, 21)
y = X.cdf(x)

fig, ax = plt.subplots()
ax.step(x, y, label="cdf")
ax.grid()

plt.show()

統計量

In [5]:
print("mean", X.mean())
print("var", X.var())
print("std", X.std())
mean 4.0
var 4.0
std 2.0