Calls survival::survreg from package survival.


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";


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



  • Packages: survival, pracma

  • Predict Types: distr, lp, crank

  • Feature Types: logical, integer, numeric, factor

  • Properties: weights


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

See also



Super classes

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


Public methods

Inherited methods

Method new()

Creates a new instance of this R6 class.



Method clone()

The objects of this class are cloneable with this method.


LearnerSurvParametric$clone(deep = FALSE)



Whether to make a deep clone.


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