1

我正在尝试计算最大灵敏度与特异性的截止点。我正在使用 ROCR 包,并且我设法绘制了图形灵敏度与特异性。但是,我不知道如何计算最大灵敏度与特异性的截止点。理想我想在图表中有一个标签,显示该点的截断和坐标。但是,任何解决这个问题的建议都将不胜感激。

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

1 回答 1

3

“最大化灵敏度与特异性”并不是很精确,因为您在 ROC 曲线的每个点上都在权衡这些数量。为了更准确,我假设您正在尝试最大化这两个值的总和。让我们看看你的例子,它使用ROCR.simple

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

在此处输入图像描述

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

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调用内部的表达式来扩展到其他功能的敏感性和特异性。

于 2015-08-23T21:55:43.383 回答