正規分布に従っているが平均と分散が不明のn個の標本があるときのn+1個目の標本の分布

正規分布に従っているが平均と分散が不明の、サイズが  \displaystyle  n の標本があるとき、同じ正規分布 \displaystyle  n+1 個目のサンプルの分布を調べる。

乱数を使ってシミュレーションして分布を調べた結果、「対応のない2群のt検定」で計算するt分布と一致していることが確認できたので、この記事はそのメモである。

対応のない2群のt検定

 \displaystyle  n_1 個の標本と  \displaystyle  n_2 個の標本があるとする。この2群の標本の分散が等しいが平均が等しいかどうかが不明のときに、2つの平均が異なっていると言えるかどうかを検定するのが、対応のない2群のt検定である。

t検定をするにはt値の計算が必要だが、t値は以下のように計算できる。

 \displaystyle
\begin{align}
\overline{x_1} &= \frac{1}{n_1}\sum_{i=1}^{n_1}x_{1 i} \\
\overline{x_2} &= \frac{1}{n_2}\sum_{i=1}^{n_2}x_{2 i} \\
u_1^2 &= \frac{1}{n_1-1}\sum_{i=1}^{n_1} (x_{1 i} - \overline{x_1})^2 \\
u_2^2 &= \frac{1}{n_2-1}\sum_{i=1}^{n_2} (x_{2 i} - \overline{x_2})^2 \\
u^2 &= \frac{(n_1-1)u_1^2 + (n_2-1)u_2^2}{n_1+n_2-2} \\
t &= \frac{\overline{x_1} - \overline{x_2}}{u\sqrt{\frac{1}{n_1}+\frac{1}{n_2}}}
\end{align}

 \displaystyle  u_1^2  \displaystyle  u_2^2 は2群それぞれの不偏分散であり、 \displaystyle  u^2 は2群のプールした不偏分散である。

 \displaystyle  t  \displaystyle  n_1+n_2-2 の自由度に従ったt分布に従うことを利用して検定する。つまり、 \displaystyle  t の絶対値が大きいほど稀にしか起こらないので、 \displaystyle  t の絶対値が大きい場合には、2群の平均が異なっていると結論づける。p値で説明すると、 \displaystyle  t の絶対値が大きいとp値が小さくなるため帰無仮説が棄却される。

本題

正規分布に従っているが平均と分散が不明のサイズが  \displaystyle  n の標本があるときの  \displaystyle  n+1 個目のサンプルの分布を調べるにあたって、サイズが  \displaystyle  n 個の標本を1つ目の標本、 \displaystyle  n+1 個目のサンプルをサイズ1の2つ目の標本とみなすことにする。

2群目のサイズが1では  \displaystyle  n_2=1 で不偏分散  \displaystyle  u_2^2 は計算できず、t値も計算できないと思っていたが、2群のプールした不偏分散は計算できることに気がついた。

 \displaystyle
\begin{align}
u^2 &= \frac{(n_1-1)u_1^2 + (n_2-1)u_2^2}{n_1+n_2-2} \\
&= \frac{1}{n_1+n_2-2}\left( \sum_{i=1}^{n_1} (x_{1 i} - \overline{x_1})^2 + \sum_{i=1}^{n_2} (x_{2 i} - \overline{x_2})^2 \right) \\
&= \frac{1}{n_1+1-2}\left( \sum_{i=1}^{n_1} (x_{1 i} - \overline{x_1})^2 \right) \\
&= u_1^2
\end{align}

プールした不偏分散は1群目の不偏分散と一致する。したがって、t値は計算できる。

 \displaystyle
\begin{align}
t &= \frac{\overline{x_1} - \overline{x_2}}{u\sqrt{\frac{1}{n_1}+\frac{1}{n_2}}} \\
&= \frac{\overline{x_1} - \overline{x_2}}{u_1 \sqrt{\frac{1}{n_1}+1}}
\end{align}

このt値は  \displaystyle  n-1 の自由度に従ったt分布に従う。

調べたいのは  \displaystyle  n+1 個目のサンプル、つまり2群目の標本(の平均)の分布であるが、次の式で計算できる分布に従う。

 \displaystyle
\begin{align}
x_{n+1} &= \overline{x_2} \\
&= \overline{x_1} - tu_1 \sqrt{\frac{1}{n_1}+1} \\
\end{align}

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分布のグラフである。一致していることがわかる。

f:id:suzuki-navi:20200823115051p:plain

リンク

確率分布に関する私の記事