使用ROCR计算最大灵敏度与特异性的截止值

时间:2015-08-23 21:23:58

标签: r roc auc

我正在尝试计算最大灵敏度与特定性的截止点。我正在使用ROCR包,我已设法绘制图灵敏度与特定性。但是,我不知道如何计算最大灵敏度与特定性的截止点。理想我想在图表中有一个标签,显示截止点和此处的坐标。但是,任何解决这个问题的建议都将受到高度赞赏。

pred <- prediction( ROCR.simple$hello, ROCR.simple$labels)
ss <- performance(pred, "sens", "spec")
plot(ss)

1 个答案:

答案 0 :(得分:2)

&#34;最大化灵敏度与特异性&#34;并不是非常精确,因为您在沿着ROC曲线的每个点处交易这些数量。为了使其更精确,我假设您正在尝试最大化这两个值的总和。让我们看看你的例子,它使用ROCR.simple

library(ROCR)
data(ROCR.simple)
pred <- prediction(ROCR.simple$predictions, ROCR.simple$labels)
ss <- performance(pred, "sens", "spec")
plot(ss)

enter image description here

您可以通过以下方式确定产生最高灵敏度和特异性的截止值:

ss@alpha.values[[1]][which.max(ss@x.values[[1]]+ss@y.values[[1]])]
# [1] 0.5014893
max(ss@x.values[[1]]+ss@y.values[[1]])
# [1] 1.69993

当预测概率超过0.501时预测阳性结果并预测预测概率不超过0.501时的阴性结果,在这种情况下实现最高灵敏度加特异性。这产生灵敏度加特异性值1.7。

当然,通过更改which.max调用中的表达式,可以将其扩展到敏感性和特异性的其他功能。