ポアソン分布に
結果を
ポアソン分布に ついて
そもそも
- 滅多に
起こり 得ない 希少な 事象の 発生数の 確率が 取り得る 分布 ポアソン分布では,
平均と 分散が 等しくなる ポアソン分布となる
現実での 例 (統計学入門 p115 からの 引用) - 交通事故件数
- 大量生産の
不良品数 - 破産件数
- 火災件数
- 砲弾命中数
- 遺伝子の
突然変異数
二項分布と、
ポアソン分布の 関係
p = 0.002
の場合等、 二項分布の 成功確率 p
が十分に 小さい 場合、 二項分布は、 ポアソン分布に 近似できる。
ポアソン分布の 計算が できる ライブラリに ついて
以下、
statsmodels.families.Poisson
と
- numpy.random.poisson
- scipy.stats.poisson
各ライブラリを 使ってみる
numpy.random.poisson
numpy.random.poisson は、
import numpy as np # λ=518/365 試行回数は100000 * 2回 s = np.random.poisson(518./365., [10000,2]) # ヒストグラム描画 %matplotlib inline import matplotlib.pyplot as plt count, bins, ignored = plt.hist(s, 14, normed=True) plt.show()
# ------------------- # 発生確率を2倍にする # ------------------- import numpy as np # λ=518 * 2/365 試行回数は10000 * 2 回 s = np.random.poisson(518. * 2./365., [10000,2]) # ヒストグラム描画 %matplotlib inline import matplotlib.pyplot as plt count, bins, ignored = plt.hist(s, 14, normed=True) plt.show()
scipy.stats.poisson
scipy.stats.poisson を
- 確率質量関数 を
描画する
from scipy.stats import poisson import matplotlib.pyplot as plt fig, ax = plt.subplots(1, 1) # λ を指定する mu = 518 / 365 # mements は 文字列 mvsk を指定すると、 m > 平均 v > 分散 > s > 歪度(わいど) k > 尖度(せんど) が返る mean, var, skew, kurt = poisson.stats(mu, moments='mvsk') print("平均", mean) print("分散", var) print("歪度", skew) print("尖度", kurt) # グラフ描画 x = np.arange(poisson.ppf(0.01, mu), poisson.ppf(0.99, mu)) ax.plot(x, poisson.pmf(x, mu), 'bo', ms=8, label='poisson pmf') ax.vlines(x, 0, poisson.pmf(x, mu), colors='b', lw=5, alpha=0.5) rv = poisson(mu) ax.vlines(x, 0, rv.pmf(x), colors='k', linestyles='-', lw=1, label='frozen pmf') ax.legend(loc='best', frameon=False) plt.show()
平均 1.4191780821917808 分散 1.4191780821917808 歪度 0.8394243293074157 尖度 0.7046332046332047
ヒストグラムの
見方に ついて
個人的な理解では 以下の 通りです。 - ある期間内に、
事象が、 0 回起きる 確率(発生しない 確率)は、 0.24 - ある期間内に、
事象が、 1 回起きる 確率は、 0.35 - ある期間内に、
事象が、 2 回起きる 確率は、 0.24 - ある期間内に、
事象が、 3 回起きる 確率は、 0.12 - ある期間内に、
事象が、 4 回起きる 確率は、 0.04
- ある期間内に、
確率の
計算を する
# scipy.statsから、 poissonをインポートします from scipy.stats import poisson # λ を指定する mu = 518 / 365 # 事象が発生しない確率を求める zero = poisson.pmf(0,mu) print('事象が発生しない確率:', zero) # 事象が1回発生する確率を求める one = poisson.pmf(1,mu) print('事象が発生する確率:', one) # 事象が5回発生する確率を求める five = poisson.pmf(5,mu) print('事象が発生する確率:', five)
事象が発生しない確率: 0.241912767619 事象が発生する確率: 0.343317297608 事象が発生する確率: 0.011605450952
参考
以下、
以上です。
コメント