「t分布」について学ぶ(統計学 / 確率分布)

2023年5月13日

この記事では、統計学を初めて学ぶ筆者が、「確率分布」における「t分布」について学んだ内容について記載しています。

学習には、Wikipediaの「t分布」の記事を参考にし、Pythonのプログラミングにも触れ、理解を深めました。

プログラミングには、機械学習ライブラリのSciPyを使用しました。

この記事は、他の人が参考にできるよう、わかりやすく書くことを心がけました。

t分布

統計学や確率論において、t分布とは、標本サイズが小さく、かつ母集団の平均や分散が未知の場合に使用される確率分布です。通常、母集団の平均や分散が未知の場合、標本からその推定値を求める必要があります。しかし、標本サイズが小さい場合、標本から得られる推定値は正確ではなく、信頼性が低いため、t分布を使って推定値を補正します。

また、t分布は、2つの平均値の差の統計的有意性を検討するt検定にも使われます。例えば、ある薬の効果を調べる場合、薬を飲んだグループとプラセボを飲んだグループで平均的な効果に差があるかどうかを検討するために、t分布を用いたt検定を行います。

t分布は、正規分布を特別な場合として扱ったものであり、正規分布に似た形をしていますが、裾がやや広がっています。具体的には、t分布の形状は標本サイズに依存するため、標本サイズが大きくなると正規分布に近づきます。

統計学および確率論において、t分布(ティーぶんぷ、またはスチューデントのt分布、英: Student’s t-distribution)は、連続確率分布の一つであり、正規分布する母集団の平均と分散が未知で標本サイズが小さい場合に平均を推定する問題に利用される。また、 2つの平均値の差の統計的有意性を検討するt検定で利用される。t分布は、一般化双曲型分布の特別なケースである。

t分布

Pythonプログラミング

「t分布」をイメージしやすいようPythonでのプログラミングについても学びます。

プログラム

自由度n-1のt分布と正規分布の確率密度関数をプロットします。自由度は、標本サイズnから1を引いたものです。t分布と正規分布の確率密度関数を計算して、それらをグラフにプロットします。

自由度とは、t分布やカイ二乗分布などの確率分布において、分布の形状を決定するパラメータの1つです。自由度が大きいほど、分布の形状は正規分布に近づきます。一般的に、自由度は標本サイズから1を引いた値に等しいことが多いですが、場合によっては別の値が用いられることもあります。例えば、t分布においては、自由度が小さい場合には分布の両端が広がり、外れ値が出やすくなる傾向があります。

import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import t, norm

# 標本サイズと自由度の設定
n = 10
df = n - 1

# t分布と正規分布のx軸の範囲
x = np.linspace(-5, 5, 100)

# t分布と正規分布の確率密度関数の計算
t_dist = t(df)
norm_dist = norm()

t_pdf = t_dist.pdf(x)
norm_pdf = norm_dist.pdf(x)

# t分布と正規分布のプロット
plt.plot(x, t_pdf, label="t-distribution")
plt.plot(x, norm_pdf, label="normal distribution")
plt.legend()

# グラフのタイトルとx軸、y軸のラベルの設定
plt.title(f"t-distribution and normal distribution (df={df})")
plt.xlabel("x")
plt.ylabel("probability density function")

plt.show()

実行結果

t分布と正規分布の確率密度関数がプロットされたグラフが表示されます。

プログラムの説明

import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import t, norm

NumPy, Matplotlib, SciPyのt分布と正規分布を使用するためのライブラリをインポートします。

# 標本サイズと自由度の設定
n = 10
df = n - 1

標本サイズを10とし、自由度を標本サイズ-1で設定します。

# t分布と正規分布のx軸の範囲
x = np.linspace(-5, 5, 100)

-5から5までの範囲を100分割したx軸の値を生成します。

# t分布と正規分布の確率密度関数の計算
t_dist = t(df)
norm_dist = norm()

t分布と正規分布のインスタンスを生成します。自由度を引数に与えたt()関数は、自由度dfのt分布のインスタンスを返します。norm()関数は、平均が0、標準偏差が1の正規分布のインスタンスを返します。

t_pdf = t_dist.pdf(x)
norm_pdf = norm_dist.pdf(x)

t分布と正規分布のx軸上での確率密度関数の値を計算します。

# t分布と正規分布のプロット
plt.plot(x, t_pdf, label="t-distribution")
plt.plot(x, norm_pdf, label="normal distribution")
plt.legend()

t分布と正規分布の確率密度関数をプロットします。

# グラフのタイトルとx軸、y軸のラベルの設定
plt.title(f"t-distribution and normal distribution (df={df})")
plt.xlabel("x")
plt.ylabel("probability density function")

グラフのタイトルとx軸、y軸のラベルを設定します。

plt.show()

グラフを表示します。

t分布による区間推定

「t分布による区間推定」とは、母集団の平均や分散が未知の場合に、標本から得た統計量を用いて母集団のパラメータ(平均や分散)を推定する方法の一つです。標本サイズが小さい場合には、標本から得た推定値が不正確になるため、t分布を使って推定値を補正します。

t分布による区間推定では、まず標本から得た統計量(標本平均や標本標準偏差など)を用いて、母集団パラメータの推定値を計算します。次に、t分布表を用いて、信頼区間の上限と下限を求めます。信頼区間の幅は、t分布表における有意水準や自由度によって異なります。例えば、95%信頼区間を求める場合には、有意水準が0.05となります。自由度は、標本サイズから1を引いた値となります。

たとえば、ある工場で生産された製品の重さを調査するために、10個の製品をランダムに選んで重さを測定したとします。この場合、母集団の平均重さを求めるためにt分布による区間推定を行うことができます。まず、10個の製品の重さの標本平均を計算し、それを母集団の平均の推定値とします。次に、t分布表を用いて、95%信頼区間を求めます。たとえば、自由度9のt分布表において、有意水準0.05の場合、信頼区間の上限と下限はそれぞれ2.821と-2.821となります。これらの値を用いて、推定値の信頼区間を求めることができます。

t検定

t検定は、2つの標本の平均値に差があるかどうかを検討する統計的手法です。通常、標本から得られた2つの平均値の差を検討しますが、母集団の平均値の差を推定することが目的です。例えば、ある薬の効果を調べる場合、薬を飲んだグループとプラセボを飲んだグループで平均的な効果に差があるかどうかを検討するために、t検定を行います。

t検定では、2つの標本の平均値の差を標準誤差を用いてt値に変換し、t分布表を用いてp値を求めます。p値は、2つの標本の平均値の差が無作為に発生した場合に、その差が検定統計量(t値)以上になる確率を示します。p値が有意水準より小さい場合、2つの標本の平均値には統計的に有意な差があると結論づけることができます。

例えば、ある薬を服用したグループとプラセボを服用したグループの血圧を比較する場合を考えます。この場合、薬を服用したグループの平均血圧とプラセボを服用したグループの平均血圧に差があるかどうかを検討するために、t検定を行います。t検定の結果、p値が有意水準より小さい場合、例えば0.05以下であれば、薬を服用したグループとプラセボを服用したグループの平均血圧に統計的に有意な差があると結論づけることができます。

以下にt検定の手順をステップ分けして記載します。

  1. 帰無仮説と対立仮説を設定する
    • 例えば、「ある薬の効果がある」という対立仮説に対して、「薬の効果はない」という帰無仮説を設定する。
  2. 有意水準を決める
    • 有意水準とは、帰無仮説が棄却される基準となる確率のことを指します。一般的には、0.05や0.01などが用いられます。
  3. 検定統計量を計算する
    • 検定統計量とは、2つの標本の平均値の差を標準誤差を用いてt値に変換したものです。具体的には、以下の式で計算されます。 t = (X1 – X2) / SE
      • X1:標本1の平均値
      • X2:標本2の平均値
      • SE:標準誤差(SE = √[(s1^2/n1) + (s2^2/n2)])
      • s1:標本1の標準偏差
      • s2:標本2の標準偏差
      • n1:標本1のサンプルサイズ
      • n2:標本2のサンプルサイズ
  4. 自由度を計算する
    • 自由度とは、t分布の表における行と列の交点の値を求めるために必要なパラメータであり、以下の式で計算されます。 df = n1 + n2 – 2
      • df:自由度
  5. t分布表を用いて、p値を求める
    • p値とは、帰無仮説が正しい場合に、検定統計量以上の値が得られる確率を示すもので、t分布表を用いて求めます。具体的には、自由度と検定統計量からt分布表を参照し、p値を求めます。
  6. p値を有意水準と比較し、帰無仮説を棄却するかどうかを判断する
    • p値が有意水準より小さい場合、帰無仮説を棄却し、対立仮説を採択します。逆に、p値が有意水準より大きい場合、帰無仮説を採択します。

p値は、帰無仮説が正しい場合に得られたデータが、標本抽出のランダム性によって生じるばらつきの範囲内であると考えることができる確率を示します。この確率を求めるために、t検定では標本から求めた検定統計量(t値)が、自由度と有意水準に基づくt分布のどの位置にあるかを確認します。そして、そのt値以上の値が得られる確率を求めることができます。帰無仮説が正しい場合、この確率は有意水準と等しいとなります。

p値が小さいほど、帰無仮説が正しいと仮定しても、実際に得られた標本がその仮説に矛盾するほど極端な結果である可能性が高くなります。このため、p値が有意水準より小さい場合、帰無仮説を棄却し、対立仮説を採択することができます。つまり、2つの標本の平均値には統計的に有意な差があると結論づけることができます。