![見出し画像](https://assets.st-note.com/production/uploads/images/71260117/rectangle_large_type_2_d0cfd7a6c94aa09ab0347ecbfbc6347f.png?width=1200)
【第18回】母平均の検定-前編
今回から数回に分けて、母集団から無作為に抽出した標本をもとに、母集団の平均に関する仮説が正しいかどうかを判断する「母平均の検定」がテーマに書いていきます。
正規分布に関するまとめ
まずは、今回の記事に関わる正規分布に関するいくつかの内容の整理をここで行っておきます。
正規分布は自然現象や社会現象でみられる確率分布(値と確率の対応関係)で、その分布を表した曲線は平均値をピークとした左右対称の山型になることが知られています。
![](https://assets.st-note.com/img/1643949137240-1I8nOiZqFI.png?width=1200)
母集団が平均$${ m }$$、分散$${ \sigma^2 }$$の正規分布に従うとき、そこから無作為に抽出した標本を$${ (X_1, X_2, \ \cdots \ , X_n) }$$とすると、標本平均
$$
\overline{X} = \frac{X_1 + X_2 + \ \cdots \ + X_n }{n}
$$
もまた正規分布に従う確率変数(確率に対応する値)であり、
$${ \overline{X} }$$の平均は$${ m }$$、分散は$${ \frac{\sigma^2}{n} }$$になります。
![](https://assets.st-note.com/img/1643892605844-qujXbq5Fzh.png?width=1200)
母平均の検定
それでは、早速具体的な問題を見てみましょう。
今回考える問題
例題
2000年の小学校5年の全国の平均身長は148.5cm、分散は$${ 7.8^2 }$$であった。現代の小学校5年の児童を無作為に100名抽出したところ、その平均身長は150.0cmであった。小学校5年の児童の身長に変化が起きたかどうかを有意水準5%で検定しなさい。ただし、児童の身長は正規分布に従うものとし、分散は2000年と変わらないものとする。
この問題では、小学校5年の児童の身長に変化が起きたかどうかを判断したいわけですので、現代の全国の小学校5年の児童全体を母集団としたときの母平均$${ m }$$が148.5に等しくないという仮説を立てます。すなわち、帰無仮説と対立仮説は以下のようになります。
[帰無仮説] $${ m = 148.5 }$$ [対立仮説] $${ m \neq 148.5 }$$
基本的な考え方
まず、帰無仮説を仮定したときに大きさ100の標本平均が従う確率分布を考えてみましょう。母平均$${ 148.5 }$$、母分散$${ 7.8^2 }$$であると仮定しているわけですので、最初の「正規分布に関するまとめ」から、標本平均は平均$${ 148.5 }$$、分散$${ \frac{7.8^2}{100} = 0.78^2 }$$の正規分布に従います。ここでそのグラフを確認してみましょう。
from scipy import stats
import matplotlib.pyplot as pltx = np.arange(144,153,0.1)
plt.figure(figsize=(6,4))
plt.plot(x,stats.norm.pdf(x,loc=148.5,scale=0.78),color="b")
plt.grid()
plt.show()
![](https://assets.st-note.com/img/1643894366707-AVMZCnHXiG.png)
標本平均がこのような正規分布に従うとき、「標本平均が150」であることよりも極端なことが起こる確率(p値)が有意水準の0.05より小さいかどうかを判定していきます。
今の場合、p値は標本平均が「150(=148.5 + 1.5)cm以上または147.0(=148.5 - 1.5)cm以下」である確率を指しています。
やや分かりにくいですが、Pythonを使えばすぐにp値を求められます。
2 * (1 - stats.norm.cdf(150.0,loc=148.5,scale=0.78))
stats.norm.cdf(150.0,loc=148.5,scale=0.78)の意味は次の通りです。
statsはscipy.statsモジュール
normは正規分布(normal distribution)
cdfは累積分布関数(cumulative distribution function)→その確率分布において、ある値以下である確率を求める関数
locは平均、scaleは標準偏差
つまり、stats.norm.cdf(150.0, loc=148.5, scale=0.78)は、
平均148.5、標準偏差0.78の正規分布において、確率変数の値が150.0以下になる確率を求めるようなメソッドです。
今の場合は150.0以上である確率を求めたいので、その余事象の確率であることに注意して1から引いています。さらに、グラフの対称性からこの値を2倍すれば、「147.0cm以下または150cm以上」である確率を求めらます。
これを実行すると、0.054470390027477444が出力されます。この値がp値であり、これが有意水準の0.05より大きいため帰無仮説を棄却できないことが分かります。これにより、小学校5年の児童の身長に変化が起きたかは判断できないというのが結論になります。
両側検定と片側検定
仮説検定は最初にどのような仮説を立てるのかが重要になります。
この問題の場合は、「身長に変化が起きたかどうか」を判断する問題でしたので、「現代の全国の小学校5年の児童全体を母集団としたときの母平均が148.5に等しくない」が対立仮説として考えました。
ただ、一方で食生活の変化などで近年、身長の平均が緩やかに増加傾向にありそうという考え、「身長に伸びたかどうか」を判断する問題だったらどうでしょうか。対立仮説は「母平均が148.5より大きい」になります。すなわち、帰無仮説と対立仮説は以下のようになります。
[帰無仮説] $${ m = 148.5 }$$ [対立仮説] $${ m > 148.5 }$$
この場合のp値は帰無仮説のもと、標本平均が「150(=148.5 + 1.5)cm以上」である確率を指しています。つまり、正規分布を表すグラフの150より右側部分だけを指し、先程のPythonのコードで書いた計算式では、2倍をしない計算をすればよいことになります。
1 - stats.norm.cdf(150.0,loc=148.5,scale=0.78)
これを実行すると、0.027235195013738722が出力されます。
すなわち、p値はおよそ0.0272で、これは有意水準の0.05よりも小さいですので、帰無仮説は棄却されます。つまり、小学校5年の児童の身長の平均は2000年と比較して伸びたと判断できるいうのが結論になります。
最初の例のように「等しくない」という仮説を立て、p値を求めるときに分布を表すグラフにおいて左右両側の確率を求めるような検定を両側検定といいます。一方、ここで見た例のように「より大きい」または「より小さい」という仮説を立てて、右側あるいは左側のみの確率を求めるような検定を片側検定といいます。こちらの有意水準と同じで、どのような仮説のもとで考えるか(両側か片側か)を必ず検定を行う前に決めておかなければなりません。
![](https://assets.st-note.com/img/1643978630535-xwYzhTH786.png?width=1200)
標準化と検定統計量
ある値が分布全体においてどれくらい極端な値なのかを調べる指標として、平均と標準偏差を組み合わせを利用することをこれまで見てきました。
ある値が「平均から標準偏差の何倍だけ離れているか」というのが分布全体におけるその値の位置を示す指標となり、これが平均や標準偏差の値の大きさによらない「共通の物差し」の役割を果たしました。
標準化
このことを確率変数を使って再度まとめてみたいと思います。
平均$${ m }$$、分散$${ \sigma }$$の正規分布に従う確率変数$${ X }$$に対して、
$$
Z = \frac{ X - m }{ \sigma }
$$
とすると、確率変数$${ Z }$$は平均$${ 0 }$$、分散$${ 1 }$$の正規分布(標準正規分布)に従うことが分かります。
今回の例にあてはめてみたいと思います。
標本平均$${ \overline{X} }$$は平均$${ 148.5 }$$、分散$${ 0.78^2 }$$の正規分布に従うことから、
$${ Z = \frac{\overline{X}-148.5}{ 0.78 } }$$は標準正規分布に従い、
$${ \overline{X}=150.0 のとき Z = \frac{\overline{X}-148.5}{ 0.78 } = 1.923076923076923 }$$
となります。
検定統計量
偏差が標準偏差の約1.92倍程度では、有意水準5%での両側検定で帰無仮説を棄却できないと言い換えられます。このように考えるとZの値は、仮説検定において帰無仮説を棄却する基準値として非常に有効です。Zの値をZ値といい、Z値のような仮説検定において帰無仮説を棄却するための指標となるような値のことを検定統計量といいます。
そこで気になるのが、それではZ値がいくつを超えると帰無仮説を棄却されるのかという問題です。Pythonで計算してみましょう。
パーセント・ポイント関数(Percent Point Function)を使います。
stats.norm.ppf(p, loc = m, scale = s)
の形で使い、こちらのメソッドの出力値$${ z_0 }$$は、確率変数$${ X }$$が平均m、標準偏差sの正規分布に従うときに、$${ P(X \leqq z_0 ) = p }$$となるような値です。…。はい、ややこしいです。下の例で実際に使いながら見てみましょう。
有意水準5%で両側検定
両側検定の場合は、正規分布のグラフの下の面積について、左端と右端それぞれ2.5%ずつであるような点が基準値となります。今回はそのうち右側のほうの値を求めます。
![](https://assets.st-note.com/img/1644056031011-ykjToLqDBa.png?width=1200)
stats.norm.ppf(0.975, loc = 0, scale = 1)
出力:1.959963984540054
有意水準5%で片側検定
片側検定の場合は、正規分布のグラフの下の面積について、右端5%である点が基準値となります。
![](https://assets.st-note.com/img/1644056878567-pSlK8VaGno.png?width=1200)
stats.norm.ppf(0.95, loc = 0, scale = 1)
出力:1.6448536269514722
それぞれ、およそ$${ 1.96, 1.64 }$$が帰無仮説を棄却するときの基準値になりました。繰り返しになりますが、$${ \overline{X}=150.0 }$$のときは、およそ$${ 1.92 }$$になりますので、両側検定では棄却されず、片側検定では棄却されることがここからも分かります。
![](https://assets.st-note.com/img/1643955052501-YhbonRK3zW.png?width=1200)
したがって上図の値を使うことを認めれば、p値を算出しなくても、Z値を求めることで、直ちに帰無仮説を棄却するかどうかを判断できるということです。この値は、標準正規分布表にまとめられており、ほとんどの数学Bの教科書の巻末に掲載されています。
まとめ
今回は、母集団から無作為に抽出した標本をもとに、母集団の平均に関する仮説が正しいかどうかを判断する母平均の検定についてまとめました。
ただ、今回の問題はよく考えると不自然なところがあります。それは母集団の特徴量である母平均を推測する仮説検定を行っていながら、母分散が既知のものとして検定を行っているところです。
そこで、より現実的な問題を考えるときは母分散が未知のある時の母平均の検定であるt検定といわれる手法が一般によく使われます。次回はこちらについてまとめてみたいと思っています。
最後までお読みいただきありがとうございました。