見出し画像

【第25回】独立性の検定-後編

今回も、アンケート調査におけるクロス集計において、一方の回答が他方の回答と関係があると言えるかの判断を行う仮説検定を考えます。
前回は、表計算ソフトを使ってカイ2乗検定を行いましたが、今回はPythonを使います。
クロス集計表ができれば、数行のコードで簡単にできて感動です。

今回考える問題

前回と同じように、スマートフォンを所持している高校生100名に「性別」と「メインで使っているスマートフォンのOS」を調査した場合を考えます。
簡単に前回の設定を振り返りつつ、今回の準備を進めていきます。

準備

今回は、100名の回答結果が下記のようなExcelファイル「smartphone.xlsx」にまとまっているものとしましょう。

図1: アンケート回答データ(xlsxファイル)

今回もGoogle Colaboratory上でPythonを実行させます。
上のファイルをGoogleドライブのマイドライブ内「Colab Notebooks」フォルダにアップロードしたところから始めていきましょう。

まずは、ファイルを読み込みます。

import pandas as pd
df = pd.read_excel("/content/drive/MyDrive/Colab Notebooks/smartphone.xlsx")
df
図2: ファイル読込→DataFrame出力

次にこちらをクロス集計します。

dfcross = pd.crosstab(index = df["性別"], columns = df["スマホ"])
dfcross
図3: 実測度数(DataFrame)

こちらのクロス集計表から、女子の方がiPhone利用者の割合が高そうです。そこで「性別とメインで使っているスマートフォンの間には関係がある」と判断できるかどうか、有意水準5%で仮説検定を行うことにします。

[帰無仮説] 性別とスマホのOSの間には関係がない。
[対立仮説] 性別とスマホのOSの間には関係がある。

カイ2乗検定

表計算ソフトでは、帰無仮説のもとでのクロス集計である期待度数を求めるのが次の作業でしたが、Pythonの場合は次を実行して終わりです。

from scipy import stats
stats.chi2_contingency(dfcross, correction=False)

scipy.statsモジュールのchi2_contingencyメソッドです。
correction=Falseは「イェーツの補正を行わない」という意味ですが、ここではあまり深入りせずに、このように書くと思って進めてみたいと思います。
実行すると、次のように出力されます。

(1.7857142857142858, 0.18144920772141646, 1, array([[18., 42.], [12., 28.]]))

タプル型のデータで4つの値が組になっています。インデックス0から順に次の通りです。

  • $${ \chi^2 }$$値:1.7857142857142858

  • p値:0.18144920772141646

  • 自由度:1

  • 期待度数:array([[18., 42.], [12., 28.]])

したがって、p値が0.05より大きいため無仮説は棄却できず、「性別とメインで使っているスマートフォンの間には関係がある」とは言い切れないというのが今回の結論です。

おまけ

上記の実行結果のインデックス3が期待度数でした。
つまり、chi2_contingencyメソッドは実測度数をもとに期待度数も求めてくれるという点で、表計算ソフトを使うよりも少ない処理で結論が得られます。
期待度数を見やすい表(DataFrame)として出力するときは、下記のコードを書きます。

pd.DataFrame(stats.chi2_contingency(dfcross, correction=False)[3],index=["女子","男子"],columns=["Android","iPhone"])
図4: 期待度数(DataFrame)

まとめ

ここまで、2回の記事でカイ2乗検定についてまとめました。

クロス集計をした結果をもとに、一方の要因が他方の要因に影響を与えているかを感覚に頼らず、統計学的な推測に基づいて判断することは、問題解決の過程において極めて意義のあることだと思っています。

高等学校「情報I」の授業の中でさまざまな分析ツールを活用して必要な統計量を算出し、それを解釈して適切に判断をしていくような経験の1つとして、今後具体的な実践を行っていきたいと考えています。

仮説検定編については、ここで一区切りになります。
次回はここまでの「仮説検定の考え方」の授業実践をもとに、どのようなところが指導のポイントになると感じたのかという「番外編」を書いてみたいと思います。

最後に余談ですが、noteの募集中のお題に「# 情報がすき」が入るといいなと最近思っています。

最後までお読みいただき、ありがとうございました。