#不偏分散の説明
標本分散が標本の分散である。不偏分散は標本から算出する所は標本分散と同じだが、母分散を推定した分散である点が異なる。不偏分散は母分散の不偏推定量である。
標本数nが十分に大きくない場合、標本分散は母集団の分散より小さくなる。そこで不偏分散は、期待値が母集団の分散に一致するように、標本分散の算出式にn/(n-1)をかけている。
・標本分散
$s^2 =\frac{1}{n}\sum_{i=1}^n (x_i-m)^2 $
・不偏分散
$u^2 =\frac{1}{n-1}\sum_{i=1}^n (x_i-m)^2 $
※mは標本平均
たしかに標本分散は母分散より小さくなるのは直感で理解できる。標本の平均は、母数の平均に比べて個々の標本値に近い場所に存在するはずなので、標本分散が母分散より小さくなるのは当然であろう。
だからと言って、二乗和をnで割る代わりに(n-1)で割る不偏分散の期待値が、何故母分散と一致するのだろう。数学的な根拠はあるのだろうか。
確認の為に証明してみよう。
#証明:標本の不偏分散の期待値は母集団の分散
母平均をμ、母分散を$σ^2$、サンプルサイズnで抽出した標本の標本平均をm、標本分散を$s^2$とする。
標本抽出を何度も行うとすると、標本平均$M$も標本分散$S^2$も確率変数と考える事ができる。
$\begin{aligned}
E[S^2]
&= E[ \frac{1}{n}\sum(X_i-M)^2 ]\
&= E[ \frac{1}{n}\sum X_i^2 -2M\frac{1}{n}\sum X_i - \frac{1}{n}\sum M^2 ]\
&= E[ \frac{1}{n}\sum X_i^2 -M^2 ]\
&=\frac{1}{n}\sum E[X_i^2] -E[M^2] ・・・①\
ここで\
E[X_i^2]&=E[X^2]\
また\
σ^2 &=E[(X-μ)^2]\
&=E[X^2] -2μE[X] +E[μ^2]\
&=E[X^2] -2μμ +μ^2\
&=E[X^2] -μ^2\
より\
E[X_i^2]&=σ^2 +μ^2 ・・・②
\end{aligned}$
またmの分散について
$\begin{aligned}
V[M]
&= V[\frac{1}{n}\sum X_i]\
&= \frac{1}{n^2} (V[X_1]+V[X_2] ・・・V[X_n])\
&= \frac{1}{n^2} (nσ^2)\
&= \frac{σ^2}{n}
\end{aligned}$
一方
$\begin{aligned}
V[M] &= E[(M-μ)^2]\
&= E[M^2]-μ^2\
\end{aligned}$
より
$\begin{aligned}
E[M^2]&=\frac{σ^2}{n}+μ^2 ・・・③
\end{aligned}$
②、③を①に代入する。
$\begin{aligned}
E[S^2]
&=\frac{1}{n}\sum E[X_i^2] -E[M^2] \
&=\frac{1}{n}\sum (σ^2 +μ^2) -(\frac{σ^2}{n}+μ^2)\
&=(n-1)σ^2/n\
\end{aligned}$
つまり
$\begin{aligned}
σ^2 &=nE[S^2]/(n-1) \
&= E[ \frac{1}{n-1}\sum(X_i-M)^2 ]\
\end{aligned}$
母分散は、標本値から標本平均を引いた二乗和を(n-1)で割った不偏分散の期待値となった。
#不偏分散の期待値をプログラムで確認
不偏分散の期待値は、本当に母集団の分散に一致しているのだろうか。pythonで試してみる。
import numpy as np
sample_var_array = np.zeros(10000)#標本分散の配列の準備
unbaias_var_array = np.zeros(10000)#不偏分散の配列の準備
np.random.seed(1)
for i in range(0,10000):
#母集団を平均0,標準偏差2の正規分布として5個サンプリング
sample = np.random.normal(loc=0, scale=2, size=5)
sample_var_array[i] = np.var(sample,ddof=0)#varのddof(Delta Degrees of Freedom)が0なら分散(デフォルト)
unbaias_var_array[i]= np.var(sample,ddof=1)#varのddof(Delta Degrees of Freedom)が1なら不偏分散
#標本分散の平均
print(np.mean(sample_var_array)) #結果:3.22
#不偏分散の平均
print(np.mean(unbaias_var_array)) #結果:4.03
上記プログラムでは、標準偏差が2(分散が4)の正規分布に従う母集団から標本を5個サンプリングし、5個の標本から不偏分散を算出する処理を1万回実施し、その平均を出力している。たしかに不偏分散は4になった。つまり不偏分散の期待値は母分散に一致する事が分かる。