Generates plots for mlr3proba::PredictionSurv, depending on argument type:

  • "calib" (default): Calibration plot comparing the average predicted survival distribution to a Kaplan-Meier prediction, this is not a comparison of a stratified crank or lp prediction. object must have distr prediction. geom_line() is used for comparison split between the prediction (Pred) and Kaplan-Meier estimate (KM). In addition labels are added for the x (T) and y (S(T)) axes.

  • "dcalib": Distribution calibration plot. A model is D-calibrated if X% of deaths occur before the X/100 quantile of the predicted distribution, e.g. if 50% of observations die before their predicted median survival time. A model is D-calibrated if the resulting plot lies on x = y.

# S3 method for PredictionSurv
  type = c("calib", "dcalib"),
  task = NULL,
  row_ids = NULL,
  times = NULL,
  xyline = TRUE,
  cuts = 11L,





Type of the plot. See description.


If type = "calib" then task is passed to $predict in the Kaplan-Meier learner.


If type = "calib" then row_ids is passed to $predict in the Kaplan-Meier learner.


If type = "calib" then times is the values on the x-axis to plot over, if NULL uses all times from task.


If TRUE (default) plots the x-y line for type = "dcalib".


Number of cuts in (0,1) to plot dcalib over, default is 11.


(any): Additional arguments, currently unused.


Haider H, Hoehn B, Davis S, Greiner R (2020). “Effective Ways to Build and Evaluate Individual Survival Distributions.” Journal of Machine Learning Research, 21(85), 1-63.


library(mlr3) library(mlr3proba) library(mlr3viz) learn = lrn("surv.coxph") task = tsk("unemployment") p = learn$train(task, row_ids = 1:300)$predict(task, row_ids = 301:400) # calibration by comparison of average prediction to Kaplan-Meier autoplot(p, type = "calib", task = task, row_ids = 301:400)
# Distribution-calibration (D-Calibration) autoplot(p, type = "dcalib")