Jason Finley
Jason Finley

Reputation: 71

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.

Upvotes: 2

Views: 1905

Answers (2)

Dylan I
Dylan I

Reputation: 186

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.

Upvotes: 1

Calimo
Calimo

Reputation: 7949

The plot function of pROC uses the usual R semantics for plotting, so you can use the xlim argument as you would for any other plot:

plot(rocobj, xlim = c(1, .5))

Upvotes: 1

Related Questions