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.

指数分布

概要

指数分布(exponential distribution) は生存時間などを表すのに使われる分布。幾何分布の連続版であり、ポアソン過程における事象間の待ち時間を表す。離散確率分布における幾何分布と同様に、連続確率分布の中で唯一の無記憶性をもつ分布である。

確率密度関数

f(xλ)=λeλx,x>0f(x \mid \lambda) = \lambda e^{-\lambda x}, \quad x > 0
  • xx:対象の変数(例:「商品が売れるまでの日数」、「製品が故障するまでの年数」)

  • λ>0\lambda > 0:rate parameter(発生率)

この分布をExp(λ)\text{Exp}(\lambda)と表記する。

累積分布関数

F(x)=P(X<x)=1eλxF(x) = P(X < x) = 1 - e^{-\lambda x}

例えば、「ある商品がxx日で売れる確率」を Exp(λ)=λeλx\text{Exp}(\lambda) = \lambda e^{-\lambda x} とすると、累積分布関数 P(X<x)=1eλxP(X < x) = 1- e^{-\lambda x} は「商品がxx日未満で売れる確率」となる。

期待値・分散

E[X]=1λE[X] = \frac{1}{\lambda}
V[X]=1λ2V[X] = \frac{1}{\lambda^2}

import matplotlib.pyplot as plt
import numpy as np
from scipy.stats import expon

x = np.linspace(0, 5, 100)

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

for lam in [0.5, 1, 2]:
    axes[0].plot(x, expon.pdf(x, scale=1/lam), label=fr"$\lambda={lam}$")
    axes[1].plot(x, expon.cdf(x, scale=1/lam), label=fr"$\lambda={lam}$")

axes[0].set(title="PDF", xlabel="x", ylabel="f(x)")
axes[0].legend()
axes[1].set(title="CDF", xlabel="x", ylabel="F(x)")
axes[1].legend()
fig.tight_layout()
fig.show()

ハザード関数

XXを非負の連続型確率変数とし、その密度関数をf(x)f(x)、分布関数をF(x)F(x)とする。XXを生命が死亡したり機械が故障する時間を表す変数とみなすと、xx時間まで生存していて次の時間x+Δx+\Deltaまでに死亡する条件付き確率は

P(x<Xx+ΔX>x)=P(x<Xx+Δ,X>x)P(X>x)=P(x<Xx+Δ)P(X>x)=F(x+Δ)F(x)1F(x)\begin{aligned} P(x<X \leq x+\Delta \mid X>x) & =\frac{P(x<X \leq x+\Delta, X>x)}{P(X>x)} \\ & =\frac{P(x<X \leq x+\Delta)}{P(X>x)}\\ &=\frac{F(x+\Delta)-F(x)}{1-F(x)} \end{aligned}

両辺をΔ\Deltaで割ると

1ΔP(x<Xx+ΔX>x)=1ΔF(x+Δ)F(x)1F(x)=F(x+Δ)F(x)Δ11F(x)\begin{aligned} \frac{1}{\Delta} P(x<X \leq x+\Delta \mid X>x) &=\frac{1}{\Delta} \cdot \frac{F(x+\Delta)-F(x)}{1-F(x)}\\ &=\frac{F(x+\Delta)-F(x)}{\Delta} \cdot \frac{1}{1-F(x)} \end{aligned}

Δ0\Delta \to 0の極限を考えると、F(x+Δ)F(x)Δ\frac{F(x+\Delta)-F(x)}{\Delta}は微分の定義と同じ形であるから、分布関数の微分すなわち確率密度関数である。

limΔ0F(x+Δ)F(x)Δ=F(x)=f(x)\lim_{\Delta\downarrow 0} \frac{F(x+\Delta)-F(x)}{\Delta} = F'(x) = f(x)

なので

limΔ01ΔP(x<Xx+ΔX>x)=f(x)1F(x)\lim _{\Delta \downarrow 0} \frac{1}{\Delta} P(x<X \leq x+\Delta \mid X>x) = \frac{f(x)}{1-F(x)}

となる。

この「xx時間まで生存していて次の時間x+Δx+\Deltaまでに死亡する条件付き確率」

λ(x)=f(x)1F(x)\lambda(x) = \frac{f(x)}{1-F(x)}

ハザード関数 (hazard function) という。

指数分布のハザード関数

ハザード関数に指数分布をあてはめると

λ(x)=f(x)1F(x)=λeλx1(1eλx)=λeλxeλx=λ\lambda(x) = \frac{f(x)}{1-F(x)} = \frac{\lambda e^{-\lambda x}}{1 - (1- e^{-\lambda x})} = \frac{\lambda e^{-\lambda x}}{e^{-\lambda x}} = \lambda

であり、次の瞬間に死亡する確率密度は時間xxに無関係で常に一定でλ\lambdaとなっていることがわかる(幾何分布や指数分布のこの性質は 無記憶性 と呼ばれる)。

ハザード関数による非負の連続型確率分布の生成

非負の連続型確率変数の分布は、ハザード関数によって特徴づけられる。

ハザード関数の両辺を積分すると

0xλ(t)dt=0xf(t)1F(t)dt=[log(1F(t))]0x\int_0^x \lambda(t) d t = \int_0^x \frac{ f(t) }{ 1-F(t)} d t = [- \log (1 - F(t))]^x_0

となる

途中式メモ

u=1F(t)u=1-F(t) と置き換えると、 du=F(t)dt=f(t)dtd u=-F^{\prime}(t) d t=-f(t) d t と置き換えられる。したがって

0xf(t)1F(t)dt=t=0t=xduu=t=0t=x1udu\int_0^x \frac{f(t)}{1-F(t)} d t =\int_{t=0}^{t=x} - \frac{d u}{u} =\int_{t=0}^{t=x} - \frac{1}{u} d u

となる。1u-\frac{1}{u}の原始関数はlogu-\log uなので

t=0t=x1udu=logu\int_{t=0}^{t=x} - \frac{1}{u} d u = - \log u

u=1F(t)u=1-F(t)を代入して戻せば

0xf(t)1F(t)dt=[log(1F(t))]t=0t=x\int_0^x \frac{f(t)}{1-F(t)} d t=[-\log (1-F(t))]_{t=0}^{t=x}

これは、次のように整理できる

F(x)=1exp{0xλ(t)dt}f(x)=λ(x)exp{0xλ(t)dt}\begin{aligned} & F(x)=1-\exp \left\{-\int_0^x \lambda(t) d t\right\} \\ & f(x)=\lambda(x) \exp \left\{-\int_0^x \lambda(t) d t\right\} \end{aligned}
途中式

S(x):=1F(x)S(x):=1-F(x)とおく(これは 生存関数 と呼ばれる)。するとハザード関数は

λ(x)=f(x)1F(x)=f(x)S(x)\lambda(x)=\frac{f(x)}{1-F(x)}=\frac{f(x)}{S(x)}

となる。ハザード関数の積分は、確率変数が非負なのでF(0)=0    S(0)=1    logS(0)=0F(0)=0 \implies S(0) = 1 \implies \log S(0) = 0 なので、

0xλ(t)dt=[logS(t)]0x=logS(x)+logS(0)=logS(x)\begin{aligned} \int_0^x \lambda(t) d t &=-[\log S(t)]_0^x\\ &= -\log S(x) + \log S(0)\\ &= -\log S(x) \end{aligned}

となる。両辺を-1倍して指数をとれば

S(x)=exp{0xλ(t)dt}S(x) = \exp \left\{ - \int_0^x \lambda(t) d t \right\}

となるので、ハザード関数は

λ(x)=f(x)1F(x)=f(x)S(x)    λ(x)S(x)=f(x)    f(x)=λ(x)exp{0xλ(t)dt}\begin{aligned} \lambda(x) &= \frac{f(x)}{1 - F(x)} =\frac{f(x)}{S(x)}\\ &\iff \lambda(x) S(x) = f(x)\\ &\iff \boxed{ f(x) = \lambda(x) \exp \left\{ - \int_0^x \lambda(t) d t \right\} } \end{aligned}

と整理でき、また

F(x)=1S(x)=1exp{0xλ(t)dt}\begin{aligned} F(x) &= 1 - S(x) \\ &= \boxed{ 1-\exp \left\{-\int_0^x \lambda(t) d t\right\} } \end{aligned}

例えばλ(x)=λ\lambda(x) = \lambdaと定数をおくと指数分布が生ずる。

性質

  • 無記憶性: P(X>s+tX>s)=P(X>t)P(X > s + t \mid X > s) = P(X > t)。連続確率分布の中で無記憶性を持つのは指数分布のみ

  • ガンマ分布Gamma(1,1/λ)\text{Gamma}(1, 1/\lambda)の特殊ケース

  • ポアソン過程における事象間の待ち時間は指数分布に従う

  • nn個の独立なExp(λ)\text{Exp}(\lambda)の和はガンマ分布Gamma(n,1/λ)\text{Gamma}(n, 1/\lambda)に従う

  • ハザード関数が定数λ\lambdaであることが指数分布を特徴づける

応用例

  • 機器の故障までの時間(故障率が一定の場合)

  • 顧客が来店するまでの待ち時間

  • 放射性物質の崩壊までの時間

  • 生存分析における基本的な生存時間モデル

  • 待ち行列理論(M/M/1キューなど)

参考文献