データ分析 python 独立性の検定:カイ二乗検定
今回は独理性の検定について簡単にまとめてみます。
python + google colaboratory で 実行しています。
独立性の検定とは?
2つのカテゴリの変数(名義尺度)が統計的に独立しているかを調べる方法です。
具体的には変数間に関連性があるかどうかを検証します。
名義尺度とは?
データをカテゴリに分類するための尺度で、ただ区別のためだけに使われるラベルや名前であり、順序や数量的な意味がありません。
具体例として、性別(男性、女性)や、血液型(A型、B型、O型、AB型)などがあります。
名義尺度以外にも、順序尺度や感覚尺度、比率尺度といった尺度があり、それぞれ適した分析方法があります。
独立性の検定の具体例
-
性別と喫煙習が関連しているか
男性と女性で喫煙率に違いがあるかどうかを調べる -
血液型と特定の病気の罹患に関連があるか
異なる血液型が特定の病気の罹患率に影響を与えるかどうかを調べる -
製品の購入パターンと、消費者の年齢に関連があるか
年齢層によって製品の購入パターンに違いがあるかどうかを調べる
検定の手法
独立性の検定でよく使われる手法には以下の用のものがあります。
- カイ二乗独立
- フィッシャーの正確検定
カイ二乗検定を使ってみる
それでは、実際にカイニ乗検定を使って、独立性の検定を行ってみます。
テーマ
性別と喫煙習慣が関連しているかどうかを調べる。
使用したデータ
使用したデータ
データは適当に作ったものです
性別 | 喫煙 |
---|---|
男性 | 喫煙する |
男性 | 喫煙する |
男性 | 喫煙する |
男性 | 喫煙する |
男性 | 喫煙する |
男性 | 喫煙する |
男性 | 喫煙する |
男性 | 喫煙する |
男性 | 喫煙する |
男性 | 喫煙する |
男性 | 喫煙する |
男性 | 喫煙する |
男性 | 喫煙する |
男性 | 喫煙する |
男性 | 喫煙する |
男性 | 喫煙する |
男性 | 喫煙する |
男性 | 喫煙する |
男性 | 喫煙する |
男性 | 喫煙する |
男性 | 喫煙しない |
男性 | 喫煙しない |
男性 | 喫煙しない |
男性 | 喫煙しない |
男性 | 喫煙しない |
男性 | 喫煙しない |
男性 | 喫煙しない |
男性 | 喫煙しない |
男性 | 喫煙しない |
男性 | 喫煙しない |
男性 | 喫煙しない |
男性 | 喫煙しない |
男性 | 喫煙しない |
男性 | 喫煙しない |
男性 | 喫煙しない |
男性 | 喫煙しない |
男性 | 喫煙しない |
男性 | 喫煙しない |
男性 | 喫煙しない |
男性 | 喫煙しない |
女性 | 喫煙する |
女性 | 喫煙する |
女性 | 喫煙する |
女性 | 喫煙する |
女性 | 喫煙する |
女性 | 喫煙する |
女性 | 喫煙する |
女性 | 喫煙する |
女性 | 喫煙する |
女性 | 喫煙する |
女性 | 喫煙する |
女性 | 喫煙する |
女性 | 喫煙する |
女性 | 喫煙する |
女性 | 喫煙する |
女性 | 喫煙する |
女性 | 喫煙する |
女性 | 喫煙する |
女性 | 喫煙する |
女性 | 喫煙する |
女性 | 喫煙しない |
女性 | 喫煙しない |
女性 | 喫煙しない |
女性 | 喫煙しない |
女性 | 喫煙しない |
女性 | 喫煙しない |
女性 | 喫煙しない |
女性 | 喫煙しない |
女性 | 喫煙しない |
女性 | 喫煙しない |
女性 | 喫煙しない |
女性 | 喫煙しない |
女性 | 喫煙しない |
女性 | 喫煙しない |
女性 | 喫煙しない |
女性 | 喫煙しない |
女性 | 喫煙しない |
女性 | 喫煙しない |
女性 | 喫煙しない |
女性 | 喫煙しない |
女性 | 喫煙しない |
前準備
まずはデータを読み込みます。
import pandas as pd
df = read_csv('/content/drive/MyDrive/自習/smoker_gender.csv')
df
続いてクロス集計を行っておきます。
crosstab = pd.crosstab(df['性別'], df['喫煙'])
crosstab
検定を行う
検定の目的
性別(男性/女性)と喫煙習慣(喫煙する/喫煙しない)が独立しているか、それとも関連しているかを調べる
1.仮説立て
- 帰無仮説:2群間は独立
- 対立仮説:2群間は独立ではない(何らかの関連性がある)
2.有意水準を決める
5%とします
3.P値を計算する
カイニ乗検定は scipy の chi2_contingency()メソッドを使用します。
引数に先ほど作成したクロス集計表を指定します。
from scipy import stats
stats.chi2_contingency(crosstab)
Chi2ContingencyResult(statistic=0.0, pvalue=1.0, dof=1, expected_freq=array([[22., 21.], [22., 21.]]))
4.判定
pvalue=1.0 と 有意水準を 0.05 を上回ったため、帰無仮説を棄却できず、性別と喫煙習慣に関連性はないと判断します。
以上で検定は終了です。
Discussion