Python でマクネマー テストを実行する方法
マクネマー検定は、ペアになったデータ間の比率に統計的に有意な差があるかどうかを判断するために使用されます。
このチュートリアルでは、Python でマクネマー テストを実行する方法を説明します。
例: Python のマクネマー テスト
研究者が、特定のマーケティング ビデオが特定の法律に対する人々の意見を変えることができるかどうかを知りたいとします。彼らは100人を対象に、この法律を支持するかどうかを調査した。次に、マーケティング ビデオを 100 人全員に見せ、ビデオの終了後に再度アンケートを実施します。
次の表は、ビデオを見る前と後でこの法律を支持した人の合計数を示しています。
マーケティング前のビデオ | ||
---|---|---|
マーケティング後のビデオ | サポート | 我慢できない |
サポート | 30 | 40 |
我慢できない | 12 | 18 |
ビデオを見る前と後でその法律を支持した人の割合に統計的に有意な差があるかどうかを判断するには、マクネマー検定を実行できます。
ステップ 1: データを作成します。
まず、データを保持するテーブルを作成します。
data = [[30, 40], [12, 18]]
ステップ 2: マクネマー テストを実行する
次に、Python statsmodels ライブラリのmcnemar() 関数を使用できます。この関数は次の構文を使用します。
mcnemar(配列、正確=True、補正=True)
金:
- table:正方形の分割表
- 正確:正確が true の場合、二項分布が使用されます。 「正しい」が「偽」の場合、カイ二乗分布が使用されます。
- 修正: true の場合、連続性修正が使用されます。通常、この補正は表のセルの数が 5 未満の場合に適用されます。
次のコードは、特定の例でこの関数を使用する方法を示しています。
from statsmodels.stats.contingency_tables import mcnemar #McNemar's Test with no continuity correction print(mcnemar(data, exact=False)) pvalue 0.000181 statistic 14.019 #McNemar's Test with continuity correction print(mcnemar(data, exact=False, correction=False)) pvalue 0.000103 statistic 15,077
どちらの場合でも、連続性補正が適用されるかどうかに関係なく、検定の p 値は 0.05 未満です。
これは、どちらの場合も帰無仮説を棄却し、マーケティングビデオを視聴する前と後でこの法則を支持した人の割合が統計的に異なると結論付けることを意味します。