特异性 / 灵敏度 vs 使用 pROC 包的截止点

3
我需要绘制以下图表,以便为逻辑回归模型选择最佳阈值。

Plot of Sensitivity and Specificity as a function of the Cutoff

然而,我无法使用许多我所做的研究中使用的软件包(epi和roc)。我确实有pROC软件包。是否有任何方法可以使用此软件包绘制图形?另外,我还可以如何选择最佳阈值?仅使用ROC曲线如何工作?

1个回答

3
如果您正在使用pROC包,则第一步是提取曲线的坐标。例如:
library(pROC)
data(aSAH)
myroc <- roc(aSAH$outcome, aSAH$ndka)
mycoords <- coords(myroc, "all")

一旦你拥有了这个,你可以绘制任何你想要的东西。这应该与你的示例相当接近。
plot(mycoords["threshold",], mycoords["specificity",], type="l", 
     col="red", xlab="Cutoff", ylab="Performance")
lines(mycoords["threshold",], mycoords["sensitivity",], type="l", 
      col="blue")
legend(100, 0.4, c("Specificity", "Sensitivity"), 
       col=c("red", "blue"), lty=1)

选择“最优”截点就像首先定义什么是最优一样困难。这高度取决于上下文和应用。一个常见的捷径是使用Youden指数,它只是具有最大(特异性+灵敏度)截止点的点。同样的与pROC一起使用:
best.coords <- coords(myroc, "best", best.method="youden")
abline(v=best.coords["threshold"], lty=2, col="grey")
abline(h=best.coords["specificity"], lty=2, col="red")
abline(h=best.coords["sensitivity"], lty=2, col="blue")

使用pROC,您可以更改“最佳”阈值的标准。请参阅?coords帮助页面以及best.methodbest.weights参数,以快速调整它。您可能需要查看OptimalCutpoints package以获取更高级的方法来选择自己的最优解。

输出图应该类似于这样:

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接