ヘロログ
統計学

幾何分布

幾何分布は、ベルヌーイ分布に従う試行を繰り返したとき「初めて成功するまでに何回失敗するか」を表す離散型確率分布である。確率関数が等比数列(幾何数列)の形をしていることから、この名前がついている。

たとえば、サイコロを振って6が出るまでに何回6以外が出るか、製品検査で不良品が見つかるまでに何個の良品を検査するか、といった問題に幾何分布が適用できる。

幾何分布は離散型確率分布の中で唯一無記憶性をもつ分布であり、これは連続型分布における指数分布に対応する重要な性質である。

定義

成功確率 p0 < p < 1)の独立なベルヌーイ試行を繰り返したとき、初めて成功するまでに起こる失敗の回数 X が従う分布を幾何分布(geometric distribution)といい、\text{Geo}(p) と表す。

幾何分布の確率関数
P(X = x) = p q^x, \quad x = 0, 1, 2, \ldots

ただし q = 1 - p

この確率関数は次のように理解できる。X = x となるのは「最初の x 回すべて失敗し、その次(x+1 回目)に成功する」ときであり、その確率は

\underbrace{q \times q \times \cdots \times q}_{x \text{ 回}} \times p = q^x \times p = pq^x

となる。確率関数が pq^x という等比数列(幾何数列)の形をしているため、「幾何分布」と呼ばれる。

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

等比級数の公式を用いると

\sum_{x=0}^{\infty} pq^x = p \sum_{x=0}^{\infty} q^x = p \cdot \dfrac{1}{1-q} = \dfrac{p}{p} = 1
定義に関する注意

「初めて成功するまでの試行回数 W」を幾何分布と呼ぶ教科書もある。その場合 W = X + 1 であり、確率関数は P(W = w) = pq^{w-1}w = 1, 2, 3, \ldots)となる。本記事では失敗回数 X を基本として説明する。

確率分布のグラフ

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

P(X=x) 0.30 0.22 0.15 0.07 0 x 0 1 2 3 4 5 6 7 8 9 ... E[X]≈2.33
図1: 幾何分布 Geo(0.3) の確率関数

幾何分布は常に x = 0 で最大となり、x が増えるにつれて指数関数的に減少する。p が大きいほど減衰が速く、p が小さいほど裾が長くなる。

確率母関数

幾何分布の確率母関数を導出する。

\begin{aligned} G(s) &= E[s^X] = \sum_{x=0}^{\infty} s^x \cdot pq^x \\[8pt] &= p \sum_{x=0}^{\infty} (sq)^x \\[8pt] &= p \cdot \dfrac{1}{1 - sq} = \dfrac{p}{1 - qs} \end{aligned}

ただし、等比級数が収束する条件 |sq| < 1、すなわち |s| < \dfrac{1}{q} が必要である。

確率母関数
G(s) = \dfrac{p}{1 - qs}, \quad |s| < \dfrac{1}{q}

期待値と分散

確率母関数を用いて期待値と分散を導出する。

期待値の導出

確率母関数を微分すると

G'(s) = \dfrac{d}{ds}\left(\dfrac{p}{1-qs}\right) = \dfrac{pq}{(1-qs)^2}

s = 1 を代入すると

E[X] = G'(1) = \dfrac{pq}{(1-q)^2} = \dfrac{pq}{p^2} = \dfrac{q}{p}
期待値
E[X] = \dfrac{q}{p} = \dfrac{1-p}{p}

この結果は直感的にも理解できる。「失敗回数の期待値」と「成功回数(= 1)」の比は、「失敗確率 q」と「成功確率 p」の比に等しい。

分散の導出

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

G''(s) = \dfrac{d}{ds}\left(\dfrac{pq}{(1-qs)^2}\right) = \dfrac{2pq^2}{(1-qs)^3}
E[X(X-1)] = G''(1) = \dfrac{2pq^2}{p^3} = \dfrac{2q^2}{p^2}

したがって

\begin{aligned} V[X] &= E[X(X-1)] + E[X] - (E[X])^2 \\[5pt] &= \dfrac{2q^2}{p^2} + \dfrac{q}{p} - \left(\dfrac{q}{p}\right)^2 \\[5pt] &= \dfrac{2q^2}{p^2} + \dfrac{q}{p} - \dfrac{q^2}{p^2} \\[5pt] &= \dfrac{q^2}{p^2} + \dfrac{q}{p} = \dfrac{q^2 + qp}{p^2} = \dfrac{q(q+p)}{p^2} = \dfrac{q}{p^2} \end{aligned}
分散
V[X] = \dfrac{q}{p^2} = \dfrac{1-p}{p^2}
ポイント

幾何分布 \text{Geo}(p)(失敗回数)では

  • 期待値:E[X] = \dfrac{q}{p}
  • 分散:V[X] = \dfrac{q}{p^2}
  • 標準偏差:\sigma = \dfrac{\sqrt{q}}{p}

試行回数 W = X + 1 では、E[W] = \dfrac{1}{p}V[W] = \dfrac{q}{p^2}

無記憶性

幾何分布は離散型確率分布の中で唯一、無記憶性(memoryless property)をもつ。

無記憶性

X \sim \text{Geo}(p) のとき、任意の非負整数 t_1, t_2 に対して

P(X \geq t_1 + t_2 \mid X \geq t_1) = P(X \geq t_2)

これは「すでに t_1 回失敗したという条件のもとで、さらに t_2 回以上失敗する確率」が「最初から t_2 回以上失敗する確率」と等しいことを意味する。過去の失敗回数に関係なく、将来の失敗確率は変わらない。

証明

まず P(X \geq t) を求める。「X \geq t」は「最初の t 回がすべて失敗」と同値なので

P(X \geq t) = q^t

条件付き確率の定義より

\begin{aligned} P(X \geq t_1 + t_2 \mid X \geq t_1) &= \dfrac{P(X \geq t_1 + t_2)}{P(X \geq t_1)} \\[8pt] &= \dfrac{q^{t_1 + t_2}}{q^{t_1}} = q^{t_2} = P(X \geq t_2) \end{aligned}

この性質は、独立なベルヌーイ試行の「リセット」と解釈できる。何回失敗しても、次の試行は常に成功確率 p で新しく始まる。

幾何分布が唯一の無記憶分布であることの証明

上では幾何分布が無記憶性を持つことを示した。逆に、無記憶性を持つ離散型確率分布は幾何分布に限ることを証明する。

非負整数値をとる確率変数 T が無記憶性を持つと仮定する。生存関数を G(n) = P(T > n) と定義する。

無記憶性の定義より

P(T > m + n \mid T > m) = P(T > n)

条件付き確率の定義を用いると

\dfrac{P(T > m + n)}{P(T > m)} = P(T > n)

すなわち

G(m + n) = G(m) \cdot G(n)

これは指数法則である。m = n = 1 とすると G(2) = G(1)^2、続けて G(3) = G(2) \cdot G(1) = G(1)^3、一般に

G(n) = G(1)^n, \quad n = 0, 1, 2, \ldots

G(n) = P(T > n) \to 0n \to \infty)であるから、0 < G(1) < 1 でなければならない。q = G(1) とおくと

G(n) = q^n

よって確率関数は

\begin{aligned} P(T = n) &= P(T > n - 1) - P(T > n) \\[5pt] &= G(n-1) - G(n) = q^{n-1} - q^n \\[5pt] &= q^{n-1}(1 - q) = (1-q) q^{n-1} \end{aligned}

p = 1 - q とおけば P(T = n) = p q^{n-1}n = 1, 2, 3, \ldots)となり、これは試行回数版の幾何分布である。

定理

非負整数値をとる確率分布が無記憶性を持つならば、それは幾何分布である。連続型では、指数分布が唯一の無記憶分布である。

計算例

例1:サイコロ

サイコロを振って6が出るまで試行を続ける。6以外が出る回数 X の期待値と、ちょうど3回6以外が出る確率を求めよ。

【解答】

成功(6が出る)確率は p = \dfrac{1}{6}、失敗確率は q = \dfrac{5}{6} である。X \sim \text{Geo}\left(\dfrac{1}{6}\right)

E[X] = \dfrac{q}{p} = \dfrac{5/6}{1/6} = 5

ちょうど3回6以外が出る確率は

P(X = 3) = pq^3 = \dfrac{1}{6} \times \left(\dfrac{5}{6}\right)^3 = \dfrac{125}{1296} \approx 0.0965

例2:製品検査

不良品率5%の製品を検査する。初めて不良品が見つかるまでに検査する良品の個数 X の期待値と分散を求めよ。

【解答】

成功(不良品発見)確率は p = 0.05q = 0.95 である。

E[X] = \dfrac{q}{p} = \dfrac{0.95}{0.05} = 19
V[X] = \dfrac{q}{p^2} = \dfrac{0.95}{0.0025} = 380

平均19個の良品を検査した後に不良品が見つかる。

練習問題

問1. コインを投げて表が出るまで続ける。表が出るまでの試行回数 W の期待値を求めよ。

p = 0.5 のとき、失敗回数 X \sim \text{Geo}(0.5) である。

試行回数は W = X + 1 なので

E[W] = E[X] + 1 = \dfrac{q}{p} + 1 = \dfrac{0.5}{0.5} + 1 = 2

または E[W] = \dfrac{1}{p} = \dfrac{1}{0.5} = 2

問2. X \sim \text{Geo}(0.4) のとき、P(X \geq 5 \mid X \geq 3) を求めよ。

無記憶性より

P(X \geq 5 \mid X \geq 3) = P(X \geq 2) = q^2 = 0.6^2 = 0.36
問3. \text{Geo}(p) において、P(X = 0) > 0.9 となる p の範囲を求めよ。

P(X = 0) = p なので

p > 0.9

1回目で成功する確率が90%を超えるには、成功確率が0.9より大きければよい。

まとめ

項目 内容
分布名 幾何分布(geometric distribution)
記法 \text{Geo}(p)
確率変数 初めて成功するまでの失敗回数 X
確率関数 P(X=x) = pq^x (x = 0, 1, 2, \ldots
期待値 E[X] = \dfrac{q}{p}
分散 V[X] = \dfrac{q}{p^2}
確率母関数 G(s) = \dfrac{p}{1-qs} (|s| < \dfrac{1}{q}
無記憶性 P(X \geq t_1 + t_2 \mid X \geq t_1) = P(X \geq t_2)
試行回数版 W = X + 1E[W] = \dfrac{1}{p}V[W] = \dfrac{q}{p^2}

Pythonで実装する

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

geometric_distribution.py
import numpy as np
from scipy import stats

# パラメータ設定
p = 0.3  # 成功確率
q = 1 - p

print(f"=== 幾何分布 Geo({p}) ===")
print(f"期待値: E[X] = q/p = {q/p:.4f}")
print(f"分散  : V[X] = q/p^2 = {q/p**2:.4f}")

# scipy.stats.nbinom(1, p) が失敗回数バージョンの幾何分布
dist = stats.nbinom(1, p)
print(f"\nscipy.statsによる確認:")
print(f"期待値: {dist.mean():.4f}")
print(f"分散  : {dist.var():.4f}")

# 確率関数
print(f"\n確率関数 P(X=x) = p*q^x:")
for x in range(8):
    prob = p * (q ** x)
    bar = "█" * int(prob * 40)
    print(f"  P(X={x}) = {prob:.4f} {bar}")

# 累積確率
print(f"\nP(X >= 3) = q^3 = {q**3:.4f}")
print(f"P(X <= 2) = 1 - q^3 = {1 - q**3:.4f}")

# 無記憶性の確認
print(f"\n--- 無記憶性の確認 ---")
t1, t2 = 3, 2
conditional = (q**(t1+t2)) / (q**t1)
direct = q**t2
print(f"P(X >= {t1+t2} | X >= {t1}) = {conditional:.4f}")
print(f"P(X >= {t2}) = {direct:.4f}")
print(f"一致: {np.isclose(conditional, direct)}")

# シミュレーション
np.random.seed(42)
samples = stats.nbinom.rvs(1, p, size=10000)
print(f"\nシミュレーション(10000回):")
print(f"標本平均: {np.mean(samples):.4f} (理論値: {q/p:.4f})")
print(f"標本分散: {np.var(samples, ddof=0):.4f} (理論値: {q/p**2:.4f})")
=== 幾何分布 Geo(0.3) === 期待値: E[X] = q/p = 2.3333 分散 : V[X] = q/p^2 = 7.7778 scipy.statsによる確認: 期待値: 2.3333 分散 : 7.7778 確率関数 P(X=x) = p*q^x: P(X=0) = 0.3000 ████████████ P(X=1) = 0.2100 ████████ P(X=2) = 0.1470 █████ P(X=3) = 0.1029 ████ P(X=4) = 0.0720 ██ P(X=5) = 0.0504 ██ P(X=6) = 0.0353 █ P(X=7) = 0.0247 P(X >= 3) = q^3 = 0.3430 P(X <= 2) = 1 - q^3 = 0.6570 --- 無記憶性の確認 --- P(X >= 5 | X >= 3) = 0.4900 P(X >= 2) = 0.4900 一致: True シミュレーション(10000回): 標本平均: 2.3184 (理論値: 2.3333) 標本分散: 7.5062 (理論値: 7.7778)

無記憶性により、P(X \geq 5 \mid X \geq 3) = P(X \geq 2) が成り立つことが確認できる。