Methods to plot prediction error curves (pecs) for either a PredictionSurv object or a list of trained LearnerSurvs.
Usage
pecs(x, measure = c("graf", "logloss"), times, n, eps = NULL, ...)
# S3 method for list
pecs(
x,
measure = c("graf", "logloss"),
times,
n,
eps = NULL,
task = NULL,
row_ids = NULL,
newdata = NULL,
train_task = NULL,
train_set = NULL,
proper = TRUE,
...
)
# S3 method for PredictionSurv
pecs(
x,
measure = c("graf", "logloss"),
times,
n,
eps = 1e-15,
train_task = NULL,
train_set = NULL,
proper = TRUE,
...
)Arguments
- x
(PredictionSurv or
listof LearnerSurvs)- measure
(
character(1))
Either"graf"for MeasureSurvGraf, or"logloss"for MeasureSurvIntLogloss- times
(
numeric())
If provided then either a vector of time-points to evaluatemeasureor a range of time-points.- n
(
integer())
Iftimesis missing or given as a range, thennprovide number of time-points to evaluatemeasureover.- eps
(
numeric())
Small error value to prevent errors resulting from a log(0) or 1/0 calculation. Default is 1e-15 for log loss and 1e-3 for Graf.- ...
Additional arguments.
- task
(TaskSurv)
- row_ids
(
integer())
Passed toLearner$predict.- newdata
(
data.frame())
If not missingLearner$predict_newdatais called instead ofLearner$predict.- train_task
(TaskSurv)
If not NULL then passed to measures for computing estimate of censoring distribution on training data.- train_set
(
numeric())
If not NULL then passed to measures for computing estimate of censoring distribution on training data.- proper
(
logical(1))
Passed to MeasureSurvGraf or MeasureSurvIntLogloss.
Details
If times and n are missing then measure is evaluated over all observed time-points
from the PredictionSurv or TaskSurv object. If a range is provided for times without n,
then all time-points between the range are returned.
Examples
if (FALSE) {
if (requireNamespace("ggplot2", quietly = TRUE)) {
#' library(mlr3)
task = tsk("rats")
# Prediction Error Curves for prediction object
learn = lrn("surv.coxph")
p = learn$train(task)$predict(task)
pecs(p)
pecs(p, measure = "logloss", times = c(20, 40, 60, 80)) +
ggplot2::geom_point() +
ggplot2::ggtitle("Logloss Prediction Error Curve for Cox PH")
# Access underlying data
x = pecs(p)
x$data
# Prediction Error Curves for fitted learners
learns = lrns(c("surv.kaplan", "surv.coxph"))
lapply(learns, function(x) x$train(task))
pecs(learns, task = task, measure = "logloss", times = c(20, 90), n = 10)
}
}