将诊断测试与黄金标准进行比较

机器算法验证 假设检验 列联表 mcnemar 测试 协议统计
2022-04-02 01:25:35

我有一个接受过 2 次诊断测试的患者样本,其中一项是金标准。我被要求测试实验测试的诊断是否与金标准的诊断不同。这是列联表:

> table(test=db$exptest, gold=db$goldstandard)
        gold
test       sick   healthy
  sick        7         4
  healthy     8        27

起初我认为这是 McNemar 测试的一个案例,但似乎该测试旨在将 2 个实验测试结果与黄金标准进行比较,如这里所示,或这里尽管如此,维基页面这篇文章并不是那么独特,但对我的情况来说并不是很清楚。

在这种特定情况下,我应该执行 McNemar 测试吗?如果不是,我可以检验这个假设吗?如何检验?

2个回答

如果您使用 McNemar 检验,则您正在测试该表是否对称:是否有更多的人被新方法诊断为病,而旧方法诊断得好,而新方法诊断得好,旧方法诊断得好。这是一个完全合理的科学问题。对于具体情况,假设要比较的两种方法是由精神科医生和家庭医生对心理健康问题进行评级。由于他们在实践中看到不同的案例组合,您可能会问这是否会影响他们宣布某人生病的门槛。

如果您使用 Cohen 的 kappa,则您正在评估方法之间的一致性是否超出偶然预期。这又是一个完全合理的问题,但它是不同的。因此,如果您要比较两种诊断轻度认知障碍的方法,其中没有金标准,您可能会将方法之间的一致性视为证明 MCI 概念的合理性,如果它们不同意,您可能想知道这是否是一个有用的诊断。

计算敏感性和特异性是诊断测试的常用方法,并在两组中分别评估性能:根据金标准良好,根据金标准生病。同样,这是一件合理的事情,但它与其他两个不同。在这种情况下,您有两件不同的事情是您感兴趣的,而您在实际情况中的关注点可能是其中之一。例如,如果您正在筛查一种致命疾病,您可能需要高灵敏度的测试,因为您不想错过病例。另一方面,如果您正在招募参加试验,您可能不介意遗漏一些,但出于成本原因,您可能需要高特异性,因为您不希望对更多的人进行全面的诊断检查,而不是绝对必要的。

您在询问是否同意,因此您应该使用测试来表示同意。只有两个本质上是分类的诊断措施(“评估者”),标准测试是科恩的 kappa。这是应用于您的数据的版本,用 R 编码:

tab2 = as.data.frame(tab)
library(irr)
kappa2(tab2[rep(1:4, times=tab2[,3]),1:2])
#  Cohen's Kappa for 2 Raters (Weights: unweighted)
# 
#  Subjects = 46 
#    Raters = 2 
#     Kappa = 0.363 
# 
#         z = 2.52 
#   p-value = 0.0118 

该测试意义重大,这意味着存在比您仅凭偶然机会所期望的更大的一致性。

你不必停在那里。您可以衡量同意的百分比,例如:

同意百分比=7+277+4+8+27=73.9%
敏感性和特异性(或阳性和阴性预测值)构成了类似的信息,但被分解并具有更高的细节水平,这可能更有用但也更复杂。

您还可以测试以查看新测试是否相对于黄金标准存在偏差。具体来说,您的测试电话只称有 11 人生病,而黄金标准指出有 15 人生病。新测试说“生病”的频率是否低于应有的水平?这就是 McNemar 的测试将为您做的。

mcnemar.test(tab)
# 
#   McNemar's Chi-squared test with continuity correction
# 
# data:  tab
# McNemar's chi-squared = 0.75, df = 1, p-value = 0.3865

您的数据集中没有足够的证据来确定该测试相对于黄金标准存在偏差。