Search code examples
rrocproc-r-package

R: pROC package: plot ROC curve across specific range?


I would like to plot a segment of an ROC curve over a specific range of x values, instead of plotting the entire curve. I don't want to change the range of the x axis itself. I just want to plot only part of the ROC curve, within a range of x values that I specify.

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

That code plots the whole ROC curve. Let's say I just wanted to plot the curve from x=1 to x=.5. How could I do that? Thank you.


Solution

  • The default plot function for roc objects plots the rocobj$sensitivities as a function of rocobj$specificities.

    So

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

    achieves the same as

    plot(rocobj)
    

    And

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

    Gets close to what I think you are after (plots from 0.514 to 1.0). I don't know enough about the package to know if the sensitivities can be calculated at a specific range, or resolution of specificities.