t分布とは?

(正規分布のレクチャーを先に見ることをおすすめします)

確率変数$x$が、平均$\mu$、標準偏差$\sigma$の正規分布に従うとき、$x$の$N$個の平均$\overline{X}$は、平均$\mu$、標準偏差$\frac{\sigma}{\sqrt{N}}$の正規分布に従います。これは、以下の様な新しい変数$z$を導入して、

$$z=\frac{\overline{X}-\mu}{\sigma/\sqrt{N}}$$

$z$が標準正規分布(平均0、標準偏差1)に従うと言い換えることが出来ます。

しかし、母集団の平均$\mu$や標準偏差$\sigma$が分かっていることは稀なので、実際には、これらを推定量で代用します。平均値はそのまま計算すれば良いですが、分散の不偏推定量は、以下の式で求められます。$$\hat{\sigma}^{2} = \frac{1}{N-1}\sum_{i=1}^{N}(x_{i}-\overline{X})^{2}$$

ここで、あらたな変数$t$を導入してみます

$$t=\frac{\overline{X}-\mu}{\hat{\sigma}/\sqrt{N}}$$

先ほどの$z$とよく似ていますが、このtは特にNが小さい(一般的には30未満)とき正規分布に従いません。では、どんな分布に従うかというと、$\nu=N-1$として、以下の様な分布に従います。

$$ f(t) = \frac {\varGamma(\frac{v+1}{2})}{\sqrt{v\pi}\varGamma(\frac{v}{2})} (1+\frac{t^2}{v})^{-\frac{v+1}{2}}$$

ただし: $$\varGamma(n)=(n-1)!$$ これはガンマ関数と呼ばれる関数です。

$N$が大きくなると、この分布は正規分布に漸近します。ですから、t分布はNが小さいときに、標本の平均が従う分布と考えることができます。 $\nu$は、t分布の自由度と呼ばれ、この値が決まれば分布が決まります。また、発見者ゴセットの最初の論文のペンネームから、スチューデント分布とよばれることもあります。

Pythonでt分布を扱ってみましょう。

In [1]:
import matplotlib.pyplot as plt
%matplotlib inline

# scipy.statsの中にt分布があります。
from scipy.stats import t

import numpy as np

# x軸の数字を用意します。
x = np.linspace(-5,5,100)

# 自由度3のt分布
rv = t(3)

# 確率密度関数(PDF)を書きます。
plt.plot(x, rv.pdf(x))
Out[1]:
[<matplotlib.lines.Line2D at 0x107ab0be0>]