ヘロログ
統計学

カイ二乗分布

カイ二乗分布(\chi^2 分布、chi-square distribution)は、統計的推測において最も重要な分布の一つである。標本分散の分布を記述し、母分散の区間推定検定の基礎となる。

カイ二乗分布は独立な標準正規確率変数の二乗和として定義され、正の値のみをとる連続分布である。適合度検定、独立性検定、分散の検定など、統計学の幅広い分野で用いられる。また、ガンマ分布の特殊ケースであり、t分布F分布の定義にも関わる基本的な分布である。

定義

Z_1, Z_2, \ldots, Z_n が互いに独立に標準正規分布 N(0, 1) に従うとき、その二乗和

Y = Z_1^2 + Z_2^2 + \cdots + Z_n^2

が従う分布を自由度 n のカイ二乗分布といい、\chi^2(n) で表す。

カイ二乗分布の確率密度関数
f(y) = \dfrac{1}{\Gamma\left(\dfrac{n}{2}\right) 2^{\frac{n}{2}}} y^{\frac{n}{2}-1} e^{-\frac{y}{2}}, \quad y > 0

ここで \Gamma(\cdot) はガンマ関数である。この確率密度関数は、形状母数 a = \dfrac{n}{2}、尺度母数 b = 2 のガンマ分布 Ga\left(\dfrac{n}{2}, 2\right) と一致する。

ポイント

カイ二乗分布はガンマ分布の特殊ケースである。ガンマ分布の性質(モーメント母関数、再生性など)をそのまま利用できる。

グラフ

自由度 n を変えたときのカイ二乗分布の確率密度関数を示す。

f(y) 0.5 0.4 0.3 0.2 0.1 0 y 0 2 4 6 8 10 12 14 16 18 20
━━ n = 1
━━ n = 2
━━ n = 3
━━ n = 5
━━ n = 10
図1: カイ二乗分布の確率密度関数(自由度別)

自由度が小さいときは原点付近で非常に大きな値をとり、右に強く歪んだ形状になる。自由度が大きくなるにつれて、分布の中心が右に移動し、対称に近い形状になる。これは中心極限定理により、自由度が大きいとき正規分布に近づくことと対応している。

期待値と分散

Y \sim \chi^2(n) の期待値と分散は、ガンマ分布 Ga\left(\dfrac{n}{2}, 2\right) の公式から直ちに得られる。

期待値と分散
E[Y] = n, \qquad V[Y] = 2n

【導出】 ガンマ分布 Ga(a, b) の期待値は ab、分散は ab^2 である。\chi^2(n) = Ga\left(\dfrac{n}{2}, 2\right) より

E[Y] = \dfrac{n}{2} \times 2 = n, \qquad V[Y] = \dfrac{n}{2} \times 2^2 = 2n

この結果は直感的にも理解できる。Z_i^2 の期待値は E[Z_i^2] = V[Z_i] + (E[Z_i])^2 = 1 + 0 = 1 であり、n 個の独立な Z_i^2 の和の期待値は n となる。

モーメント母関数

モーメント母関数
M(t) = E[e^{tY}] = (1 - 2t)^{-\frac{n}{2}}, \quad t < \dfrac{1}{2}

これはガンマ分布のモーメント母関数 M(t) = (1 - bt)^{-a} において a = \dfrac{n}{2}b = 2 とした形である。

再生性

カイ二乗分布には再生性が成り立つ。

再生性

Y_1 \sim \chi^2(n_1)Y_2 \sim \chi^2(n_2) が独立のとき

Y_1 + Y_2 \sim \chi^2(n_1 + n_2)

【証明】 モーメント母関数を用いて示す。Y_1Y_2 が独立なので

\begin{aligned} M_{Y_1 + Y_2}(t) &= E[e^{t(Y_1 + Y_2)}] = E[e^{tY_1}] E[e^{tY_2}] \\[5pt] &= (1 - 2t)^{-\frac{n_1}{2}} (1 - 2t)^{-\frac{n_2}{2}} \\[5pt] &= (1 - 2t)^{-\frac{n_1 + n_2}{2}} \end{aligned}

これは自由度 n_1 + n_2 のカイ二乗分布のモーメント母関数に一致する。

標本分散との関係

カイ二乗分布が統計的推測で重要な理由は、正規母集団からの標本分散の分布がカイ二乗分布に従うことにある。

X_1, X_2, \ldots, X_n が正規分布 N(\mu, \sigma^2) からの無作為標本とする。標本平均を \bar{X} = \dfrac{1}{n}\sum_{i=1}^{n} X_i不偏分散s^2 = \dfrac{1}{n-1}\sum_{i=1}^{n} (X_i - \bar{X})^2 とすると、次が成り立つ。

標本分散の分布
\dfrac{(n-1)s^2}{\sigma^2} = \sum_{i=1}^{n} \left(\dfrac{X_i - \bar{X}}{\sigma}\right)^2 \sim \chi^2(n-1)

さらに、\bar{X}s^2 は独立である

自由度が n ではなく n - 1 になるのは、\sum_{i=1}^{n} (X_i - \bar{X}) = 0 という制約があるためである。この結果は、母分散 \sigma^2 の区間推定や検定に用いられる。

非心カイ二乗分布

カイ二乗分布の定義において、標準正規分布の代わりに平均が 0 でない正規分布を用いると、非心カイ二乗分布が得られる。

Z_i \sim N(\mu_i, 1)i = 1, \ldots, n)が互いに独立とし、\lambda = \mu_1^2 + \mu_2^2 + \cdots + \mu_n^2 とおく。このとき

Y = Z_1^2 + Z_2^2 + \cdots + Z_n^2

が従う分布を自由度 n、非心度 \lambda の非心カイ二乗分布といい、\chi^2(n, \lambda) で表す。

非心カイ二乗分布の期待値・分散・モーメント母関数
\begin{aligned} E[Y] &= n + \lambda \\[5pt] V[Y] &= 2n + 4\lambda \\[5pt] M(t) &= (1 - 2t)^{-\frac{n}{2}} \exp\left(\dfrac{\lambda t}{1 - 2t}\right), \quad t < \dfrac{1}{2} \end{aligned}

\lambda = 0 のとき、非心カイ二乗分布は通常のカイ二乗分布 \chi^2(n) に一致する。非心カイ二乗分布は、検定の検出力の計算などに用いられる。

数表

カイ二乗分布のパーセント点(下側確率 \alpha に対する \chi^2_\alpha(n))を示す。

n 下側確率 \alpha 上側確率 \alpha
0.0050.010.0250.050.10 0.100.050.0250.010.005
10.0000.0000.0010.0040.0162.7063.8415.0246.6357.879
20.0100.0200.0510.1030.2114.6055.9917.3789.21010.597
30.0720.1150.2160.3520.5846.2517.8159.34811.34512.838
40.2070.2970.4840.7111.0647.7799.48811.14313.27714.860
50.4120.5540.8311.1451.6109.23611.07012.83315.08616.750
60.6760.8721.2371.6352.20410.64512.59214.44916.81218.548
70.9891.2391.6902.1672.83312.01714.06716.01318.47520.278
81.3441.6462.1802.7333.49013.36215.50717.53520.09021.955
91.7352.0882.7003.3254.16814.68416.91919.02321.66623.589
102.1562.5583.2473.9404.86515.98718.30720.48323.20925.188
112.6033.0533.8164.5755.57817.27519.67521.92024.72526.757
123.0743.5714.4045.2266.30418.54921.02623.33726.21728.300
133.5654.1075.0095.8927.04219.81222.36224.73627.68829.819
144.0754.6605.6296.5717.79021.06423.68526.11929.14131.319
154.6015.2296.2627.2618.54722.30724.99627.48830.57832.801
165.1425.8126.9087.9629.31223.54226.29628.84532.00034.267
175.6976.4087.5648.67210.08524.76927.58730.19133.40935.718
186.2657.0158.2319.39010.86525.98928.86931.52634.80537.156
196.8447.6338.90710.11711.65127.20430.14432.85236.19138.582
207.4348.2609.59110.85112.44328.41231.41034.17037.56639.997
218.0348.89710.28311.59113.24029.61532.67135.47938.93241.401
228.6439.54210.98212.33814.04130.81333.92436.78140.28942.796
239.26010.19611.68913.09114.84832.00735.17238.07641.63844.181
249.88610.85612.40113.84815.65933.19636.41539.36442.98045.559
2510.52011.52413.12014.61116.47334.38237.65240.64644.31446.928
2611.16012.19813.84415.37917.29235.56338.88541.92345.64248.290
2711.80812.87914.57316.15118.11436.74140.11343.19546.96349.645
2812.46113.56515.30816.92818.93937.91641.33744.46148.27850.993
2913.12114.25616.04717.70819.76839.08742.55745.72249.58852.336
3013.78714.95316.79118.49320.59940.25643.77346.97950.89253.672

例えば、自由度 10 で上側 5% 点は \chi^2_{0.05}(10) = 18.307 である。

計算例

自由度 5 のカイ二乗分布について計算する。

【期待値と分散】

E[Y] = 5, \qquad V[Y] = 2 \times 5 = 10

【上側パーセント点】 \chi^2(5) の上側 5% 点(P(Y > \chi^2_{0.05}(5)) = 0.05 となる値)は数表または統計ソフトから

\chi^2_{0.05}(5) = 11.07

【確率の計算】 P(Y \leq 9) を求める。Y \sim \chi^2(5) のとき

P(Y \leq 9) \approx 0.891

これは数表や統計ソフトで確認できる。

練習問題

問1. Y \sim \chi^2(8) のとき、期待値 E[Y] と標準偏差 \sqrt{V[Y]} を求めよ。
E[Y] = 8, \qquad V[Y] = 2 \times 8 = 16, \qquad \sqrt{V[Y]} = 4
問2. Y_1 \sim \chi^2(3)Y_2 \sim \chi^2(7) が独立のとき、Y_1 + Y_2 の従う分布と、その期待値・分散を求めよ。

再生性より

Y_1 + Y_2 \sim \chi^2(3 + 7) = \chi^2(10)

したがって

E[Y_1 + Y_2] = 10, \qquad V[Y_1 + Y_2] = 20
問3. 正規分布 N(\mu, \sigma^2) からの大きさ 16 の無作為標本の不偏分散を s^2 とする。\dfrac{(n-1)s^2}{\sigma^2} が従う分布を答えよ。

n = 16 なので

\dfrac{(n-1)s^2}{\sigma^2} = \dfrac{15 s^2}{\sigma^2} \sim \chi^2(15)

自由度 15 のカイ二乗分布に従う。

まとめ

項目 内容
分布名 カイ二乗分布(chi-square distribution)
記号 \chi^2(n)
パラメータ n(自由度、正の整数)
定義域 y > 0
確率密度関数 f(y) = \dfrac{1}{\Gamma\left(\frac{n}{2}\right) 2^{\frac{n}{2}}} y^{\frac{n}{2}-1} e^{-\frac{y}{2}}
期待値 E[Y] = n
分散 V[Y] = 2n
モーメント母関数 M(t) = (1 - 2t)^{-\frac{n}{2}}t < \frac{1}{2}
ガンマ分布との関係 \chi^2(n) = Ga\left(\dfrac{n}{2}, 2\right)
再生性 \chi^2(n_1) + \chi^2(n_2) = \chi^2(n_1 + n_2)(独立のとき)
標本分散との関係 \dfrac{(n-1)s^2}{\sigma^2} \sim \chi^2(n-1)

Pythonで実装する

Pythonを使ってカイ二乗分布の計算やシミュレーションを行う。

chi_squared_distribution.py
import numpy as np
from scipy import stats

print("=== カイ二乗分布 ===")

# 自由度 n = 5
n = 5
chi2_dist = stats.chi2(n)

print(f"\n【χ²({n})の基本統計量】")
print(f"期待値: {chi2_dist.mean():.1f} (理論値: {n})")
print(f"分散: {chi2_dist.var():.1f} (理論値: {2*n})")
print(f"標準偏差: {chi2_dist.std():.3f}")

# 確率密度関数の値
print(f"\n確率密度関数 f(y):")
for y in [1, 3, 5, 10]:
    print(f"  f({y}) = {chi2_dist.pdf(y):.4f}")

# 累積分布関数
print(f"\n累積分布関数 F(y) = P(Y ≤ y):")
for y in [5, 9, 11.07]:
    print(f"  P(Y ≤ {y}) = {chi2_dist.cdf(y):.4f}")

# 上側パーセント点
print(f"\n上側パーセント点:")
for alpha in [0.10, 0.05, 0.01]:
    q = chi2_dist.ppf(1 - alpha)
    print(f"  χ²_{{{alpha}}}({n}) = {q:.3f}")

# 再生性の検証
print("\n【再生性の検証】")
n1, n2 = 3, 7
np.random.seed(42)
samples1 = stats.chi2.rvs(n1, size=100000)
samples2 = stats.chi2.rvs(n2, size=100000)
samples_sum = samples1 + samples2

print(f"χ²({n1}) + χ²({n2}) の標本平均: {np.mean(samples_sum):.2f} (理論値: {n1+n2})")
print(f"χ²({n1}) + χ²({n2}) の標本分散: {np.var(samples_sum):.2f} (理論値: {2*(n1+n2)})")

# 標本分散との関係
print("\n【標本分散との関係】")
mu, sigma = 50, 10
sample_size = 16
n_sim = 10000

chi2_stats = []
for _ in range(n_sim):
    sample = np.random.normal(mu, sigma, sample_size)
    s2 = np.var(sample, ddof=1)  # 不偏分散
    chi2_stat = (sample_size - 1) * s2 / sigma**2
    chi2_stats.append(chi2_stat)

chi2_stats = np.array(chi2_stats)
print(f"(n-1)s²/σ² の標本平均: {np.mean(chi2_stats):.2f} (理論値: {sample_size-1})")
print(f"(n-1)s²/σ² の標本分散: {np.var(chi2_stats):.2f} (理論値: {2*(sample_size-1)})")

# 非心カイ二乗分布
print("\n【非心カイ二乗分布】")
n_nc, lambda_nc = 5, 3
nc_chi2 = stats.ncx2(n_nc, lambda_nc)
print(f"非心χ²(n={n_nc}, λ={lambda_nc}):")
print(f"  期待値: {nc_chi2.mean():.2f} (理論値: {n_nc + lambda_nc})")
print(f"  分散: {nc_chi2.var():.2f} (理論値: {2*n_nc + 4*lambda_nc})")
=== カイ二乗分布 === 【χ²(5)の基本統計量】 期待値: 5.0 (理論値: 5) 分散: 10.0 (理論値: 10) 標準偏差: 3.162 確率密度関数 f(y): f(1) = 0.0806 f(3) = 0.1542 f(5) = 0.1220 f(10) = 0.0293 累積分布関数 F(y) = P(Y ≤ y): P(Y ≤ 5) = 0.5841 P(Y ≤ 9) = 0.8909 P(Y ≤ 11.07) = 0.9500 上側パーセント点: χ²_{0.1}(5) = 9.236 χ²_{0.05}(5) = 11.070 χ²_{0.01}(5) = 15.086 【再生性の検証】 χ²(3) + χ²(7) の標本平均: 10.01 (理論値: 10) χ²(3) + χ²(7) の標本分散: 19.97 (理論値: 20) 【標本分散との関係】 (n-1)s²/σ² の標本平均: 14.99 (理論値: 15) (n-1)s²/σ² の標本分散: 30.11 (理論値: 30) 【非心カイ二乗分布】 非心χ²(n=5, λ=3): 期待値: 8.00 (理論値: 8) 分散: 22.00 (理論値: 22)

scipy.stats.chi2 でカイ二乗分布を扱える。シミュレーションにより、再生性や標本分散との関係が理論通りであることが確認できる。非心カイ二乗分布は scipy.stats.ncx2 を使用する。