カイ2乗検定では、2群の割合の差が意味のある差なのかどうか?を検定する
例えばABテストを行った場合にちゃんと効果があったかどうか?を検証していて、その差分が微差だった場合で誤差範囲ではないか?などの疑いがある場合などで活用。
例: Aという施策を実施した時に、施策対象者と非対象者毎に翌月継続したか解約したか?の人数を抽出して、カイ2乗検定で施策効果が有意であったかどうか?を確認する場合のサンプルコード(こちらにも同じコードアップしてます)
import pandas as pd from scipy import stats # 施策Aの対象者の翌月継続者数と解約者数: ここの数値を変更して利用 true_A = 97 false_A = 3 # 施策Aの非対象者の翌月継続者数と対象母数: ここの数値を変更して利用 true_non_A = 900 false_non_A = 100 df = pd.DataFrame([[true_A, false_A], [true_non_A, false_non_A]], index=['施策A対象者', '施策A非対象者'], columns=['継続者', '解約者']) df
使い方:上記コードのtrue_A, false_A, true_non_A, false_non_Aの部分の数値を任意で入れ替えて実行
# カイ2乗検定の実施 chi2, p, dof, exp = stats.chi2_contingency(df, correction=False) # 各指標を表示 print("期待度数", "\n", exp) print("自由度", "\n", dof) print("カイ二乗値", "\n", chi2) print("p値", "\n", p) print("-----------------") # p値を基に結果を判定 if p < 0.05: result = f"P値が0.05以下のため、施策Aは効果があったと言えそうです" else: result = f"P値が0.05以下ではない為、施策Aは効果がなかったと言えそうです" result