PredictionSurv: Prediction Object for Survival

PredictionSurvR Documentation

Prediction Object for Survival

Description

This object stores the predictions returned by a learner of class LearnerSurv.

The task_type is set to "surv".

For accessing survival and hazard functions, as well as other complex methods from a PredictionSurv object, see public methods on distr6::ExoticStatistics() and example below.

Super class

mlr3::Prediction -> PredictionSurv

Active bindings

truth

(Surv)
True (observed) outcome.

crank

(numeric())
Access the stored predicted continuous ranking.

distr

(distr6::Matdist|distr6::Arrdist|distr6::VectorDistribution)
Convert the stored survival array or matrix to a survival distribution.

lp

(numeric())
Access the stored predicted linear predictor.

response

(numeric())
Access the stored predicted survival time.

Methods

Public methods

Inherited methods

Method new()

Creates a new instance of this R6 class.

Usage
PredictionSurv$new(
  task = NULL,
  row_ids = task$row_ids,
  truth = task$truth(),
  crank = NULL,
  distr = NULL,
  lp = NULL,
  response = NULL,
  check = TRUE
)
Arguments
task

(TaskSurv)
Task, used to extract defaults for row_ids and truth.

row_ids

(integer())
Row ids of the predicted observations, i.e. the row ids of the test set.

truth

(survival::Surv())
True (observed) response.

crank

(numeric())
Numeric vector of predicted continuous rankings (or relative risks). One element for each observation in the test set. For a pair of continuous ranks, a higher rank indicates that the observation is more likely to experience the event.

distr

(⁠matrix()|[distr6::Arrdist]|[distr6::Matdist]|[distr6::VectorDistribution]⁠)
Either a matrix of predicted survival probabilities, a distr6::VectorDistribution, a distr6::Matdist or an distr6::Arrdist. If a matrix/array then column names must be given and correspond to survival times. Rows of matrix correspond to individual predictions. It is advised that the first column should be time 0 with all entries 1 and the last with all entries 0. If a VectorDistribution then each distribution in the vector should correspond to a predicted survival distribution.

lp

(numeric())
Numeric vector of linear predictor scores. One element for each observation in the test set. lp = X\beta where X is a matrix of covariates and \beta is a vector of estimated coefficients.

response

(numeric())
Numeric vector of predicted survival times. One element for each observation in the test set.

check

(logical(1))
If TRUE, performs argument checks and predict type conversions.

Details

Upon initialization, if the distr input is a Distribution, we try to coerce it either to a survival matrix or a survival array and store it in the ⁠$data$distr⁠ slot for internal use.

If the stored ⁠$data$distr⁠ is a Distribution object, the active field ⁠$distr⁠ (external user API) returns it without modification. Otherwise, if ⁠$data$distr⁠ is a survival matrix or array, ⁠$distr⁠ constructs a distribution out of the ⁠$data$distr⁠ object, which will be a Matdist or Arrdist respectively.

Note that if a survival 3d array is stored in ⁠$data$distr⁠, the ⁠$distr⁠ field returns an Arrdist initialized with which.curve = 0.5 by default (i.e. the median curve). This means that measures that require a distr prediction like MeasureSurvGraf, MeasureSurvRCLL, etc. will use the median survival probabilities. Note that it is possible to manually change which.curve after construction of the predicted distribution but we advise against this as it may lead to inconsistent results.


Method clone()

The objects of this class are cloneable with this method.

Usage
PredictionSurv$clone(deep = FALSE)
Arguments
deep

Whether to make a deep clone.

See Also

Other Prediction: PredictionDens

Examples

library(mlr3)
task = tsk("rats")
learner = lrn("surv.kaplan")
p = learner$train(task, row_ids = 1:26)$predict(task, row_ids = 27:30)
head(as.data.table(p))

p$distr # distr6::Matdist class (test obs x time points)

# survival probabilities of the 4 test rats at two time points
p$distr$survival(c(20, 100))

mlr-org/mlr3proba documentation built on April 12, 2025, 4:38 p.m.