Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

幾何分布

概要

独立なベルヌーイ試行を行い、初めて成功するまでの失敗回数(または試行回数)の分布。指数分布の離散版とみなすことができ、離散確率分布の中で唯一の無記憶性をもつ分布である。

確率質量関数

幾何分布の定義には2つの慣習がある。

失敗回数版(主な定義)

成功するまでの 失敗回数 XXkk となる確率は

P(X=kp)=p(1p)k,k=0,1,2,P(X=k \mid p) = p(1-p)^k, \quad k=0,1,2,\dots

成功するまでの失敗が kk 回、成功が1回という試行になるため、成功の確率を pp、失敗の確率を 1p1-p とおくとこの式が導かれる。

試行回数版(別の定義)

初めて成功するまでの 試行回数 YYkk となる確率は

P(Y=kp)=p(1p)k1,k=1,2,3,P(Y=k \mid p) = p(1-p)^{k-1}, \quad k=1,2,3,\dots

Y=X+1Y = X + 1 の関係にある。scipyの geom はこちらの試行回数版を採用している。

  • pp: 各試行での成功確率

累積分布関数

失敗回数版の累積分布関数は、

F(k)=P(Xk)=1(1p)k+1,k=0,1,2,F(k) = P(X \leq k) = 1 - (1-p)^{k+1}, \quad k = 0, 1, 2, \dots

期待値・分散

E[X]=1ppE[X] = \frac{1-p}{p}
V[X]=1pp2V[X] = \frac{1-p}{p^2}

期待値の導出

q=1pq = 1 - p とおく。

E[X]=k=0kpqk=pk=0kqk=pqk=1kqk1\begin{align} E[X] &= \sum_{k=0}^{\infty} k \cdot p q^k \\ &= p \sum_{k=0}^{\infty} k q^k \\ &= p \cdot q \sum_{k=1}^{\infty} k q^{k-1} \end{align}

ここで等比級数 k=0qk=11q\sum_{k=0}^{\infty} q^k = \frac{1}{1-q} の両辺を qq で微分すると

k=1kqk1=1(1q)2=1p2\sum_{k=1}^{\infty} k q^{k-1} = \frac{1}{(1-q)^2} = \frac{1}{p^2}

したがって、

E[X]=pq1p2=qp=1ppE[X] = p \cdot q \cdot \frac{1}{p^2} = \frac{q}{p} = \frac{1-p}{p}

分散の導出

V[X]=E[X2](E[X])2V[X] = E[X^2] - (E[X])^2 を用いる。E[X(X1)]E[X(X-1)] を求めるため、等比級数の2階微分を利用する。

k=2k(k1)qk2=2(1q)3=2p3\sum_{k=2}^{\infty} k(k-1) q^{k-2} = \frac{2}{(1-q)^3} = \frac{2}{p^3}
E[X(X1)]=pq22p3=2q2p2E[X(X-1)] = p q^2 \cdot \frac{2}{p^3} = \frac{2q^2}{p^2}
E[X2]=E[X(X1)]+E[X]=2q2p2+qp=2q2+qpp2=q(2q+p)p2=q(q+1)p2E[X^2] = E[X(X-1)] + E[X] = \frac{2q^2}{p^2} + \frac{q}{p} = \frac{2q^2 + qp}{p^2} = \frac{q(2q + p)}{p^2} = \frac{q(q + 1)}{p^2}
V[X]=E[X2](E[X])2=q(q+1)p2q2p2=qp2=1pp2V[X] = E[X^2] - (E[X])^2 = \frac{q(q+1)}{p^2} - \frac{q^2}{p^2} = \frac{q}{p^2} = \frac{1-p}{p^2}
import matplotlib.pyplot as plt
import numpy as np
from scipy.stats import geom

fig, axes = plt.subplots(1, 2, figsize=[8, 3])

for p in [0.2, 0.5, 0.8]:
    k = np.arange(0, 15)
    # scipy's geom uses "number of trials" convention, shift by 1
    pmf = geom.pmf(k + 1, p=p)
    axes[0].bar(k + (p - 0.5) * 0.3, pmf, width=0.25, alpha=0.7, label=f"p={p}")

    cdf = geom.cdf(k + 1, p=p)
    axes[1].step(k, cdf, where='mid', label=f"p={p}")

axes[0].set(title="PMF", xlabel="k\uff08\u5931\u6557\u56de\u6570\uff09", ylabel="P(X=k)")
axes[0].legend()
axes[1].set(title="CDF", xlabel="k", ylabel="F(k)")
axes[1].legend()
fig.tight_layout()
fig.show()

性質

  • 無記憶性: P(X>s+tX>s)=P(X>t)P(X > s + t \mid X > s) = P(X > t)。離散分布の中で無記憶性を持つのは幾何分布のみ。これは指数分布の無記憶性の離散版。

  • 連続版の対応物は指数分布

  • Geo(p)\text{Geo}(p) は負の二項分布 NB(1,p)\text{NB}(1, p) の特殊ケース

応用例

  • アポ取りの電話をかけて何回目にアポが取れるか

  • 製造ラインで初めて不良品が出るまでの良品数

  • サイコロで初めて6が出るまでの回数

  • ネットワーク通信で初めてパケットロスが起きるまでの成功送信数

参考文献