- まとめ
- 目次
- ①前提
- ②コード
- ③観察
「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分布の前提(タイミング)
ウィリアム・ゴセットの発見
1900年ごろのビールは、酵母の数が正確に計測できなかったために、味が不安定だったと言われる。 発酵タンクの数はとても少なかった(小標本であった)にもかかわらず、正規分布をつかって推定していたため、精度が悪かった。
ゴセットはそれまでのデータを調べ上げ、平均からの偏差を不偏標準誤差で割った単純な値(t値)が、確率分布(t分布)に従うことを発見した。
「スチューデント」はゴセットのペンネームだそうです。
母分散が分かるとき(正規分布)
母分散 $\sigma^2$ が既知のとき, 標本平均 $\bar{X}$ は正規分布 $N(\mu, \sigma^2/n)$ を使って検定することができます。
標本平均 $\bar{X}$ を母標準偏差 $\sigma$ を使って $\sigma / \sqrt{n}$ で正規化した確率変数は標準正規分布に従う;
$$\displaystyle \frac{\bar{X} - \mu}{\sigma / \sqrt{n}} \sim N(0,1).$$
母分散が分からないとき(t分布)
母分散 $\sigma^2$ が不明であるとき,標本平均 $\bar{X}$ は$\sigma$ を使って正規化できないので正規分布を使って検定することができません。
$\sigma^2$ の代わりに標本分散 $s^2$ を代用してみた時に, 残念ながら次は正しくありません。
$$\displaystyle \frac{\bar{X} - \mu}{s / \sqrt{n}} \sim N(0,1)$$
こうではなく, 次が実際に正しい。
標本平均 $\bar{X}$ を不偏分散 $s^2$ を使って $s / \sqrt{n}$ で正規化した確率変数は自由度 $n-1$ のt分布に従う;
$$\displaystyle \frac{\bar{X} - \mu}{s / \sqrt{n}} \sim t(n-1).$$
※ $t(n-1)$ は自由度 $n-1$ の t分布である。
ちなみに, $n$ が大きいときは,正規分布とt分布は(ほぼ)同じだよ。
標本平均 $\bar{X}$ という確率変数を調べる際に,標本分散を代用で利用し正規化した形の確率変数を作成すると,正規分布ではなく t分布 $t(n-1)$ に従うことが分かった。
t分布のPythonコード
t分布のコード
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分布と正規分布の比較
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()
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}$$