📜  如何在Python中执行 McNemar 测试(1)

📅  最后修改于: 2023-12-03 15:08:57.284000             🧑  作者: Mango

如何在 Python 中执行 McNemar 测试

McNemar 测试用于比较两个分类变量的配对频率。本文将介绍如何在 Python 中执行 McNemar 测试。

1. 安装所需库

需要安装 numpyscipy 库。

!pip install numpy
!pip install scipy
2. 构造数据集

构造两个分类变量 y_truey_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))
3. 计算 McNemar 测试统计量

使用 scipy.stats 库中的 mcnemar 函数计算 McNemar 测试统计量和 P 值。

from scipy.stats import mcnemar

result = mcnemar(data, exact=False)
statistic = result.statistic
pvalue = result.pvalue

exact=False 表示使用卡方近似计算 P 值。

4. 显示 McNemar 测试结果
print(f"McNemar statistic: {statistic}")
print(f"P value: {pvalue}")

输出结果为:

McNemar statistic: 1
P value: 0.31731050786291415
5. 结论

根据 P 值可以得出结论。在显著性水平为 0.05 的情况下,当 P 值小于 0.05 时拒绝原假设,接受备择假设,反之亦然。在本例中,P 值大于 0.05,因此无法拒绝原假设,即两个分类变量的配对频率没有显著差异。

至此,在 Python 中执行 McNemar 测试就完成了。