2

我可以使用一些预先指定的截止值(阈值)来绘制带有pROC包的 ROC 曲线吗?例如,我可以输入控制/案例值和我自己的阈值点来计算相应的敏感性和特异性吗?

4

2 回答 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,例如使用trapzpackage 中的函数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 回答