📅  最后修改于: 2023-12-03 15:08:57.284000             🧑  作者: Mango
McNemar 测试用于比较两个分类变量的配对频率。本文将介绍如何在 Python 中执行 McNemar 测试。
需要安装 numpy
和 scipy
库。
!pip install numpy
!pip install scipy
构造两个分类变量 y_true
和 y_pred
,并将它们配对。
import numpy as np
y_true = np.array([0, 1, 1, 0, 1, 1, 0, 1, 0, 1])
y_pred = np.array([1, 1, 0, 0, 1, 1, 1, 1, 0, 1])
data = np.column_stack((y_true, y_pred))
使用 scipy.stats
库中的 mcnemar
函数计算 McNemar 测试统计量和 P 值。
from scipy.stats import mcnemar
result = mcnemar(data, exact=False)
statistic = result.statistic
pvalue = result.pvalue
exact=False
表示使用卡方近似计算 P 值。
print(f"McNemar statistic: {statistic}")
print(f"P value: {pvalue}")
输出结果为:
McNemar statistic: 1
P value: 0.31731050786291415
根据 P 值可以得出结论。在显著性水平为 0.05 的情况下,当 P 值小于 0.05 时拒绝原假设,接受备择假设,反之亦然。在本例中,P 值大于 0.05,因此无法拒绝原假设,即两个分类变量的配对频率没有显著差异。
至此,在 Python 中执行 McNemar 测试就完成了。