我熟悉如何用R.中的pROC库创建ROC曲线,我的代码如下所示:
glmfit <- glm(Y ~ X1 + X2 +..., family = binomial(), data = df)
roc_in_sample <- roc(df$Y, predict(glmfit, newdata = df, type = "response"))这将给我一个ROC对象,我可以绘制我的ROC曲线的敏感性与1-特异性。
我的问题是,如何从这条曲线中得到实际的临界值?比如说,我在曲线上找了一个灵敏度和特异性都是80%的点。如何从该模型中提取实际截止值,其灵敏度和特异性为80%?
我并不是在寻求我所能做出的最佳选择的指导。我只想知道如何找到我将在我的报告中列出的实际截止值。例如,我希望能够说出这样的话:“我的模型确定了0.567概率的截止值将给我们80%的灵敏度和80%的特异性”(这些是假设的值;这正是我需要说的那种事情)。我如何在R中得到这个pROC函数或者其他什么?
发布于 2022-10-27 09:12:23
您需要从您的threshold对象中找到最接近期望概率的roc槽,并返回回复sensitivity和specificity。
library(pROC)
r <- roc(aSAH$outcome, aSAH$s100b,
levels=c("Good", "Poor"))
prob <- .8
idx <- which.min((tail(head(r$thresholds, -1L), -1L) - prob) ^ 2)
c(r$specificities[idx], r$sensitivities[idx])https://stackoverflow.com/questions/74212922
复制相似问题