谈谈 Python 中的 McNemar 检验(三)

本文详细解释了McNemar检验在Python中的应用,包括其基本原理,通过实例展示如何计算统计量m和s,以及如何选择二项分布或卡方分布进行检验。特别提到了exact参数的选择及其影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前两个文章主要讲的是 McNemar 的原理,文章参考如下:

谈谈 Python 中的 McNemar 检验(一)-优快云博客

谈谈 Python 中的 McNemar 检验(二)-优快云博客

这一篇主要说一说 McNemar 的具体算法。

引用上面第一篇文章里的例子,关键是看数据 b 和 c。在第二篇文章里的例子,主要是将模型2的结果比模型1大的个数定义为b,而将模型2的结果比模型1小的个数定义为c,其实二个例子的原理是相同的,都是在比较 b 和 c。

下面,开始将具体算法。

首先,对b和c取较小值,定义为 m=min(b,c)

其次,无论你使用的是 游程模块 还是 列联表模块的 McNemar,算法都是一样的。即 m 服从参数为 (b+c, 0.5)的二项分布的,并由此得到m对应的p值。这是因为,当两个模型无差异时,m应该接近(b+c)的一半,因此用二项分布做检验。其实,m就是代码结果中的统计量值。在第二篇文章中的m=2也就是输出的统计量值。

需要提到的一点是,在我们的代码中使用了一个参数 exact=True,它的目的就是使用严格的二项分布的意思。我们可以选择 exact=False,但这样做的话,算法中将用 卡方分布 代替 二项分布

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值