カイ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
おすすめの記事