Skip to contents

Calls survival::survreg from package survival.

Details

This learner allows you to choose a distribution and a model form to compose a predicted survival probability distribution.

The internal predict method is implemented in this package as our implementation is more efficient for composition to distributions than survival::predict.survreg().

lp is predicted using the formula \(lp = X\beta\) where \(X\) are the variables in the test data set and \(\beta\) are the fitted coefficients.

The distribution distr is composed using the lp and specifying a model form in the type hyper-parameter. These are as follows, with respective survival functions,

  • Accelerated Failure Time (aft) $$S(t) = S_0(\frac{t}{exp(lp)})$$

  • Proportional Hazards (ph) $$S(t) = S_0(t)^{exp(lp)}$$

  • Proportional Odds (po) $$S(t) = \frac{S_0(t)}{exp(-lp) + (1-exp(-lp)) S_0(t)}$$

  • Tobit (tobit) $$S(t) = 1 - F((t - lp)/s)$$

where \(S_0\) is the estimated baseline survival distribution (in this case with a given parametric form), \(lp\) is the predicted linear predictor, \(F\) is the cdf of a N(0, 1) distribution, and \(s\) is the fitted scale parameter.

Whilst any combination of distribution and model form is possible, this does not mean it will necessarily create a sensible or interpretable prediction. The following combinations are 'sensible':

  • dist = "gaussian"; type = "tobit";

  • dist = "weibull"; type = "ph";

  • dist = "exponential"; type = "ph";

  • dist = "weibull"; type = "aft";

  • dist = "exponential"; type = "aft";

  • dist = "loglogistic"; type = "aft";

  • dist = "lognormal"; type = "aft";

  • dist = "loglogistic"; type = "po";

Dictionary

This Learner can be instantiated via the dictionary mlr_learners or with the associated sugar function lrn():

mlr_learners$get("surv.parametric")
lrn("surv.parametric")

Meta Information

  • Task type: “surv”

  • Predict Types: “distr”, “lp”, “crank”

  • Feature Types: “logical”, “integer”, “numeric”, “factor”

  • Required Packages: mlr3extralearners, survival, pracma

Parameters

IdTypeDefaultLevelsRange
typecharacteraftaft, ph, po, tobit\((-\infty, \infty)\)
na.actionlist-\((-\infty, \infty)\)
distcharacterweibullweibull, exponential, gaussian, lognormal, loglogistic\((-\infty, \infty)\)
parmslist-\((-\infty, \infty)\)
initlist-\((-\infty, \infty)\)
scalenumeric0\([0, \infty)\)
maxiterinteger30\((-\infty, \infty)\)
rel.tolerancenumeric1e-09\((-\infty, \infty)\)
toler.cholnumeric1e-10\((-\infty, \infty)\)
debuginteger0\([0, 1]\)
outer.maxinteger10\((-\infty, \infty)\)
robustlogicalFALSETRUE, FALSE\((-\infty, \infty)\)
scorelogicalFALSETRUE, FALSE\((-\infty, \infty)\)
clusterlist-\((-\infty, \infty)\)

References

Kalbfleisch, J. D., & Prentice, R. L. (2011). The statistical analysis of failure time data (Vol. 360). John Wiley & Sons.

See also

Author

RaphaelS1

Super classes

mlr3::Learner -> mlr3proba::LearnerSurv -> LearnerSurvParametric

Methods

Inherited methods


Method new()

Creates a new instance of this R6 class.

Usage


Method clone()

The objects of this class are cloneable with this method.

Usage

LearnerSurvParametric$clone(deep = FALSE)

Arguments

deep

Whether to make a deep clone.

Examples

if (requireNamespace("survival", quietly = TRUE) && requireNamespace("pracma", quietly = TRUE)) {
  learner = mlr3::lrn("surv.parametric")
  print(learner)

  # available parameters:
  learner$param_set$ids()
}
#> <LearnerSurvParametric:surv.parametric>
#> * Model: -
#> * Parameters: list()
#> * Packages: mlr3, mlr3extralearners, survival, pracma
#> * Predict Type: distr
#> * Feature types: logical, integer, numeric, factor
#> * Properties: weights
#>  [1] "type"          "na.action"     "dist"          "parms"        
#>  [5] "init"          "scale"         "maxiter"       "rel.tolerance"
#>  [9] "toler.chol"    "debug"         "outer.max"     "robust"       
#> [13] "score"         "cluster"