2017/08/26
2020/04/14
独立性のカイ二乗検定 例題を用いてわかりやすく解説
仮説検定の一種である、カイ二乗検定(\(χ^2検定\) chi-square test)を使う場面はいくつかありますが、今回は、独立性の検定をするためのカイ二乗検定について説明していきます。
独立性のカイ二乗検定は、ざっくりいうと、分割表の上の変数と横(普通は左側)の変数が独立か否かを検定するためのものです。そのときに、独立であるという仮説の下で、「分割表の各セルの期待度数と観測値の差の二乗和がカイ二乗分布に近似できる」という性質を用いて行うので、カイ二乗検定と名付けられています。(カイ二乗分布に近似されるのはデータがある程度多いときです。データが少ない時は、近似が出来ないので、フィッシャーの正確確率検定を行います。⇨Rでフィッシャーの正確確率検定 そのまま使える自作関数例)
・カイ二乗分布について詳しくは、カイ二乗分布のわかりやすいまとめにて、まとめました。
・「そもそも仮説検定がよく分からない!」という方はこちら⇨仮説検定とは?初心者にもわかりやすく解説!
・R言語を使って、実際に独立性のカイ二乗検定を実践したい方はこちら⇨Rで独立性のカイ二乗検定 そのまま使える自作関数
初心者でも分かる、独立性のカイ二乗検定
独立性の検定は、二つの変数に関連が言えるのか否かを判断するためのものです。よって、帰無仮説\(H_0\)と対立仮説\(H_1\)は以下のように定義されます。
\(H_0\):二つの変数は独立である。
\(H_1\):二つの変数は独立ではない(何らかの関連がある。)
また、独立の場合、同時の確率は掛け算で表せるので、これを数式で書くと、
\(H_0\ \ \ \ p_{ij} = p_{i.}p_{.j}\)
\(H_1:not H_0\)
となります。(数式がよく分からなくても、気にしないで大丈夫です!)
これについ仮説検定を行い、p値が有意水準以下になれば、帰無仮説を棄却し、対立仮説を採択、つまり二変数間の関連が言えることになります。
ここで、分かりやすさのために、具体例を用いて説明していくことにしましょう。次のような例題を考えます。
ある病気Aに関して、感染経験について調査したところ、男女別に以下のようなデータが得られた。病気Aの感染経験と、性別の間に関連性は有ると言えるか?有意水準\(α=0.05\)として、独立性のカイ二乗検定によって、結論づけろ。
今回はこの問題を独立性のカイ二乗検定によって、関連性の有無を調べることにします。まず帰無仮説と対立仮説はそれぞれ、
帰無仮説\(H_0\):性別と病気Aの感染経験は独立である(関連性はない)
対立仮説\(H_1\):性別と病気Aの感染経験は独立ではない(何らかの関連性がある)
です。このとき、帰無仮説の下で、分割表の各セルの期待度数というものを考え、観測度数との差に基づいて検定を行うのが、独立性のカイ二乗検定の基本的な考え方です。ちなみに、この手法を提唱したのは、ピアソンという人なので、ピアソンのカイ二乗検定と言われることもあります。
つまり二つの変数が独立であれば、「各セルに入る数字はこのような値になるだろう」という期待度数を考えておいて、実際のデータ(観測データ)がその期待していた値と大きく異なっていたとき、「これは、期待していたものとは違うな。ということは二つの変数は独立じゃないな」と考えるわけです。
ここで、セル番号(\(i,j)\)の期待度数を\(E_{ij}\)とし、セル番号(\(i,j)\)の観測度数を\(n_{ij}\)として、期待とのずれを全セルの観測度数と期待度数の差の二乗を期待度数で割った値の和で定義します。するとこれは、度数が大きいと近似的に自由度\((r-1)(c-1)\)のカイ二乗分布に従うので、
\begin{eqnarray}
\chi^2 = \sum^{r}_{i=1}\sum^{c}_{j=1}\frac{(n_{ij}-E_{ij})^2}{E_{ij}}\ \ \ \ 〜\chi^2((r-1)(c-1))
\end{eqnarray}
と書くことができ、カイ二乗分布を用いた検定なので、カイ二乗検定という名前がつきました。ちなみに、ここで\(r\)と\(c\)は分割表の縦のセルの個数と横のセルの個数です。また、自由度が\((r-1)(c-1)\)になる理由は、行の和と列の和が固定されているので、その分、列・行にそれぞれに関して、自由度が1小さくなるからです。ちなみに、今回の問題の自由度は1になります。
また、検定に用いる、推定期待度数\(E_{ij}\)は、
$$E_{ij} =\frac{n_{i.}n_{.j}}{N}$$
によって、求められます。(こうなる理由は後述)
さて、今回の問題において、期待度数とカイ二乗統計量を求めると、次のようになります。(期待度数の算出法の理論は後で説明)
\begin{eqnarray}
\chi^2 = \frac{(76-61.1)^2}{61.1}+\frac{(42-56.9)^2}{56.9}+\frac{(57-71.9)^2}{71.9}+\frac{(82-67.1)^2}{67.1} = 13.07
\end{eqnarray}
そして、カイ二乗分布表から、p値は0.0003と分かるので、帰無仮説が棄却され、対立仮説を採択。答えは、
「病気Aの感染経験と性別の間に関連性は有ると言える」
ということになります。
最後に、この問題の流れをまとめると、
手順1.二つの変数が独立と仮定すると、各々のセルに入るべき値はこのくらいになるという期待のもと、期待度数を計算。
手順2.期待度数と実際の度数の差の二乗を期待度数で割った結果の和を計算。
手順3.「手順2」の結果は 自由度\((r-1)(c-1)\)のカイ二乗分布に従うのでカイ二乗分布表から、p値を発見。(r、cはそれぞれ行数、列数。今回の場合、自由度は1)
手順4.p値が0.05以下なら、帰無仮説を棄却。
ということになります。
次に、カイ二乗検定に使われる期待度数をどのように計算するかについて見ていきましょう。
分割表の二変数が独立と仮定した場合の期待度数
前の節で、期待度数というのは、
$$E_{ij} =\frac{n_{i.}n_{.j}}{N}$$
によって計算されると説明しましたが、どうしてこのようになるのか?ということを説明していきます。別にこれを知らなくても、公式覚えておけば、カイ二乗検定は問題なく手計算出来るので、ここから先は理論に興味のある方だけお読みいただければと思います。
また、ここからは例題を用いてではなく、一般的な話をするために、以下のような分割表を考えることにします。
\(N\)人の標本によって得られる\(r \times c\)分割表の、\(i\)行目\(j\)列目のセルにおける期待度数\(F_{ij}\)は次のように与えられます。
\begin{eqnarray}
F_{ij} = Np_{ij}
\end{eqnarray}
この\(F_{ij}\)の推定値である、\(E_{ij}\)を求めることが最終目標です。
そこで、\(i\)行目のカテゴリーに属する観測値の、母集団における確率を\(p_{i.}\)とし、\(j\)列目のカテゴリーに属する観測値の、母集団における確率を\(p_{.j}\)と置くことにします。すると、母集団における2変数が独立であるとき、確率の乗法則から次式が成り立ちます。
\begin{eqnarray}
p_{ij} = p_{i.}p_{.j}
\end{eqnarray}
したがって、分割表による期待度数は、次式によって独立性が示されます。
\begin{eqnarray}
F_{ij} = Np_{i.}p_{.j}
\end{eqnarray}
また、\(p_{i.}\)と\(p_{.j}\)の最尤推定量\(\hat{p_{i.}},\hat{p_{.j}}\)は次式です。(ここの部分についてさらに詳しくは、 独立性の検定 期待度数の最尤推定量の導出に記載しました。)
\begin{eqnarray}
\hat{p_{i.}} = \frac{n_{i.}}{N} (i =1,…,r) \\
\hat{p_{.j}} = \frac{n_{.j}}{N} (i =1,…,r)
\end{eqnarray}
この最尤推定値を用いて、2つの変数が独立であると仮定した場合、分割表におけるi行目、j列目のセル内の期待度数が、これまでの式により推定可能です。
その推定値\(E_{ij}\)をここで登場させると、\(E_{ij}\)は次のとおりです。
\begin{eqnarray}
E_{ij} &=& N\hat{p_{i.}}\hat{p_{.j}} \nonumber
&=& N\frac{n_{i.}}{N}\frac{n_{.j}}{N} \nonumber
&=& \frac{n_{i.}n_{.j}}{N} \ \ \ \ \ \ \ \ (i = 1,…,r, j = 1,…,c)
\end{eqnarray}
独立モデルの分割表の期待度数について、さらに詳しくは 独立性の検定 期待度数の最尤推定量の導出に記載しましたので、興味のある方は、合わせてお読みいただきたく思います。
カイ二乗検定の自由度
検定に使うカイ二乗統計量は自由度\((r-1)(c-1)\)のカイ二乗分布に従うことは先に示した通りですが、なぜそうなるのか?ということに補足説明を加えたいと思います。
そもそも自由度というのは、分割表の自由に決められるセルの数のことです。よって、周辺合計がわかっているので、縦横とも1行、あるいは1列減らした、r-1行、c-1列が自由に決められるセルの行数、列数になります。よって、自由に決められる、セルの個数はその積で表され、
$$自由度 = (r-1)(c-1)$$
となります。このことについては、さらに詳しくまとめたので、こちらの記事も合わせてお読みいただければと思います。
⇨カイ二乗検定の自由度(分割表の自由度)
今回の例題をR言語を用いてカイ二乗検定
今回の例題をR言語という統計計算ソフトを利用して、計算すると以下のようなプログラムで出来ます。Rでカイ二乗検定の実践をしたい方は参考にどうぞ。
a = matrix(c(76,57,42,82),2,2) #aという行列を作成
result = chisq.test(a) #カイ二乗検定を実施
result[7] #期待度数の表示
Rでカイ二乗検定について、さらに詳しくはこちら⇨Rで独立性のカイ二乗検定 そのまま使える自作関数
Recommended