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)
在上面,outcome
是 factor
,而 s100b
是 numerical
。
我的问题是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包的的plot.roc函数对单变量进行ROC分析并可视化ROC曲线寻找最佳阈值(thresholdcutoff)在可视化曲线中添加最佳阈值点
使用 ftransform 和来自 collapse R 包的 fgroup_by