- 表紙
- まとめ
- 前提
- コード
- 観察
数学のまとめノート
「t分布」とは
サンプル数が少ないとき正規分布の代わりに利用する確率分布のこと。
準備
正規分布 $N(\mu, \sigma^2)$ からの独立な標本 $X_1$, $\ldots$, $X_n$ の標本平均を $\bar{X}$, 不偏分散を $s^2$ とする.
A. 標本平均を利用した確率変数
確率変数 $T$ は自由度 $n-1$ のt分布に従う.
$\displaystyle T = \frac{\bar{X} - \mu}{s/\sqrt{n}}$
B. 確率密度関数
$\displaystyle f(t) = \frac{\Gamma(\frac{n}{2})}{\sqrt{(n-1)\pi} \ \Gamma(\frac{n-1}{2}) } \left( 1 + \frac{t^2}{n-1} \right)^{-\frac{n}{2}}$
C. t検定の種類
- 一標本t検定
- 対応のある独立ニ標本t検定
- 独立ニ標本t検定(スチューデントのt検定)
- ウェルチのt検定
ポイント解説
標本平均
$\displaystyle \bar{X} = \frac{1}{n} \sum_{i=1}^n X_i$
不偏分散
$\displaystyle s^2 = \frac{1}{n-1} \sum_{i=1}^n (X_i - \bar{X})^2$
イメージ
標本数が大きいとき, t分布と正規分布は近似できます。


C
母平均を調査するときで, 母分散が不明なときにt分布が使えます。
(2) 標本が対で, それぞれの母集団が正規分布に従う場合
(3) 標本が独立で、比較する群の分散が等しいと仮定できる場合
(4) 標本が独立で、等分散性が仮定できない場合
t分布の前提
ウィリアム・ゴセットのビールの研究により発掘されたt分布について、正規分布との違いを解説します。
ギネスビールとt分布
ウィリアム・ゴセットとビール酵母
アイルランド🇮🇪発祥の有名なギネスビールのダブリン醸造所に、ウィリアム・ゴセットという人物が1899年に就職しました。
当時のビールの醸造の過程で、酵母の数を調べるのに、正規分布で推定していました。
酵母の数を正確に計測しなければ、ビールの味が不安定だったそうです。
醗酵タンクが少なくサンプル数が少なかったという点がポイントになります。
正規分布による推定では不充分でした。
正規分布による推定
酵母の数や平均 $\mu$ を求めるために、標本平均 $\bar{X}$ と分散 $\sigma^2$ を使います。
標本平均 $\bar{X}$ が $N(\mu, \sigma^2/n)$ に従うという事実から、次が成り立ちます。
$$\displaystyle \frac{\bar{X} - \mu}{\sigma / \sqrt{n}} \sim N(0,1)$$
ここで推定に使うビール(発酵タンク)のサンプル数は $n$ とします。
t分布をなぜ使うのか?
先ほどの数式が当時も信じられていましたが、分散 $\sigma^2$ をどう使うかが不充分でした。
サンプル数が少ないとき、母分散が分かるときと、分からないときで、話が変わってしまうのです!
母分散が分かるとき(正規分布)
母分散 $\sigma^2$ が分かるとき、定説通り、標本平均 $\bar{X}$ は正規分布 $N(\mu, \sigma^2/n)$ に従います。
標準化して、次が成り立ちます:
$$\displaystyle \frac{\bar{X} - \mu}{\sigma / \sqrt{n}} \sim N(0,1).$$
母分散が分からないとき(t分布)
母分散 $\sigma^2$ が分からないとき、その代わりに不偏分散 $s^2$ を使います。
$$\displaystyle s^2 = \frac{1}{n-1} \sum_{k=1}^n(X_k - \mu)^2$$
しかし、実は、残念ながら、これを使った $\displaystyle \frac{\bar{X} - \mu}{s / \sqrt{n}}$ は正規分布 $N(\mu, s^2/n)$ に従いません。
ゴセットはそれまでのデータから、これが他の確率分布に従うことを発見しました。
スチューデントのt分布といいます。
$$\displaystyle \frac{\bar{X} - \mu}{s / \sqrt{n}} \sim t(n-1)$$
※ $t(n-1)$ は自由度 $n-1$ のt分布という意味です。
ウィリアム・ゴセットの発見
「スチューデント」という名称が突如出てきました。
これはゴセットのペンネームです。ギネスビールでは、企業内で発見したことを実名で外部に発表することが禁止されていたので、ゴセットは「スチューデント」というペンネームを使って論文としてt分布を世界に公開しました。
なお、tには特に理由はないみたいで、フィッシャーとゴセットがアルファベット $a, b, \cdots, z$ で統計手法の話をしていてtになったみたいです。
特に、サンプル数 $n$ が少ないとき、標本平均 $\bar{X}$ という確率変数を調べる際に、不偏分散で標準化した形の確率変数は、正規分布ではなく t分布 $t(n-1)$ に従う。
なお、サンプル数 $n$ が大きいときも、もちろんt分布に従いますが、正規分布との誤差が(ほぼ)なく、正規分布で代用しても可になります。
Python
t分布のPythonコードを紹介します。
そして、t分布と正規分布を同時に描画して、差異を観察するコードを紹介します。
t分布のコード【Python】
t分布のPythonコード
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import norm #normは正規分布
from scipy.stats import t #t分布
n = 10 # サンプルの個数
deg = n-1 # 自由度
#t分布を表示(自由度n-1)
X = np.arange(-3, 3, 0.1)
Y = t.pdf(X, deg)
plt.plot(X, Y, color="red", label = "t of n-1")
#グラフの表示
plt.legend() #凡例表示
plt.show()
t分布の表示結果

t分布と正規分布の比較【Python】
分布を比較するコード
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import norm #normは正規分布
from scipy.stats import t #t分布
n = 2 # サンプルの個数
mu = 50 # 母平均
sigma = 10 # 母標準偏差
deg = n-1 # 自由度
#正規分布を表示
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()
分布の表示結果
自由度 $2$, $1$ のt分布と、標準正規分布を同時に出力しました。

自由度を変えて、いくつも観察してみましょう。
t分布の観察
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分布っぽいことが読み取れました。
(準備中)統計的な仮説検定
t検定に必要な仮定の整理
t検定
標本数が小さい。母分散が分からない。
母集団の正規性の仮定は必要(ヒストグラムを書いてみる)
お菓子の糖質の表記が0.1gであった。無作為に20個のお菓子で調査した結果,実際の糖質の平均は0.2gであった。統計的な差はあるのだろうか?
$$t = \frac{0.2 - 0.1}{SE} = $$
このときの p値(両側検定)は,??%である。
なお,Excel では,2*(1-NORM.S.DIST(I3,TRUE)) と計算した。
A群のサンプル数が $n_a$ で平均値が $\mu_A$, B群のサンプル数が $n_B$ で平均値が $\mu_B$ とする。
t分布に従う確率変数の差について,標準誤差を次のように定めれば,自由度 $n_A + n_B - 2$ のt分布になる。
標準誤差 SE
$$SE = \sqrt{\frac{(n_A - 1)s_A^2 + (n_B-1) s_B^2}{n_A + n_B -2}} \times \sqrt{\frac{1}{n_A} + \frac{1}{n_b}}$$
サンプル数が $n$ のデータで,差に関するデータを $d_i$ とする。
差の標本平均値が $d$ であれば,標準誤差 $SE = s / \sqrt{n}$ を利用して,次の値でt検定できる。
$$t = \frac{d_i - 0}{SE}$$