
t分布の観察
確率変数 $T$ の観察
$n$ 個の正規分布 $N(\mu, \sigma^2)$ から,確率変数 $T$ の値を10000回算出して試行した結果のグラフと,正規分布 $N(0,1)$,t分布 $t(n)$, $t(n-1)$ の確率分布の違いを観察してみました。
$$\displaystyle T = \frac{\bar{X} - \mu}{s / \sqrt{n}}$$
#t分布の観察
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import norm #normは正規分布
from scipy.stats import t #t分布
n = 5 # 群の個数
mu = 50 # 母平均
sigma = 10 # 母標準偏差
deg = n-1 # 自由度
trial = 10000 # 試行回数
data = []
for i in range(trial):
# 平均 mu, 標準偏差 sigma の正規乱数を n個取得
sample = np.random.normal(mu, sigma, n)
# 標本平均を計算する
x_bar = np.average(sample)
#標本分散を計算する
s2 = sum((x - x_bar)**2 for x in sample)/(n-1)
#確率変数Tを計算する
T = (x_bar - mu)/np.sqrt(s2)*np.sqrt(n)
data.append(T)
# ヒストグラムを出力
plt.hist(data, bins=200, density=True, label = "T from sample") #densityは確率密度にする命令
#正規分布を表示
X = np.arange(-3, 3, 0.1)
Y = norm.pdf(X, 0, 1)
plt.plot(X, Y, color="orange", label = "N(0,1)")
#t分布を表示(自由度n-1)
W = np.arange(-3, 3, 0.1)
Z = t.pdf(W, deg)
plt.plot(W, Z, color="red", label = "t of n-1")
#t分布を表示(自由度n)
WW = np.arange(-3, 3, 0.1)
ZZ = t.pdf(WW, deg+1)
plt.plot(WW, ZZ, color="black", label = "t of n")
#グラフの表示
plt.legend() #凡例表示
plt.show()
試行結果
$n = 100$ という大きい値のときは,3つの確率分布は重なって違いが無いように見えます(左)。


$n=5$ のときは,正規分布(黄色)だとヒストグラムを上手に近似できていないように思われます。
自由度 $n$ と $n-1$ の t分布の方がヒストグラムを上手に近似しているように見えます。
ただし, $n$ と $n-1$ のどちらの自由度の方が近似に適合しているのかは,この図からは読み取れません。
標本分散を利用した確率変数 $T$ の分布は, t分布っぽいことが読み取れました。