如何生成阳性预测值(PPV)与各种分类截止点的关系图?

时间:2017-04-17 20:29:54

标签: r classification roc

我已经生成了一些分数来帮助预测某些事情是肯定的(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上有截止。这样做的好方法是什么?我需要哪些功能/包?

1 个答案:

答案 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包的作者。