ヘロログ
統計学

指数分布

指数分布(exponential distribution)は、ある事象が起こるまでの「待ち時間」をモデル化する連続型確率分布である。ポアソン分布に従うポアソン過程において、次のイベントが発生するまでの時間間隔は指数分布に従う。

指数分布は以下のような場面で現れる。

  • 機械が故障するまでの時間
  • コールセンターに次の電話がかかってくるまでの時間
  • 放射性原子が崩壊するまでの時間
  • 患者が来院するまでの待ち時間

指数分布の最も重要な特徴は無記憶性(memoryless property)である。これは、すでにある時間が経過したという情報が、残りの待ち時間の分布に影響を与えないという性質である。

定義

パラメータ \lambda > 0 に対して、確率変数 X が以下の確率密度関数をもつとき、X指数分布に従うという。この分布を \text{Exp}(\lambda) と表記する。

指数分布の確率密度関数
f(x) = \lambda e^{-\lambda x}, \quad x > 0

パラメータ \lambdaレート(率)パラメータと呼ばれ、単位時間あたりのイベント発生回数の期待値を表す。\lambda が大きいほど、イベントは頻繁に発生し、待ち時間は短くなる。

累積分布関数

指数分布の累積分布関数は、確率密度関数を積分することで明示的に得られる。

累積分布関数
F(x) = P(X \leq x) = 1 - e^{-\lambda x}, \quad x > 0

【導出】 x > 0 に対して

\begin{aligned} F(x) &= \int_0^x \lambda e^{-\lambda t} \, dt = \left[ -e^{-\lambda t} \right]_0^x \\[5pt] &= -e^{-\lambda x} - (-e^0) = 1 - e^{-\lambda x} \end{aligned}

生存関数(x より長く待つ確率)は特にシンプルな形をとる。

S(x) = P(X > x) = 1 - F(x) = e^{-\lambda x}

グラフ

異なる \lambda の値に対する確率密度関数と累積分布関数のグラフを示す。

f(x) 2.0 1.5 1.0 0.5 0 x 0 1 2 3 4 5 6 λ = 0.5 λ = 1.0 λ = 2.0
図1: 指数分布の確率密度関数(異なるλの比較)

\lambda が大きいほど、分布は x = 0 付近に集中し、急速に減衰する。これは \lambda が大きいとイベントが頻繁に起こり、待ち時間が短くなる傾向を表している。

F(x) 1.0 0.8 0.6 0.4 0.2 0 x 0 1 2 3 4 5 6 λ = 0.5 λ = 1.0 λ = 2.0
図2: 指数分布の累積分布関数(異なるλの比較)

期待値と分散

指数分布 \text{Exp}(\lambda) の期待値と分散は次のようになる。

期待値と分散
E[X] = \dfrac{1}{\lambda}, \quad V[X] = \dfrac{1}{\lambda^2}

【期待値の導出】 部分積分を用いて計算する。

\begin{aligned} E[X] &= \int_0^\infty x \cdot \lambda e^{-\lambda x} \, dx \\[5pt] &= \left[ -x e^{-\lambda x} \right]_0^\infty + \int_0^\infty e^{-\lambda x} \, dx \\[5pt] &= 0 + \left[ -\dfrac{1}{\lambda} e^{-\lambda x} \right]_0^\infty = \dfrac{1}{\lambda} \end{aligned}

【分散の導出】 E[X^2] を計算し、V[X] = E[X^2] - (E[X])^2 を用いる。

\begin{aligned} E[X^2] &= \int_0^\infty x^2 \cdot \lambda e^{-\lambda x} \, dx = \dfrac{2}{\lambda^2} \end{aligned}

よって V[X] = \dfrac{2}{\lambda^2} - \dfrac{1}{\lambda^2} = \dfrac{1}{\lambda^2} となる。

モーメント母関数

指数分布のモーメント母関数は次の形をとる。

モーメント母関数
M(t) = E[e^{tX}] = \dfrac{\lambda}{\lambda - t} = \left( 1 - \dfrac{t}{\lambda} \right)^{-1}, \quad t < \lambda

【導出】

\begin{aligned} M(t) &= \int_0^\infty e^{tx} \cdot \lambda e^{-\lambda x} \, dx = \lambda \int_0^\infty e^{-(\lambda - t)x} \, dx \\[5pt] &= \lambda \cdot \dfrac{1}{\lambda - t} = \dfrac{\lambda}{\lambda - t} \end{aligned}

収束条件として t < \lambda が必要である。

無記憶性

指数分布の最も重要な性質は無記憶性(memoryless property)である。

無記憶性

X \sim \text{Exp}(\lambda) のとき、任意の t_1, t_2 \geq 0 に対して

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

この性質は「すでに t_1 時間待ったという情報は、今後さらに t_2 時間以上待つ確率に影響しない」ことを意味する。

【証明】 生存関数 P(X \geq t) = e^{-\lambda 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)} \\[5pt] &= \dfrac{e^{-\lambda(t_1 + t_2)}}{e^{-\lambda t_1}} = e^{-\lambda t_2} = P(X \geq t_2) \end{aligned}
ポイント

連続型分布で無記憶性をもつのは指数分布のみである。離散型では幾何分布が無記憶性をもつ。

ガンマ分布との関係

指数分布はガンマ分布の特殊ケースである。ガンマ分布 \text{Ga}(a, b) において a = 1 とすると、レート \lambda = \dfrac{1}{b} の指数分布 \text{Exp}\left(\dfrac{1}{b}\right) に一致する。

\text{Exp}(\lambda) = \text{Ga}\left(1, \dfrac{1}{\lambda}\right)

また、独立な指数分布の和はガンマ分布に従う。X_1, X_2, \ldots, X_n が独立に \text{Exp}(\lambda) に従うとき

X_1 + X_2 + \cdots + X_n \sim \text{Ga}\left(n, \dfrac{1}{\lambda}\right)

計算例

ある機械の寿命が指数分布 \text{Exp}(0.5) に従うとする(単位:年)。

(1)期待寿命を求める。

E[X] = \dfrac{1}{\lambda} = \dfrac{1}{0.5} = 2 \text{ 年}

(2)2年以内に故障する確率を求める。

P(X \leq 2) = 1 - e^{-0.5 \times 2} = 1 - e^{-1} \approx 0.632

(3)すでに1年動作している機械が、さらに2年以上動作する確率を求める。

無記憶性より

P(X \geq 3 \mid X \geq 1) = P(X \geq 2) = e^{-0.5 \times 2} = e^{-1} \approx 0.368

練習問題

問1. コールセンターへの電話の到着間隔が \text{Exp}(2) に従うとする(単位:分)。次の電話が1分以内に来る確率を求めよ。
P(X \leq 1) = 1 - e^{-2 \times 1} = 1 - e^{-2} \approx 0.8647

約86.5%の確率で1分以内に次の電話が来る。

問2. X \sim \text{Exp}(\lambda) の中央値(50%点)を求めよ。

中央値を m とすると P(X \leq m) = 0.5 より

\begin{aligned} 1 - e^{-\lambda m} &= 0.5 \\[5pt] e^{-\lambda m} &= 0.5 \\[5pt] m &= \dfrac{\ln 2}{\lambda} \end{aligned}

中央値は \dfrac{\ln 2}{\lambda} \approx \dfrac{0.693}{\lambda} となる。期待値 1/\lambda より小さい。

問3. 指数分布 \text{Exp}(\lambda) の上側25%点(75%点)を求めよ。

P(X > x_{0.75}) = 0.25 より

\begin{aligned} e^{-\lambda x_{0.75}} &= 0.25 = \dfrac{1}{4} \\[5pt] x_{0.75} &= \dfrac{\ln 4}{\lambda} \end{aligned}

上側25%点は \dfrac{\ln 4}{\lambda} \approx \dfrac{1.386}{\lambda} となる。

まとめ

項目 内容
分布名 指数分布(exponential distribution)
表記 \text{Exp}(\lambda)
パラメータ \lambda > 0(レートパラメータ)
確率密度関数 f(x) = \lambda e^{-\lambda x}, \quad x > 0
累積分布関数 F(x) = 1 - e^{-\lambda x}
期待値 E[X] = \dfrac{1}{\lambda}
分散 V[X] = \dfrac{1}{\lambda^2}
モーメント母関数 M(t) = \dfrac{\lambda}{\lambda - t}, \quad t < \lambda
特徴 無記憶性をもつ唯一の連続型分布
応用例 待ち時間、機械の寿命、ポアソン過程の到着間隔

Pythonで実装する

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

exponential_distribution.py
import numpy as np
from scipy import stats

# パラメータ設定
lam = 0.5  # レートパラメータ

print(f"=== 指数分布 Exp({lam}) ===")

# scipy.stats では scale = 1/λ
dist = stats.expon(scale=1/lam)

print(f"期待値: E[X] = 1/λ = {dist.mean():.4f}")
print(f"分散  : V[X] = 1/λ² = {dist.var():.4f}")

# 確率密度関数
print(f"\n確率密度関数 f(x) = λe^(-λx):")
for x in [0, 1, 2, 3]:
    print(f"  f({x}) = {dist.pdf(x):.6f}")

# 累積分布関数
print(f"\n累積分布関数 F(x) = 1 - e^(-λx):")
for x in [1, 2, 3, 4]:
    print(f"  P(X ≤ {x}) = {dist.cdf(x):.4f}")

# 確率計算
print(f"\n確率計算:")
print(f"  P(X > 2) = {1 - dist.cdf(2):.4f}")
print(f"  P(1 ≤ X ≤ 3) = {dist.cdf(3) - dist.cdf(1):.4f}")

# 分位点
print(f"\n分位点:")
print(f"  中央値 = ln(2)/λ = {dist.ppf(0.5):.4f}")
print(f"  上側25%点 = ln(4)/λ = {dist.ppf(0.75):.4f}")

# 無記憶性の確認
t1, t2 = 2, 3
p_cond = (1 - dist.cdf(t1 + t2)) / (1 - dist.cdf(t1))
p_uncond = 1 - dist.cdf(t2)
print(f"\n無記憶性の確認:")
print(f"  P(X ≥ {t1+t2} | X ≥ {t1}) = {p_cond:.6f}")
print(f"  P(X ≥ {t2}) = {p_uncond:.6f}")

# シミュレーション
np.random.seed(42)
n_samples = 10000
samples = np.random.exponential(scale=1/lam, size=n_samples)

print(f"\nシミュレーション(n={n_samples}):")
print(f"標本平均: {np.mean(samples):.4f}")
print(f"標本分散: {np.var(samples, ddof=0):.4f}")
=== 指数分布 Exp(0.5) === 期待値: E[X] = 1/λ = 2.0000 分散 : V[X] = 1/λ² = 4.0000 確率密度関数 f(x) = λe^(-λx): f(0) = 0.500000 f(1) = 0.303265 f(2) = 0.183940 f(3) = 0.111565 累積分布関数 F(x) = 1 - e^(-λx): P(X ≤ 1) = 0.3935 P(X ≤ 2) = 0.6321 P(X ≤ 3) = 0.7769 P(X ≤ 4) = 0.8647 確率計算: P(X > 2) = 0.3679 P(1 ≤ X ≤ 3) = 0.3834 分位点: 中央値 = ln(2)/λ = 1.3863 上側25%点 = ln(4)/λ = 2.7726 無記憶性の確認: P(X ≥ 5 | X ≥ 2) = 0.223130 P(X ≥ 3) = 0.223130 シミュレーション(n=10000): 標本平均: 1.9550 標本分散: 3.7975

無記憶性が成り立つことが確認できる。scipy.stats.expon では scale=1/λ を指定することに注意が必要である。