A quick example of how to use the plotROC package.
install.packages("plotROC")library(tidyverse)
library(plotROC)Here we’ll make up some quick example data, where prediction is the
predicted probability or score for the event and actual indicates whether
or not the event happened.
actual <- rbinom(200, size = 1, prob = 0.5)
ex <- data.frame(
actual = actual,
prediction = 1/(1 + exp(-1 * rnorm(200, mean = actual * 2, sd = 1)))
)A quick look at the made up data…
head(ex)
#> actual prediction
#> 1 0 0.5850483
#> 2 1 0.7033973
#> 3 0 0.3031526
#> 4 0 0.4730225
#> 5 0 0.6154252
#> 6 0 0.5373342
ggplot(ex) +
aes(prediction, actual) +
geom_point()Now we can use plotROC to create the ROC curve. One part of this documentation
that I found confusing is that the aesthetic d is for the status (or
actual value) and m is for the marker (or predicted value).
ggplot(ex) +
aes(d = actual, m = prediction) +
geom_roc()You can modify the style of the plot using the ggplot2 theme() functions
or by adding extra components, like the random-choice line with geom_abline().
ggplot(ex) +
aes(d = actual, m = prediction) +
geom_abline(slope = 1, intercept = 0, linetype = 2, color = "grey50") +
geom_roc() +
theme_classic()Or you can use the style_roc() function from plotROC.
ggplot(ex) +
aes(d = actual, m = prediction) +
# geom_abline(slope = 1, intercept = 0, linetype = 2, color = "grey50") +
geom_roc() +
style_roc()Finally, there’s also the Shiny app that you can run locally.
shiny_plotROC()Created on 2018-10-18 by the reprex package (v0.2.1)



