ROC plot generic function for a gg_roc object.
Arguments
- x
A
gg_rocobject, or a rawrfsrcorrandomForestclassification forest.A raw forest is accepted, but plain
plot(forest)does not arrive here. BothrandomForestSRCandrandomForestregister their ownplotmethods, so S3 dispatch sends a raw forest toplot.rfsrcorplot.randomForestinstead. This branch is reached only by naming the method outright, asplot.gg_roc(forest).That branch also does not use
gg_roc's own default forwhich_outcome: given a multi-class forest andwhich_outcome = NULLit callsgg_roconce per class and overlays the one-vs-rest curves, wheregg_roc(x)alone returns a single curve (a macro-average forrandomForest, or class 1 with a warning forrfsrc). Preferplot(gg_roc(x, which_outcome)), which is explicit about both the class and the engine. Issue #72 tracks reconciling the entry points.- which_outcome
Integer; for multi-class problems, the index of the class to plot. When
NULL(default) and the forest has more than two classes, the curves for all classes are overlaid in one plot. For binary forests,NULLdefaults to class index 2.- ...
Additional arguments passed to
gg_rocwhenxis a raw forest (e.g.oob = FALSE).- panel
Character; layout for per-class ROC objects, the ones from
gg_roc(..., per_class = TRUE)."overlay"(default) draws every class curve in one panel, colored by class;"facet"gives each class its own panel. Ignored for single-classgg_rocobjects.
Value
A ggplot object. The x-axis is 1 - Specificity (FPR), the
y-axis is Sensitivity (TPR), and a dashed red diagonal marks the
random-classifier baseline. Single-class curves carry the AUC as an
annotation; multi-class plots color and style each class curve
distinctly.
References
Breiman L. (2001). Random forests, Machine Learning, 45:5-32.
Ishwaran H. and Kogalur U.B. (2007). Random survival forests for R, Rnews, 7(2):25-31.
Ishwaran H, Kogalur U (2026). Fast Unified Random Forests for Survival, Regression, and Classification (RF-SRC). R package version 3.6.2. https://cran.r-project.org/package=randomForestSRC
Examples
## ------------------------------------------------------------
## classification example
## ------------------------------------------------------------
## -------- iris data
# Build a small classification forest (ntree=50 keeps example fast)
set.seed(42)
rfsrc_iris <- randomForestSRC::rfsrc(Species ~ ., data = iris, ntree = 50)
# ROC for setosa (outcome index 1)
gg_dta <- gg_roc(rfsrc_iris, which_outcome = 1)
plot(gg_dta)
# ROC for versicolor (outcome index 2)
gg_dta <- gg_roc(rfsrc_iris, which_outcome = 2)
plot(gg_dta)
# ROC for virginica (outcome index 3)
gg_dta <- gg_roc(rfsrc_iris, which_outcome = 3)
plot(gg_dta)
# Plot all three ROC curves in one call by iterating over outcome indices
n_cls <- ncol(rfsrc_iris$predicted)
for (i in seq_len(n_cls)) print(plot(gg_roc(rfsrc_iris, which_outcome = i)))