2017/08/31
2020/04/14
適合度検定をカイ二乗検定で行う例題と手順
適合度検定(goodness of fit test)とは、帰無仮説における期待度数に対して、実際の観測データの当てはまりの良さを検定するための手法です。今回は、適合度の検定をカイ二乗検定で行う方法をご紹介いたします。
⇨カイ二乗分布について詳しくは、カイ二乗分布のわかりやすいまとめにて、まとめました。
目次
適合度のカイ二乗検定を例題を用いてわかりやすく解説
仮説検定なので、まず帰無仮説\(H_0\)と対立仮説\(H_1\)をそれぞれ以下のように定義します。
\(H_0\):観測データは理論値に当てはまっている。
\(H_1\):観測データは理論値に当てはまっていない。
では、次のような例題を考えることにしましょう。
大人と子供が同じ数だけいる、母集団からランダムに100人を選ぼうとしたところ、大人が60人、子供が40人選ばれた。これはランダムに選んだ結果と言えるか?適合度のカイ二乗検定を用いて、有意水準\(α = 0.05\)で評価せよ。
この問題を考えるときの帰無仮説\(H_0\)と対立仮説\(H_1\)はそれぞれ、以下のようになります。
\(H_0\):100人はランダムに選ばれた。
\(H_1\):100人はランダムに選んだつもりだったが、そうではなかった。
今回の問題は母集団の大人と子供の人数が同じなので、ランダムに選ぶ場合、大人を選ぶ確率と子供を選ぶ確率は同じになります。よって、100人選ぶ場合、期待度数は50人ずつです。それを表にまとめると以下のようになります。(期待度数は、 全体の度数×期待確率 で計算されます。)
ここで、100人がランダムに選べれれたとする、帰無仮説\(H_0\)の下で今回の結果を評価することにします。適合度検定をカイ二乗検定によって行う場合、その式は、カテゴリナンバー\(i\)番目の観測度数を\(n_{i}\)期待度数を\(E_{i}\)とすると、
\begin{eqnarray}
\chi^2 = \sum^{r}_{i=1}\frac{(n_{i}-E_{i})^2}{E_{i}}\ \ \ \ 〜\chi^2(r-1)
\end{eqnarray}
となります。ここでrはカテゴリー数であり、自由度がカテゴリーの数より1小さいのは、度数の合計が一定(既知)なので、カテゴリー数より一つ少ない個数分のセル情報が得られれば、残りの一つは、度数の合計から計算可能であることによります。分割表の自由度について詳しくは、カイ二乗検定の自由度(分割表の自由度)をご覧ください。
この式を今回の問題に適用させると、自由度1のカイ二乗分布になり、
\begin{eqnarray}
\chi^2 = \frac{(60-50)^2+(40-50)^2}{50} = 4 \ \ \ \ 〜\chi^2(1)
\end{eqnarray}
となるのでカイ二乗値は4ということになります。カイ二乗分布表により、p値は0.0455となるので、有意水準5%では、帰無仮説は棄却され、対立仮説が採択されます。つまり、ランダムに選んだつもりだったが、ランダムにはなっていなかったという結果になります。
ちなみにもし、有意水準1%(\(α = 0.01\))の問題の場合、帰無仮説は棄却する理由は無くなります。
適合度の検定をカイ二乗検定で行う手順まとめ
適合度検定をカイ二乗検定で行う場合の流れは基本的に上記の例題で示した通りです。ここからは、話を一般化させて、その手順を示していきます。観測度数と期待度数が下の表のようになっているものを考えます。
このとき、カイ二乗の適合度検定は以下のような手順で行われます。
1.期待確率から期待度数を計算
2.カイ二乗値を計算。(これは、観測度数と期待度数の差の二乗を期待度数で割った値の和で計算される。)
3.カイ二乗分布表から、2で計算したカイ二乗値に基づくp値を求める。有意水準以下ならば帰無仮説を棄却。
この手順に解説を加えていきます。
1.期待確率から期待度数を計算
各属性の期待度数\(E_i\)はその属性の期待確率\(P_i\)を用いて、
\(E_i = n_i × P_i\)
と表されます。
2.カイ二乗値を計算
カイ二乗値は以下の式で計算されます。
\begin{eqnarray}
\chi^2 = \sum^{r}_{i=1}\frac{(n_{i}-E_{i})^2}{E_{i}}\ \ \ \ 〜\chi^2(r-1)
\end{eqnarray}
3.p値を求める
カイ二乗分布のパーセント点を示す表から、2で求めたカイ二乗値を見つけ出し、p値を求めます。それがあらかじめ定められた、有意水準以下であれば、帰無仮説を棄却することになります。
上記の例題の計算を統計ソフトRで行う方法
例題をRで行うためのプログラムを載せておきます。Rを使えば簡単に答えの確認が行えます。
> a = c(40,60)
> chisq.test(a)
Chi-squared test for given probabilities
data: a
X-squared = 4, df = 1, p-value = 0.0455
Rでカイ二乗検定についてさらに詳しくは、 Rで独立性のカイ二乗検定 そのまま使える自作関数に記載致しました。
独立性のカイ二乗検定は、こちら⇨ 独立性のカイ二乗検定 例題を用いてわかりやすく解説
Recommended