t 分布(t-distribution)は、母分散が未知のときの母平均の推定・検定において中心的な役割を果たす分布である。正規分布と似た釣鐘型の形状をもつが、裾が重い(tail が厚い)という特徴がある。
t 分布はウィリアム・ゴセット(William Gosset)がギネスビール醸造所での品質管理研究で発見し、「Student」というペンネームで発表したことから、スチューデントの t 分布とも呼ばれる。小標本の統計的推測において不可欠な分布であり、t 検定、回帰係数の検定、信頼区間の構成など、統計学の幅広い分野で用いられる。
定義
Z \sim N(0, 1)(標準正規分布)、Y \sim \chi^2(n)(自由度 n のカイ二乗分布)とし、Z と Y が互いに独立のとき、
が従う分布を自由度 n の t 分布といい、t(n) で表す。
ここで \Gamma(\cdot) はガンマ関数である。係数部分はベータ関数を用いて \dfrac{1}{\sqrt{n}B\left(\dfrac{n}{2}, \dfrac{1}{2}\right)} とも表せる。
t 分布は原点に関して対称であり、自由度 n が大きくなるにつれて標準正規分布 N(0, 1) に近づく。
グラフ
自由度 n を変えたときの t 分布の確率密度関数を、標準正規分布と比較して示す。
自由度が小さいとき(n = 1, 2)は中央が低く裾が重い形状になる。自由度 1 の t 分布はコーシー分布と一致する。自由度が大きくなるにつれて標準正規分布に近づき、n = 30 ではほぼ正規分布と重なっている。
期待値と分散
T \sim t(n) の期待値と分散は、自由度によって存在条件が異なる。
- n = 1 のとき、期待値は存在しない(コーシー分布)
- n = 1, 2 のとき、分散は存在しない
分散 V[T] = \dfrac{n}{n-2} は n > 2 で常に 1 より大きく、n \to \infty で 1 に収束する。これは t 分布が正規分布より裾が重いことを反映している。
例えば、n = 5 のとき V[T] = \dfrac{5}{3} \approx 1.67、n = 30 のとき V[T] = \dfrac{30}{28} \approx 1.07 となる。
特殊な場合
t 分布は自由度によって特殊な分布と関係する。
実用上、n \geq 30 では t 分布を標準正規分布で近似することが多い。パーセント点で比較すると、上側 5% 点は t(5) で 2.015、t(30) で 1.697、N(0,1) で 1.645 である。
t 統計量と標本平均
t 分布が統計的推測で重要な理由は、母分散が未知のときの標本平均の標準化が t 分布に従うことにある。
X_1, X_2, \ldots, X_n が正規分布 N(\mu, \sigma^2) からの無作為標本とする。標本平均を \bar{X}、不偏分散を s^2 = \dfrac{1}{n-1}\sum_{i=1}^{n}(X_i - \bar{X})^2 とするとき、
この結果は、母平均 \mu の信頼区間の構成や、\mu = \mu_0 の仮説検定(t 検定)に用いられる。母分散 \sigma^2 が既知の場合は標準正規分布を用いるが、未知の場合は不偏分散 s^2 で代用するため、t 分布が必要になる。
非心 t 分布
t 分布の定義において、分子の標準正規分布を平均が 0 でない正規分布に置き換えると、非心 t 分布が得られる。
Z \sim N(\lambda, 1)、Y \sim \chi^2(n) が独立のとき、
が従う分布を自由度 n、非心度 \lambda の非心 t 分布といい、t(n, \lambda) で表す。\lambda = 0 のとき、通常の t 分布 t(n) に一致する。
非心 t 分布は、t 検定の検出力(帰無仮説が偽のときに正しく棄却する確率)の計算に用いられる。具体的には、\mu \neq 0 のとき、t 統計量 \dfrac{\sqrt{n}\bar{X}}{s} は自由度 n-1、非心度 \dfrac{\sqrt{n}\mu}{\sigma} の非心 t 分布に従う。
数表
t 分布の上側パーセント点 t_\alpha(n)(P(T > t_\alpha) = \alpha となる値)を示す。
| n | 上側確率 \alpha | ||||
|---|---|---|---|---|---|
| 0.10 | 0.05 | 0.025 | 0.01 | 0.005 | |
| 1 | 3.078 | 6.314 | 12.706 | 31.821 | 63.657 |
| 2 | 1.886 | 2.920 | 4.303 | 6.965 | 9.925 |
| 3 | 1.638 | 2.353 | 3.182 | 4.541 | 5.841 |
| 4 | 1.533 | 2.132 | 2.776 | 3.747 | 4.604 |
| 5 | 1.476 | 2.015 | 2.571 | 3.365 | 4.032 |
| 6 | 1.440 | 1.943 | 2.447 | 3.143 | 3.707 |
| 7 | 1.415 | 1.895 | 2.365 | 2.998 | 3.499 |
| 8 | 1.397 | 1.860 | 2.306 | 2.896 | 3.355 |
| 9 | 1.383 | 1.833 | 2.262 | 2.821 | 3.250 |
| 10 | 1.372 | 1.812 | 2.228 | 2.764 | 3.169 |
| 11 | 1.363 | 1.796 | 2.201 | 2.718 | 3.106 |
| 12 | 1.356 | 1.782 | 2.179 | 2.681 | 3.055 |
| 13 | 1.350 | 1.771 | 2.160 | 2.650 | 3.012 |
| 14 | 1.345 | 1.761 | 2.145 | 2.624 | 2.977 |
| 15 | 1.341 | 1.753 | 2.131 | 2.602 | 2.947 |
| 16 | 1.337 | 1.746 | 2.120 | 2.583 | 2.921 |
| 17 | 1.333 | 1.740 | 2.110 | 2.567 | 2.898 |
| 18 | 1.330 | 1.734 | 2.101 | 2.552 | 2.878 |
| 19 | 1.328 | 1.729 | 2.093 | 2.539 | 2.861 |
| 20 | 1.325 | 1.725 | 2.086 | 2.528 | 2.845 |
| 21 | 1.323 | 1.721 | 2.080 | 2.518 | 2.831 |
| 22 | 1.321 | 1.717 | 2.074 | 2.508 | 2.819 |
| 23 | 1.319 | 1.714 | 2.069 | 2.500 | 2.807 |
| 24 | 1.318 | 1.711 | 2.064 | 2.492 | 2.797 |
| 25 | 1.316 | 1.708 | 2.060 | 2.485 | 2.787 |
| 26 | 1.315 | 1.706 | 2.056 | 2.479 | 2.779 |
| 27 | 1.314 | 1.703 | 2.052 | 2.473 | 2.771 |
| 28 | 1.313 | 1.701 | 2.048 | 2.467 | 2.763 |
| 29 | 1.311 | 1.699 | 2.045 | 2.462 | 2.756 |
| 30 | 1.310 | 1.697 | 2.042 | 2.457 | 2.750 |
| 40 | 1.303 | 1.684 | 2.021 | 2.423 | 2.704 |
| 60 | 1.296 | 1.671 | 2.000 | 2.390 | 2.660 |
| 120 | 1.289 | 1.658 | 1.980 | 2.358 | 2.617 |
| \infty | 1.282 | 1.645 | 1.960 | 2.326 | 2.576 |
例えば、自由度 10 で上側 5% 点は t_{0.05}(10) = 1.812 である。両側 5% 点(上側 2.5%)は t_{0.025}(10) = 2.228 である。n = \infty の行は標準正規分布のパーセント点である。
計算例
自由度 10 の t 分布について計算する。
【期待値と分散】
【上側パーセント点】 t(10) の上側パーセント点は数表または統計ソフトから
【確率の計算】 T \sim t(10) のとき、P(|T| > 2) を求める。対称性より
練習問題
両側 5% なので、片側では上側 2.5% 点を求める。
対称性より、両側 5% 点は \pm 2.086 である。
n = 25 なので
自由度 24 の t 分布に従う。
まとめ
| 項目 | 内容 |
|---|---|
| 分布名 | t 分布(Student's t-distribution) |
| 記号 | t(n) |
| パラメータ | n(自由度、正の整数) |
| 定義域 | -\infty < t < \infty |
| 確率密度関数 | f(t) = \dfrac{\Gamma\left(\frac{n+1}{2}\right)}{\sqrt{\pi n}\,\Gamma\left(\frac{n}{2}\right)} \left(1 + \dfrac{t^2}{n}\right)^{-\frac{n+1}{2}} |
| 期待値 | E[T] = 0(n > 1) |
| 分散 | V[T] = \dfrac{n}{n-2}(n > 2) |
| 特殊な場合 | t(1) = コーシー分布、t(\infty) = N(0,1) |
| t 統計量 | \dfrac{\bar{X} - \mu}{s/\sqrt{n}} \sim t(n-1) |
| 応用 | 母平均の区間推定・検定(t 検定)、回帰係数の検定 |
Pythonで実装する
Pythonを使って t 分布の計算やシミュレーションを行う。
import numpy as np
from scipy import stats
print("=== t 分布 ===")
# 自由度 n = 10
n = 10
t_dist = stats.t(n)
print(f"\n【t({n})の基本統計量】")
print(f"期待値: {t_dist.mean():.1f} (理論値: 0)")
print(f"分散: {t_dist.var():.4f} (理論値: {n/(n-2):.4f})")
# 上側パーセント点
print(f"\n上側パーセント点:")
for alpha in [0.10, 0.05, 0.025, 0.01]:
q = t_dist.ppf(1 - alpha)
print(f" t_{{{alpha}}}({n}) = {q:.3f}")
# 確率の計算
print(f"\n確率の計算:")
print(f"P(T ≤ 1.5) = {t_dist.cdf(1.5):.4f}")
print(f"P(|T| > 2) = {2 * (1 - t_dist.cdf(2)):.4f}")
# 正規分布との比較
print("\n【正規分布への収束】")
z_005 = stats.norm.ppf(0.95)
print(f"N(0,1)の上側5%点: {z_005:.3f}")
for df in [5, 10, 30, 100]:
t_005 = stats.t(df).ppf(0.95)
print(f"t({df})の上側5%点: {t_005:.3f}")
# t 統計量のシミュレーション
print("\n【t 統計量のシミュレーション】")
mu, sigma = 50, 10
sample_size = 16
n_sim = 10000
t_stats = []
for _ in range(n_sim):
sample = np.random.normal(mu, sigma, sample_size)
x_bar = np.mean(sample)
s = np.std(sample, ddof=1)
t_stat = (x_bar - mu) / (s / np.sqrt(sample_size))
t_stats.append(t_stat)
t_stats = np.array(t_stats)
print(f"t統計量の標本平均: {np.mean(t_stats):.4f} (理論値: 0)")
print(f"t統計量の標本分散: {np.var(t_stats):.4f} (理論値: {(sample_size-1)/(sample_size-3):.4f})")
# 非心 t 分布
print("\n【非心 t 分布】")
n_nc, lambda_nc = 10, 2
nc_t = stats.nct(n_nc, lambda_nc)
print(f"非心t(n={n_nc}, λ={lambda_nc}):")
print(f" 期待値: {nc_t.mean():.4f}")
print(f" 分散: {nc_t.var():.4f}")
scipy.stats.t で t 分布を扱える。シミュレーションでは、正規母集団から標本を抽出し、t 統計量を計算している。自由度 n-1 = 15 のとき、t 統計量の理論的な分散は \dfrac{15}{13} \approx 1.154 であり、シミュレーション結果と一致している。非心 t 分布は scipy.stats.nct を使用する。