R:来自 pROC 包的 AUC

Posted

技术标签:

【中文标题】R:来自 pROC 包的 AUC【英文标题】:R: AUC from pROC package 【发布时间】:2019-07-28 09:47:34 【问题描述】:

我最近遇到pROC 包来获取AUC。在帮助部分,他们给出了以下示例:

library("pROC")
data(aSAH)
auc(aSAH$outcome, aSAH$s100b)

在上面,outcomefactor,而 s100bnumerical

我的问题是AUC 在这种情况下如何工作?它适用于s100b 的阈值是多少?还是没关系?

编辑 1 上面的代码生成AUC = 0.73。我如何知道选择了哪个阈值来获取此值?

【问题讨论】:

根据文档:“当使用两个向量 (response, predictor) 或公式 (response~predictor) 参数调用它时,将调用 roc 函数并且只返回 AUC。”我不确定阈值是什么意思,auc 默认使用 0 到 1 之间的所有阈值计算。您也可以查看 ?roc 了解详细信息。 @zack 感谢您的回复。我添加了更多信息。基本上,是什么决定了 AUC 的输出。 你听起来有点困惑;正如@zack 所说,AUC 是在所有可能的阈值上计算的。也许我在这里的回答会有所帮助:Getting a low ROC AUC score but a high accuracy. 【参考方案1】:

pROC 的auc 函数中的 AUC 是ROC curve 下的面积。该函数在后台首先调用roc函数,所以你所做的相当于:

myroc <- roc(aSAH$outcome, aSAH$s100b)
auc(myroc)

ROC 曲线是通过计算所有可能阈值的敏感性和特异性获得的。您可以使用plot 函数将曲线可视化,AUC 显示为灰色:

plot(myroc, auc.polygon=TRUE)

【讨论】:

以上是关于R:来自 pROC 包的 AUC的主要内容,如果未能解决你的问题,请参考以下文章

在R中使用pROC包的faces_wrap图(几个变量)

R语言使用pROC包的的plot.roc函数对单变量进行ROC分析并可视化ROC曲线寻找最佳阈值(thresholdcutoff)在可视化曲线中添加最佳阈值点

使用 ftransform 和来自 collapse R 包的 fgroup_by

R中的简单决策树--来自Caret包的奇怪结果

R:使用来自openair包的windRose的多个windrose图

Linux - CentOS 7.9安装proc手册