統計学 – カイ二乗分布

概要

連続確率分布の1つであるカイ二乗分布について解説します。

確率関数

確率変数 XX が次の確率密度関数をもつとき、XX は自由度 (degrees of freedom) nn の(中心)カイ二乗分布 (chi squared distribution) または χ2\chi^2 分布に従うという。

確率変数 XX が自由度 nn のカイ二乗分布に従うとき、Xχn2X \sim \chi_n^2 と表す。

fX(x)={fX(x)=12n2Γ(n2)xn21ex2x>00その他の場合 f_X(x) = \begin{cases} f_X(x) = \frac{1}{2^\frac{n}{2} \Gamma(\frac{n}{2})} x^{\frac{n}{2} – 1} e^{- \frac{x}{2}} & x > 0 \\ 0 & その他の場合 \end{cases}

ただし、Γ()\Gamma(\cdot) はガンマ関数、nNn \in \N は正の整数とする。

確率密度関数の要件を満たしている

(1) fX(x)0f_X(x) \ge 0 は明らか

(2) 規格化

fX(x)dx=12n2Γ(n2)xn21ex2dx=12n2Γ(n2)(2y)n21eydyx2=yと置換積分=12Γ(n2)2Γ(n2)ガンマ関数の定義=1 \begin{aligned} \int_{-\infty}^{\infty} f_X(x) dx &= \frac{1}{2^\frac{n}{2} \Gamma(\frac{n}{2})} \int_{-\infty}^{\infty} x^{\frac{n}{2} – 1} e^{- \frac{x}{2}} dx \\ &= \frac{1}{2^\frac{n}{2} \Gamma(\frac{n}{2})} \int_{-\infty}^{\infty} (2y)^{\frac{n}{2} – 1} e^{-y} dy \quad \because \frac{x}{2} = y と置換積分 \\ &= \frac{1}{2 \Gamma(\frac{n}{2})} \cdot 2 \Gamma\left(\frac{n}{2}\right) \quad \because ガンマ関数の定義 \\ &= 1 \end{aligned}

ガンマ分布との関係

自由度 nn のカイ二乗分布はパラメータ α=n2β=12\alpha = \frac{n}{2} \beta = \frac{1}{2} としたときのガンマ分布である。

指数分布との関係

自由度2のカイ二乗分布は α=1β=12\alpha = 1 \beta = \frac{1}{2} としたときの指数分布であるから、パラメータ β=12\beta = \frac{1}{2} の指数分布である。

k 次積率

ガンマ分布の kk 次積率に α=n2β=12\alpha = \frac{n}{2} \beta = \frac{1}{2} と代入すると、

E(Xk)=α(α+1)(α+k1)βk \begin{aligned} E(X^k) &= \frac{\alpha (\alpha + 1) \cdots (\alpha + k – 1)}{\beta^k} \end{aligned}

期待値

パラメータ α,β\alpha, \beta のガンマ分布の期待値に α=n2β=12\alpha = \frac{n}{2} \beta = \frac{1}{2} と代入すると、

E[X]=αβ=n E[X] = \frac{\alpha}{\beta} = n

分散

パラメータ α,β\alpha, \beta のガンマ分布の分散に α=n2β=12\alpha = \frac{n}{2} \beta = \frac{1}{2} と代入すると、

Var[X]=αβ2=2n Var[X] = \frac{\alpha}{\beta^2} = 2n

標準偏差

Std[X]=Var[X]=2n Std[X] = \sqrt{Var[X]} = \sqrt{2n}

積率母関数

パラメータ α,β\alpha, \beta のガンマ分布の積率母関数は t<βt < \beta で定義されるので、t<12t < \frac{1}{2} としたとき、 α=n2β=12\alpha = \frac{n}{2} \beta = \frac{1}{2} と代入すると、

mX(t)=(112t)n2 \begin{aligned} m_X(t) &= \left(\frac{1}{1 – 2t}\right)^{\frac{n}{2}} \end{aligned}

再生性

X1,X2,,XnX_1, X_2, \cdots, X_n が独立でそれぞれ自由度 kik_i のカイ二乗分布に従うとき、 S=X1+X2++XnS = X_1 + X_2 + \cdots + X_n は自由度 k1+k2++knk_1 + k_2 + \cdots + k_n のカイ二乗分布に従う。

証明:

XiX_i の積率母関数を mXi(t)m_{X_i}(t) とすると、

mS(t)=i=1nmXi(t)=(112t)k1+k2++kn2 m_S(t) = \prod_{i = 1}^n m_{X_i}(t) = \left(\frac{1}{1 – 2t}\right)^{\frac{k_1 + k_2 + \cdots + k_n}{2}}

これは自由度 k1+k2++knk_1 + k_2 + \cdots + k_n のカイ二乗分布の積率母関数と一致する。 積率母関数の一意性より、題意は示された。

標準正規分布との関係

ZZ が標準正規分布に従うとき、Y=Z2Y = Z^2 は自由度1のカイ二乗分布に従う。

証明:

mY(t)=E[etY]=E[etZ2]=etz212πexp(z22)dz=12πexp((12t)z22)dz=112t12t2πexp((12t)z22)dz \begin{aligned} m_Y(t) &= E[e^{tY}] \\ &= E[e^{tZ^2}] \\ &= \int_{-\infty}^{\infty} e^{tz^2} \frac{1}{\sqrt{2 \pi}} \exp \left(-\frac{z^2}{2}\right) dz \\ &= \int_{-\infty}^{\infty} \frac{1}{\sqrt{2 \pi}} \exp \left(\frac{-(1 – 2t)z^2}{2}\right) dz \\ &= \frac{1}{\sqrt{1 – 2t}} \int_{-\infty}^{\infty} \frac{\sqrt{1 – 2t}}{\sqrt{2 \pi}} \exp \left(\frac{-(1 – 2t)z^2}{2}\right) dz \\ \end{aligned}

ここで、

12t2πexp((12t)z22)dz \int_{-\infty}^{\infty} \frac{\sqrt{1 – 2t}}{\sqrt{2 \pi}} \exp \left(\frac{-(1 – 2t)z^2}{2}\right) dz

は、平均 μ=0\mu = 0、分散 σ2=112t\sigma^2 = \frac{1}{\sqrt{1 – 2t}} としたときの正規分布の全実数についての積分なので、1となる。

よって、

mY(t)=(112t)12 m_Y(t) = \left(\frac{1}{1 – 2t}\right)^\frac{1}{2}

これは自由度 11 のカイ二乗分布の積率母関数と一致する。 積率母関数の一意性より、題意は示された。

標準正規分布との関係

Z1,Z2,,ZnZ_1, Z_2, \cdots, Z_n が独立でそれぞれ標準正規分布に従うとき、 Y=Z12+Z22++Zn2Y = Z_1^2 + Z_2^2 + \cdots + Z_n^2 は自由度 nn のカイ二乗分布に従う。

証明:

Z2Z^2 は自由度1のカイ二乗分布に従うので、カイ二乗分布の再生性より、 YY は自由度 nn のカイ二乗分布に従う。

正規分布との関係

X1,X2,,XnX_1, X_2, \cdots, X_n が独立でそれぞれ平均 μi\mu_i、分散 σ2\sigma^2 の正規分布に従うとき、 Y=i=1n(Xiμiσi)2Y = \sum_{i = 1}^n \left(\frac{X_i – \mu_i}{\sigma_i}\right)^2 は自由度 nn のカイ二乗分布に従う。

証明:

Zi=XiμiσiZ_i = \frac{X_i – \mu_i}{\sigma_i} とすると、ZiZ_i は標準正規分布に従うので、YY は自由度 nn のカイ二乗分布に従う。

scipy.stats のカイ二乗分布

scipy.stats.chi2 でカイ二乗分布に従う確率変数を作成できます。

In [1]:
import numpy as np
import seaborn as sns
from matplotlib import pyplot as plt
from scipy.stats import chi2

sns.set(style="white")

X = chi2(10)

サンプリング

In [2]:
x = X.rvs(size=5)
print(x)
[14.21866758 17.01161969  9.51196718 13.50533751 14.14309324]

確率密度関数

In [3]:
x = np.linspace(0, 30, 100)
y = X.pdf(x)

fig, ax = plt.subplots()
ax.plot(x, y)
ax.grid()

plt.show()

累積分布関数

In [4]:
x = np.linspace(0, 30, 100)
y = X.cdf(x)

fig, ax = plt.subplots()
ax.plot(x, y)
ax.grid()

plt.show()

統計量

In [5]:
print("mean", X.mean())
print("var", X.var())
print("std", X.std())
mean 10.0
var 20.0
std 4.47213595499958

コメント

コメントする