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.

ガンマ分布

概要

ガンマ分布(gamma distribution)は非負の実数直線上の代表的な確率分布である。指数分布やカイ二乗分布を特殊ケースとして含む柔軟な分布族であり、待ち時間や生存時間のモデリング、ベイズ統計における共役事前分布として広く用いられる。

確率密度関数

shape-scale パラメタリゼーション

f(xα,β)=1Γ(α)1β(xβ)α1ex/β,x>0f(x \mid \alpha, \beta) = \frac{1}{\Gamma(\alpha)} \frac{1}{\beta} \left( \frac{x}{\beta} \right) ^{\alpha-1} e^{-x/\beta} , \quad x > 0
  • α>0\alpha > 0: shape parameter(形状パラメータ)

  • β>0\beta > 0: scale parameter(尺度パラメータ)

shape-rate パラメタリゼーション

尺度変換λ=1/β\lambda = 1/\betaを行った

f(xα,λ)=λαΓ(α)xα1eλx,x>0f(x \mid \alpha, \lambda) = \frac{\lambda^\alpha}{\Gamma(\alpha)} x^{\alpha-1} e^{-\lambda x} ,\quad x > 0

という定義も使われる(λ\lambdaはrate parameterと呼ばれる)。

ガンマ関数

ここでΓ(α)\Gamma(\alpha)ガンマ関数(gamma function)

Γ(α)=0yα1eydy\Gamma(\alpha) = \int^{\infty}_0 y^{\alpha-1} e^{-y} dy

自然数nnに対してΓ(n)=(n1)!\Gamma(n) = (n-1)!が成り立つ。またΓ(1/2)=π\Gamma(1/2) = \sqrt{\pi}である。

import numpy as np
import matplotlib.pyplot as plt
from scipy.special import gamma

x = np.linspace(0.1, 6, 100)
y = gamma(x)

fig, ax = plt.subplots(figsize=[4, 2.5])
ax.plot(x, y)
ax.set(title=r"Gamma function $\Gamma(\alpha)$", xlabel=r"$\alpha$", ylabel=r"$\Gamma(\alpha)$")
fig.show()

累積分布関数

F(x)=γ(α,x/β)Γ(α)F(x) = \frac{\gamma(\alpha, x/\beta)}{\Gamma(\alpha)}

ここでγ(α,x)\gamma(\alpha, x)は下側不完全ガンマ関数。一般に閉じた形では表せない。

期待値・分散

shape-scale パラメタリゼーションの場合:

E[X]=αβE[X] = \alpha\beta
V[X]=αβ2V[X] = \alpha\beta^2

shape-rate パラメタリゼーション(λ=1/β\lambda = 1/\beta)の場合:

E[X]=αλ,V[X]=αλ2E[X] = \frac{\alpha}{\lambda}, \quad V[X] = \frac{\alpha}{\lambda^2}

import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import gamma as gamma_dist

x = np.linspace(0, 20, 200)

fig, axes = plt.subplots(1, 2, figsize=[8, 3])
for alpha in [1, 3, 5, 10]:
    pdf = gamma_dist.pdf(x, alpha)
    axes[0].plot(x, pdf, label=fr"$\alpha={alpha}, \beta=1$")
    cdf = gamma_dist.cdf(x, alpha)
    axes[1].plot(x, cdf, label=fr"$\alpha={alpha}, \beta=1$")

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()

性質

  • α=1\alpha=1のとき指数分布 Exp(1/β)\text{Exp}(1/\beta)に一致する

  • α=n/2,β=2\alpha=n/2, \beta=2のとき自由度nnカイ二乗分布に一致する

  • 再生性: X1Gamma(α1,β),X2Gamma(α2,β)X_1 \sim \text{Gamma}(\alpha_1, \beta), X_2 \sim \text{Gamma}(\alpha_2, \beta)が独立ならX1+X2Gamma(α1+α2,β)X_1 + X_2 \sim \text{Gamma}(\alpha_1+\alpha_2, \beta)

  • 指数型分布族に属する

  • ポアソン分布の共役事前分布である

  • 尺度変換Y=X/βY = X/\betaを行うと、YYの分布はβ\betaに依存しない標準形1Γ(α)yα1ey\frac{1}{\Gamma(\alpha)} y^{\alpha-1} e^{-y}となる

応用例

  • 待ち時間のモデリング(ポアソン過程でα\alpha個の事象が起きるまでの時間)

  • ベイズ統計におけるポアソン分布のrate parameterの共役事前分布

  • 保険数理における請求額の分布

  • 降雨量のモデリング

参考文献