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分布っぽいことが読み取れました。

コメントを残す