はしくれエンジニアもどきのメモ

情報系技術・哲学・デザインなどの勉強メモ・備忘録です。

Poisson分布の再生性(Reproductive property)の証明とシミュレーション

Poisson分布の再生性(Reproductive property)の証明とシミュレーション

Poisson分布の再生性(Reproductive property)の証明のメモ.

ポアソン分布の再生性の証明

再生性とは,ある分布に従う2つの確率変数の和 が同じ種類の分布に従うという意味である.正規分布が有名. ポアソン分布も再生性を持つので,その証明メモである.

ポアソン分布によらず一般的な離散確率変数の和 \(Z\) の分布は,以下の式で表される.

$$ P(Z = z) = P(\psi(X, Y) = z) = \sum_{(x, y) \in D}{p(x, y)} $$

ただし、

$$ D = {(x, y)|\psi(x, y) = x+y = z} $$

これを書き直すと,

$$ P(Z = z) = P(X + Y = z) = \sum_{x+y = z}{p(x, y)} $$

さらに\(X, Y\) が独立であれば,それぞれの積で表せる.

$$ P(Z = z) = P(X + Y = z) = \sum{x+y = z}{p(x, y)} = \sum{x+y = z}{P(X=x)P(Y=y)} $$

\(x=k\)の値を基準に \(sum\) を書き直せば,

$$ P(Z = z) = P(X + Y = z) = \sum{x+y = z}{P(X=x)P(Y=y)} = \sum{x=0}^{z}{P(X=x)P(Y=z-x)} $$

ここで,\( X \sim Po(\lambda_x), Y \sim Po(\lambda_y)\) として, それぞれの確率(質量)関数は,

$$ P(X=k) = \frac{\lambda_xk}{k!} e^{-\lambda_x} \ P(Y=k) = \frac{\lambda_yk}{k!} e^{-\lambda_y} $$  

確率変数の和の分布は,

\begin{eqnarray} P(Z = z) = P(X + Y = z) &=& \sum{x=0}^{z}{P(X=x)P(Y=z-x)} \&=& \sum{x=0}^{z}{\frac{\lambda_xx}{x!} e^{-\lambda_x} \frac{\lambda_y^{z-x}}{(z-x)!} e^{-\lambda_y}}\ &=& e^{-(\lambda_x + \lambda_y)} \sum{x=0}^{z}{\frac{\lambda_xx}{x!} \frac{\lambda_y^{z-x}}{(z-x)!} }\ &=& e^{-(\lambda_x + \lambda_y)} \frac{z!}{z!} \sum{x=0}^{z}{\frac{1}{x!(z-x)!} \lambda_xx \lambda_y^{z-x} }\ &=& \frac{e^{-(\lambda_x + \lambda_y)}}{z!} \sum{x=0}^{z}{\frac{z!}{x!(z-x)!} \lambda_xx \lambda_y^{z-x} }\ &=& \frac{e^{-(\lambda_x + \lambda_y)}}{z!} \sum{x=0}^{z}{{}z \mathrm{ C }x \lambda_xx \lambda_y^{z-x} } \ \end{eqnarray}

二項定理より,

\begin{eqnarray} P(Z = z) &=& \frac{e^{-(\lambda_x + \lambda_y)}}{z!} \sum{x=0}^{z}{{}z \mathrm{ C }_x \lambda_xx \lambda_y^{z-x} } \ &=& \frac{e^{-(\lambda_x + \lambda_y)}}{z!} (\lambda_x + \lambda_y)z \ &=& \frac{(\lambda_x + \lambda_y)z}{z!} e^{-(\lambda_x + \lambda_y)} \ \end{eqnarray}

よって,以下のように表すことができ,再生性を満たす.

\begin{eqnarray} Z = X+Y \sim Po(\lambda_x + \lambda_y) \end{eqnarray}

以上より,互いに独立で,\(X_1, X_2, \cdots, X_n \sim Po(\lambda)\) とすると,その和は, $$ X = \sum_{i=1}^n{X_i} \sim Po(n \lambda) $$ となる.

再生性のシミュレーション

数式で証明できたけど,本当に和もポアソン分布に従うの?ってことで シミューレションしてみる.流れとしては,

  1. \( X \sim Po(2), Y \sim Po(3) \) として, それぞれ1000個のポアソン乱数を発生させる.

  2. 頻度をカウントし,正規化してプロット.

  3. 2つのポアソン乱数の和を求めて, 同様にして頻度をカウントし,正規化してプロット.

  4. 和 \(X+Y \sim Po(5)\) に従っているはずなので,確率質量関数(pmf)をプロットしてある程度重なっているか確認.

使用環境は以下である.

環境

  • conda: 4.2.12
    • Python 3.5.1
    • scipy 0.18.1
    • pandas 0.18.1
    • jupyter 1.0.0

コードは以下のようになる.


%matplotlib inline
plt.figure(figsize=(5, 5))

size=1000

X = stats.poisson.rvs(2, size=size)
Y = stats.poisson.rvs(3, size=size)
Z = X + Y

freqX = pd.value_counts(X, sort=False)
freqY = pd.value_counts(Y, sort=False)
freqZ = pd.value_counts(Z, sort=False)

count = freqZ.count()

norm_freqX = freqX / size
norm_freqY = freqY / size
norm_freqZ = freqZ / size

plt.plot(norm_freqX, "--", label="X=Po(2)(random)")
plt.plot(norm_freqY, "--", label="Y=Po(3)(random)")
plt.plot(norm_freqZ, "-r", label="X+Y")

# Po(5)
k = sp.arange(0, count+1, 1)
plt.bar(k-0.5/2, stats.poisson.pmf(k, mu=5), color="orange", label="Po(5)(true)", width=0.5)

plt.grid()
plt.xlim(-0.5, count)
plt.legend()
plt.xlabel("k")
plt.ylabel("Prob")
plt.title("Poisson's Reproductive Property Simulation", y=-.2)
plt.tight_layout()
plt.show()

結果は,以下のようになりました. の実線が,発生させた乱数の和(頻度を正規化した)で, オレンジの棒グラフが真の \( Po(5) \) の確率の値です. 大体合ってますねー

Poisson's Reproductive Property Simulation
Fig. Poisson's Reproductive Property Simulation