我已经生成了一些分数来帮助预测某些事情是肯定的(1)还是不是(0),假设数据包括:
scores = c(10:20)
response = c(0,0,1,0,1,0,1,1,0,1,1)
mydata = data.frame(scores, response)
我可以进行ROC分析,得出的AUC为.77:
roc(response = mydata$response, predictor = mydata$scores)
现在,我如何确定在选择各种截止时会发生什么?我想在x轴(比方说13,14,15,16,17)和y轴上的PPV上有截止。这样做的好方法是什么?我需要哪些功能/包?
答案 0 :(得分:1)
我将根据pROC包*给出答案。使用ROCR包也可以获得类似的结果。
您希望使用coords
函数,该函数可以在某个给定阈值下计算几个常见统计信息。例如,为了使PPV达到所有阈值,您可以执行以下操作:
library(pROC)
r <- roc(response = response, predictor = scores)
coordinates <- coords(r, x = "all", input = "threshold", ret = c("threshold", "ppv"))
然后您可以绘制这些值:
plot(t(coordinates))
将"all"
替换为感兴趣的阈值:
coordinates <- coords(r, x = c(13, 14, 15, 16, 17), input = "threshold", ret = c("threshold", "ppv"))
*免责声明:我是pROC包的作者。