正規分布に従っているが平均と分散が不明のn個の標本があるときのn+1個目の標本の分布
正規分布に従っているが平均と分散が不明の、サイズが の標本があるとき、同じ正規分布の 個目のサンプルの分布を調べる。
乱数を使ってシミュレーションして分布を調べた結果、「対応のない2群のt検定」で計算するt分布と一致していることが確認できたので、この記事はそのメモである。
対応のない2群のt検定
個の標本と 個の標本があるとする。この2群の標本の分散が等しいが平均が等しいかどうかが不明のときに、2つの平均が異なっていると言えるかどうかを検定するのが、対応のない2群のt検定である。
t検定をするにはt値の計算が必要だが、t値は以下のように計算できる。
、 は2群それぞれの不偏分散であり、 は2群のプールした不偏分散である。
は の自由度に従ったt分布に従うことを利用して検定する。つまり、 の絶対値が大きいほど稀にしか起こらないので、 の絶対値が大きい場合には、2群の平均が異なっていると結論づける。p値で説明すると、 の絶対値が大きいとp値が小さくなるため帰無仮説が棄却される。
本題
正規分布に従っているが平均と分散が不明のサイズが の標本があるときの 個目のサンプルの分布を調べるにあたって、サイズが 個の標本を1つ目の標本、 個目のサンプルをサイズ1の2つ目の標本とみなすことにする。
2群目のサイズが1では で不偏分散 は計算できず、t値も計算できないと思っていたが、2群のプールした不偏分散は計算できることに気がついた。
プールした不偏分散は1群目の不偏分散と一致する。したがって、t値は計算できる。
このt値は の自由度に従ったt分布に従う。
調べたいのは 個目のサンプル、つまり2群目の標本(の平均)の分布であるが、次の式で計算できる分布に従う。
t分布に従うことをシミュレーションで確認
乱数で標本を作ってt値を計算して、分布図を作った。
import numpy as np import scipy.stats as stats import matplotlib.pyplot as plt import math n = 2 a = 1 / math.sqrt(1 / n + 1) n2 = n / (n-1) def t(x): return (x[n] - np.mean(x[0:n])) / np.sqrt(np.var(x[0:n]) * n2) * a x1 = np.random.randn(100000, n + 1) y1 = list(map(t, x1)) plt.hist(y1, bins=np.linspace(-6, +6, 121)) x2 = np.linspace(-6, +6, 121) y2 = stats.t.pdf(x2, n-1) * 10000 plt.plot(x2, y2) plt.show()
青がシミュレーション結果の分布で、橙がt分布のグラフである。一致していることがわかる。
リンク
確率分布に関する私の記事