我可以使用一些预先指定的截止值(阈值)来绘制带有pROC
包的 ROC 曲线吗?例如,我可以输入控制/案例值和我自己的阈值点来计算相应的敏感性和特异性吗?
问问题
5140 次
2 回答
1
这不再是 ROC 曲线
为了解决您在我的其他答案中的评论(但不回答您的问题,正如我上面评论的那样无法回答),我可以给您一种方法来做您想做的事。请不要在任何情况下将此称为 ROC 曲线:它不是!请根据本练习的目的(你从未解释过)自己想出一个描述性的名称。
你可以间接地做你想做的事pROC
:计算所有阈值的 ROC,提取你想要的坐标:并使用梯形函数完成。
library(pROC)
data(aSAH)
my.cutoff <- c(0.6, 1, 1.5, 1.8)
roc.obj <- roc(aSAH$outcome, aSAH$s100b)
like.coordinates <- coords(roc.obj, c(-Inf, sort(my.cutoff), Inf), input="threshold", ret=c("specificity", "sensitivity"))
现在您可以将结果绘制为:
plot(like.coordinates$specificity, like.coordinates$sensitivity, xlim=c(1, 0), type="l")
并计算AUC
,例如使用trapz
package 中的函数caTools
:
library(caTools)
trapz(like.coordinates$specificity, like.coordinates$sensitivity)
再一次,您没有绘制 ROC 曲线,并且您计算的 AUC 不是 ROC 曲线。
于 2014-08-11T07:18:33.377 回答
1
看看?plot.roc
。
假设您有:
my.cutoff <- 0.6
然后你可以这样做:
library(pROC)
data(aSAH)
plot.roc(aSAH$outcome, aSAH$s100b, print.thres = my.cutoff)
于 2014-07-17T19:29:20.447 回答