如何计算两条 ROC 曲线之间的 AUC 差异(95% CI)?

Posted

技术标签:

【中文标题】如何计算两条 ROC 曲线之间的 AUC 差异(95% CI)?【英文标题】:How to calculate a difference in AUC (with 95% CI) between two ROC curves? 【发布时间】:2021-11-19 23:48:53 【问题描述】:

我正在使用 pROC 包(版本 1.17.0.1)中的 roc.test 函数来比较两条 ROC 曲线。数据是配对的,因此使用 DeLong 检验。但是,即使我在函数中指定了置信区间,该函数也不会输出置信区间。请参阅下面使用 aSAH 数据集的示例。

library(pROC)
data(aSAH)

roc1 <- roc(aSAH$outcome, aSAH$s100b)
roc2 <- roc(aSAH$outcome, aSAH$wfns)
roc.test(roc1, roc2, method="delong", paired=TRUE,
        alternative="two.sided", conf.level=0.95, reuse.auc=TRUE)

我得到的输出如下:

DeLong 对两条相关 ROC 曲线的检验

数据:roc1 和 roc2 Z = -2.209,p 值 = 0.02718 备择假设:AUC 的真实差异不等于 0 样本估计: roc1 的 AUC roc2 的 AUC 0.7313686 0.8236789

但是,没有置信区间。有人遇到过这个问题吗?

【问题讨论】:

请提供最少且可重现的示例以及所需的输出。对数据使用 dput() 并使用 library() 调用指定所有非基础包。不要为数据或代码嵌入图片,而是使用缩进的代码块。 无法重现。当我使用帮助页面的第一个示例运行这组参数时,我确实得到了一个报告的置信区间。您既没有提供打印输出,也没有提供minimal reproducible example。投票结束。 什么版本的 pROC? sessionInfo() 很有用。 @Calimo 谢谢。我正在使用 pROC_1.17.0.1。 @IRTFM 很有趣。当我运行帮助页面的第一个示例时,我没有得到 95% 的 CI。您介意分享您使用的代码吗? 【参考方案1】:

这是new feature in pROC 1.18.0。您应该使用

将 pROC 更新到最新版本
install.packages("pROC")

【讨论】:

以上是关于如何计算两条 ROC 曲线之间的 AUC 差异(95% CI)?的主要内容,如果未能解决你的问题,请参考以下文章

ROC和AUC介绍以及如何计算AUC

R语言deLong‘s test:使用自定义函数检验两个ROC曲线的差异是否具有统计显著性比较两个或多个相关ROC曲线的AUC的非参数检验

如何使用sklearn成对比较两条ROC曲线?

统计学 ROC曲线

如何在自动编码器模型上绘制ROC曲线并计算AUC?

ROC和AUC介绍以及如何计算AUC