2

我想在 x 值的特定范围内绘制一段 ROC 曲线,而不是绘制整个曲线。我不想改变 x 轴本身的范围。我只想在我指定的 x 值范围内绘制 ROC 曲线的一部分。

library(pROC)
data(aSAH)
rocobj <- roc(aSAH$outcome, aSAH$wfns)
plot(rocobj)

该代码绘制了整个 ROC 曲线。假设我只想绘制从 x=1 到 x=.5 的曲线。我怎么能那样做?谢谢你。

4

2 回答 2

1

roc 对象的默认绘图函数将 rocobj$sensivities 绘制为 rocobj$specificities 的函数。

所以

plot(rocobj$specificities,rocobj$sensitivities,type="l",xlim=c(1.5,-0.5))
abline(1,-1)

达到与

plot(rocobj)

plot(rocobj$specificities[2:6],rocobj$sensitivities[2:6],type="l",xlim=c(1.5,-0.5),ylim=c(0,1))
abline(1,-1)

接近我认为你所追求的(从 0.514 到 1.0 的图)。我对包的了解不够,不知道是否可以在特定范围内计算灵敏度或特异性分辨率。

于 2019-06-19T21:38:19.043 回答
1

plotpROC的函数使用通常的 R 语义进行绘图,因此您可以像使用xlim任何其他绘图一样使用参数:

plot(rocobj, xlim = c(1, .5))
于 2019-06-19T21:15:41.987 回答