7.3. 独立性の検定#
独立性の検定(test of independence)とは、2 つのカテゴリー変数が互いに関連しているかどうかを調べるための統計的手法です。簡単に言うと、「ある 1 つの要素が別の要素に影響を与えているのか」を確かめる検定です。具体例を取り上げれば、インフルエンザの予防接種がインフルエンザ感染に影響を与えているか、年齢層がスマートフォンの利用頻度に関係しているのかなどを統計的に解釈を与えます。このような独立性を検定するにはフィッシャーの正確確率検定(Fisher’s exact test)とカイニ乗検定(Chi-squared test)を利用します。
7.3.1. フィッシャーの正確確率検定#
具体的な数値を用いて、Python による独立性の検定の方法を見ていきましょう。あるシーズンにおいて、インフルエンザの予防接種を受けなかった 572 人を対象に追跡調査を行ったところ、262 人が感染し、310 人は感染しませんでした。一方で、予防接種を受けた 428 人のうち、145 人が感染し、283 人は感染しませんでした。
感染 |
未感染 |
合計 |
|
---|---|---|---|
未接種 |
262 |
310 |
572 |
接種 |
145 |
283 |
428 |
合計 |
407 |
593 |
1000 |
フィッシャーの正確確率検定でインフルエンザの予防接種がインフルエンザ感染に影響を与えているかをみていきましょう。帰無仮説を「予防接種とインフルエンザ感染は関連しない」として、有意水準を 5% とします。Python でフィッシャーの正確確率検定を行うには、SciPy ライブラリ stats モジュールの fisher_exact
関数を使います。
import scipy.stats as stats
x = [[262, 310],
[145, 283]]
res = stats.fisher_exact(x)
res.statistic
np.float64(1.6495216907675194)
res.pvalue
np.float64(0.00015948979526163247)
出力される res.statistic
は、予防接種を受けたグループの非感染者の割合とそうでないグループの非感染者の割合のオッズ比である。この比が 1.0 であれば比較したい 2 つの変数間に関連性が認められない。この値が実際に 1.0 よりも大きく離れていることがわかる。p 値も事前に設定した 5% 未満であるため、帰無仮説を棄却できる。つまり、検定の結果、2 つの変数間に関連性が認められ、すなわちインフルエンザの予防接種を受けると、その後の感染しやすさに影響が出るということがわかりました。
7.3.2. カイニ乗検定#
カイ二乗検定は、適合度検定および独立性検定の目的で用いられます。適合度検定では、観測された度数分布が理論分布(または母集団の分布)と同じであるかどうかを検定します。
たとえば、あるサイコロが公平であるかどうかを判断する際に、カイ二乗検定(適合度検定)を使うことができます。サイコロを 60 回振ったところ、1 から 6 の目が出た回数がそれぞれ 8、11、10、9、12、10 回であったとします。このとき、もしサイコロが公平であれば、各目が出る回数は 10 回ずつになると考えられます。この理論値と観測値を比較することで、観測されたデータが理論的な分布に従っているかどうかを検定するのが、カイ二乗適合度検定です。
SciPy ライブラリ stats モジュールの chi2_contingency
関数を利用します。
dice = [[8, 11, 10, 9, 12, 10],
[10, 10, 10, 10, 10, 10]]
res = stats.chi2_contingency(dice)
res.pvalue
np.float64(0.9919653302331665)
この結果、サイコロを 60 振ったとき、1 から 6 の目が出る回数がそれぞれ 8、11、10、9、12、10 回であったとしても、理論値に従っていることがわかる。つまりこのサイコロが公正なサイコロであると言えます。
この考え方を、先ほどのインフルエンザのデータに当てはめて検定してみましょう。もし予防接種に効果がないと仮定する場合、予防接種を受けたグループと受けていないグループの間で、感染者の割合に大きな差はないと考えられます。カイ二乗検定を用いて、実際の観測データがこの仮説と一致しているかどうかを検定します。
res = stats.chi2_contingency(x)
print(res.pvalue)
0.00018909039101740576
フィッシャーの正確確率検定と同様に有意水準 5% のもとで、インフルエンザの接種が、インフルエンザの感染しやすさに影響を与えていると統計的に結論づけることができました。でも、毎年打ってるのに毎年かかってる人を前にすると、統計も沈黙します。