pROC R包装有定制的截止值吗?

时间:2014-07-17 15:44:42

标签: r roc proc-r-package

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

2 个答案:

答案 0 :(得分:1)

查看?plot.roc

我们说你有:

my.cutoff <- 0.6

然后你可以这样做:

library(pROC)
data(aSAH)
plot.roc(aSAH$outcome, aSAH$s100b, print.thres = my.cutoff)

答案 1 :(得分:1)

要在我的其他答案中解决您的意见(但不回答您的问题,我上面评论过这个问题无法解答),我可以帮您找到您想要的方法。请不要在任何情况下将其称为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中的caTools函数计算:

library(caTools)
trapz(like.coordinates["specificity",], like.coordinates["sensitivity",])

再一次,你没有绘制ROC曲线,你计算的AUC不是ROC曲线。