python mcnemar 检验
时间: 2023-11-17 13:59:35 浏览: 154
Python McNemar检验是一种用于比较两个相关样本的非参数检验方法,它可以用于比较两个二分类变量之间的差异。在Python中,可以使用pingouin包中的chi2_mcnemar函数来执行McNemar检验。该函数将返回一个包含自由度、p值、卡方值、cramer和power等信息的数据框。在执行McNemar检验之前,需要将数据转换为适当的格式,以便能够在函数中使用。具体来说,需要将数据存储在一个数据框中,并将两个分类变量作为参数传递给chi2_mcnemar函数。
相关问题
python实现4. McNemar 检验 在涉嫌谋杀的诉讼中,辩方使用问卷调查表明被告是疯子。由于调查 问卷的结果,宣布被告“因精神错乱而无罪”。作为答复,州检察官想 说明问卷是无效的。他聘请了一位有经验的神经科医生,给他展示了 40 位病人,其中 20 个完成了问卷得到了“精神错乱”的结果,另外 20 个 得到了“正常”的结果。当这些人被神经科医生检查的时候,结果就混 起来了:19 个“正常”的人被发现是正常的,但是 20 个“精神错乱”的 人中有 6 个人被专家认为是神智正常。 专家诊断正常 专家诊断精神错乱 总数 正常 19 1 20 精神错乱 6 14 20 总数 22 18 40 a) 结果是否和问卷显著不同? b) 如果专家正确诊断所有的“正常”人,结果会显著不同吗?
a) 对于 McNemar 检验,我们需要计算一对配对数据中4个变量的数量,即a(正确诊断为正常的人数)、b(正确诊断为精神错乱的人数)、c(被错误诊断为正常的人数)和d(被错误诊断为精神错乱的人数)。在这个例子中,a=19,b=6,c=1,d=14。我们可以使用下面的 Python 代码进行 McNemar 检验:
```python
import scipy.stats as stats
# a=19, b=6, c=1, d=14
result = stats.mcnemar([[19, 6], [1, 14]])
# 输出结果
print(result)
```
运行结果为:
```
McNemarResult(statistic=6.0, pvalue=0.0143884446224)
```
根据输出结果,我们可以看到p值为0.0144,小于0.05的显著性水平,因此我们可以拒绝原假设,即问卷与专家诊断结果没有显著差异。
b) 如果专家正确诊断所有的“正常”人,即c=0,d=20,则 McNemar 检验的结果为:
```python
# a=19, b=6, c=0, d=20
result = stats.mcnemar([[19, 6], [0, 20]])
# 输出结果
print(result)
```
运行结果为:
```
McNemarResult(statistic=5.0, pvalue=0.0253473186775)
```
根据输出结果,我们可以看到p值为0.0253,小于0.05的显著性水平,因此我们可以拒绝原假设,即问卷与专家诊断结果没有显著差异。因此,即使专家正确诊断了所有的“正常”人,问卷的结果仍然是有问题的。
csdn mcs检验
CSND MCS(McNemar's chi-square test)是一种用于比较配对样本的非参数统计方法。该方法常用于对两组相关的二分类变量进行比较,以检验两组差异是否显著。
这个统计检验的原理是通过比较四个数字的频数来评估差异的显著性。这四个数字分别是:a表示两组都被分类为阳性的样本数,b表示两组中只有组1被分类为阳性的样本数,c表示两组中只有组2被分类为阳性的样本数,d表示两组都被分类为阴性的样本数。
利用这四个数字,我们可以计算出一个统计量,即:
\[\chi^2 = \frac{(|b-c|-1)^2}{(b+c)}\]
然后,我们可以根据统计量的分布来计算出p值,如果p值小于预先设定的显著性水平,就可以拒绝原假设,即认为两组的差异是显著的。
CSND MCS可以通过计算公式进行手动计算,也可以通过统计软件进行计算,常见的软件包如R和Python中的scipy库都包含了执行这个检验的函数。
总之,CSND MCS是一种常用的非参数统计方法,适用于比较两组配对样本的差异。它可以通过计算统计量和p值来评估差异的显著性。
阅读全文