概要
連続確率分布の1つであるガンマ分布について解説します。
確率密度関数
確率変数 $X$ が次の確率密度関数をもつとき、$X$ はパラメータ $\alpha, \beta$ のガンマ分布 (gamma distribution) に従うという。
$$ f_X(x) = \begin{cases} \frac{\beta^\alpha}{\Gamma(\alpha)} x^{\alpha – 1} e^{- \beta x} & x > 0 \\ 0 & その他の場合 \end{cases} $$ただし、$\Gamma(\cdot)$ はガンマ関数、$\alpha > 0, \beta > 0$ とする。
補題
$\alpha > 0, \beta > 0$ としたとき、
$$ \int_0^\infty x^{\alpha – 1} e^{-\beta x} dx = \frac{\Gamma(\alpha)}{\beta^\alpha} $$証明:
$\beta x = y$ として置換積分すると、
$$ \begin{aligned} \int_0^\infty x^{\alpha – 1} \ e^{-\beta x} dx &= \int_0^\infty \left(\frac{y}{\beta}\right)^{\alpha – 1} \ e^{-y} \ \frac{1}{\beta} dy \\ &= \frac{1}{\beta^\alpha} \int_0^\infty y^{\alpha – 1} \ e^{-y} \ dy \\ &= \frac{\Gamma(\alpha)}{\beta^\alpha} \end{aligned} $$確率密度関数の要件を満たしている
(1) 非負性
$\alpha > 0$ としたとき、$\Gamma(\alpha) > 0$ であるから、$f_X(x) \ge 0$
(2) 総和が1
$\alpha > 0, \beta > 0$ としたとき、補題より、
$$ \int_0^\infty \frac{\beta^\alpha}{\Gamma(\alpha)} x^{\alpha – 1} \ \ e^{- \beta x} dx = \frac{\beta^\alpha}{\Gamma(\alpha)} \frac{\Gamma(\alpha)}{\beta^\alpha} = 1 $$$k$ 次積率
$k \in \mathbb{N}$ としたとき、
$$ \begin{aligned} E[X^k] &= \int_0^\infty x^k \frac{\beta^\alpha}{\Gamma(\alpha)} x^{\alpha – 1} \ \ e^{- \beta x} dx \\ &= \frac{\beta^\alpha}{\Gamma(\alpha)} \int_0^\infty x^{\alpha + k – 1} \ \ e^{- \beta x} dx\\ &= \frac{\beta^\alpha}{\Gamma(\alpha)} \frac{\Gamma(\alpha + k)}{\beta^{\alpha + k}} \quad \because 補題 \\ &= \frac{\beta^\alpha}{\Gamma(\alpha)} \frac{(\alpha + k – 1) \cdots \alpha \Gamma(\alpha)}{\beta^{\alpha + k}} \quad \because ガンマ関数の性質 \\ &= \frac{\alpha (\alpha + 1) \cdots (\alpha + k – 1)}{\beta^k}\\ \end{aligned} $$期待値
$$ E[X] = \frac{\alpha}{\beta} $$分散
$$ E[X^2] = \frac{\alpha(\alpha + 1)}{\beta^2} $$なので、
$$ \begin{aligned} Var(X) &= E(X^2) – [E(X)]^2 \\ &= \frac{\alpha(\alpha + 1)}{\beta^2} – \left(\frac{\alpha}{\beta}\right)^2 \\ &= \frac{\alpha}{\beta^2} \end{aligned} $$標準偏差
$$ \begin{aligned} Std(X) &= \sqrt{Var(X)} \\ &= \sqrt{\frac{\alpha}{\beta^2}} \\ &= \frac{\sqrt{\alpha}}{\beta} \quad \because \beta > 0 \end{aligned} $$積率母関数
$$ \begin{aligned} m_X(t) &= E[e^{tX}] \\ &= \int_0^\infty e^{tx} \frac{\beta^\alpha}{\Gamma(\alpha)} x^{\alpha – 1} e^{- \beta x} \ dx \\ &= \frac{\beta^\alpha}{\Gamma(\alpha)} \int_0^\infty x^{\alpha – 1} e^{- (\beta – t) x} \quad dx \end{aligned} $$$t < \beta$ の場合、 $(\beta – t)x = y$ と置換積分すると、
$$ \begin{aligned} & \frac{\beta^\alpha}{\Gamma(\alpha)} \int_0^\infty \left(\frac{y}{\beta – t}\right)^{\alpha – 1} e^{-y} \frac{1}{\beta – t} dy \\ &= \frac{\beta^\alpha}{\Gamma(\alpha) (\beta – t)^\alpha} \int_0^\infty y^{\alpha – 1} e^{-y} dy \\ &= \frac{\beta^\alpha \Gamma(\alpha)}{\Gamma(\alpha) (\beta – t)^\alpha} \quad \because x > 0, t < \beta より y = (\beta – t)x > 0 なので、ガンマ分布の定義 \\ &= \left(\frac{\beta}{\beta – t}\right)^\alpha \end{aligned} $$$t = \beta$ の場合、
$$ \begin{aligned} \frac{\beta^\alpha}{\Gamma(\alpha)} \int_0^\infty x^{\alpha – 1} \ dx &= \frac{\beta^\alpha}{\alpha \Gamma(\alpha)} [x^\alpha]_0^\infty \\ &= \frac{\beta^\alpha}{\alpha \Gamma(\alpha)} \lim_{n \to \infty} n^\alpha \\ &= \infty \quad \because \alpha > 0 のとき、n \to \infty で n^\alpha は発散する \end{aligned} $$$t > \beta$ の場合、$-(\beta – t) > 0$ となる。
十分大きな $x$ で
$$ x^{\alpha – 1} \le e^{-\left({\beta – t}\right) x} $$が成り立つので
$$ \int_0^\infty x^{2(\alpha – 1)} \le \int_0^\infty x^{\alpha – 1} e^{- (\beta – t) x} $$となり、左辺は $\infty$ に発散するので、右辺も発散する。
したがって、積率母関数は $t < \beta$ のとき
$$ m_X(t) = \left(\frac{\beta}{\beta – t}\right)^\alpha $$と定義される。$t > \beta$ のときは定義されない。
再生性
$X_1, X_2, \cdots, X_n$ が独立でそれぞれパラメータ $\alpha_i, \beta$ のガンマ分布に従うとき、 $S = X_1 + X_2 + \cdots + X_n$ はパラメータ $\alpha_1 + \alpha_2 + \cdots + \alpha_n, \beta$ のガンマ分布に従う。
証明:
$X_i$ の積率母関数を $m_{X_i}(t)$ とすると、
$$ m_S(t) = \prod_{i = 1}^n m_{X_i}(t) = \left(\frac{\beta}{\beta – t}\right)^{\alpha_1 + \alpha_2 + \cdots + \alpha_n} $$これはパラメータ $\alpha_1 + \alpha_2 + \cdots + \alpha_n, \beta$ のガンマ分布の積率母関数と一致する。 積率母関数の一意性より、題意は示された。
scipy.stats のガンマ分布
scipy.stats.gamma でガンマ分布に従う確率変数を作成できます。
import numpy as np
import seaborn as sns
from matplotlib import pyplot as plt
from scipy.stats import gamma
sns.set(style="white")
X = gamma(a=1.99)
サンプリング
x = X.rvs(size=5)
print(x)
[0.30663602 1.10912954 0.79615476 0.29326139 1.49942172]
確率密度関数
x = np.linspace(0, 10, 100)
y = X.pdf(x)
fig, ax = plt.subplots()
ax.plot(x, y)
ax.grid()
plt.show()
累積分布関数
x = np.linspace(0, 10, 100)
y = X.cdf(x)
fig, ax = plt.subplots()
ax.plot(x, y)
ax.grid()
plt.show()
統計量
print("mean", X.mean())
print("var", X.var())
print("std", X.std())
mean 1.99 var 1.99 std 1.4106735979665885
コメント