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