# Survival Fully Parametric Learner

`mlr_learners_surv.parametric.Rd`

Parametric survival model.
Calls `survival::survreg()`

from 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()`

:

```
$get("surv.parametric")
mlr_learnerslrn("surv.parametric")
```

## Meta Information

Task type: “surv”

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

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

Required Packages: mlr3, mlr3proba, mlr3extralearners, survival, pracma

## Parameters

Id | Type | Default | Levels | Range |

type | character | aft | aft, ph, po, tobit | - |

na.action | untyped | - | - | |

dist | character | weibull | weibull, exponential, gaussian, lognormal, loglogistic | - |

parms | untyped | - | - | |

init | untyped | - | - | |

scale | numeric | 0 | \([0, \infty)\) | |

maxiter | integer | 30 | \((-\infty, \infty)\) | |

rel.tolerance | numeric | 1e-09 | \((-\infty, \infty)\) | |

toler.chol | numeric | 1e-10 | \((-\infty, \infty)\) | |

debug | integer | 0 | \([0, 1]\) | |

outer.max | integer | 10 | \((-\infty, \infty)\) | |

robust | logical | FALSE | TRUE, FALSE | - |

score | logical | FALSE | TRUE, FALSE | - |

cluster | untyped | - | - |

## References

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

## See also

`as.data.table(mlr_learners)`

for a table of available Learners in the running session (depending on the loaded packages).Chapter in the mlr3book: https://mlr3book.mlr-org.com/basics.html#learners

mlr3learners for a selection of recommended learners.

mlr3cluster for unsupervised clustering learners.

mlr3pipelines to combine learners with pre- and postprocessing steps.

mlr3tuning for tuning of hyperparameters, mlr3tuningspaces for established default tuning spaces.

## Super classes

`mlr3::Learner`

-> `mlr3proba::LearnerSurv`

-> `LearnerSurvParametric`

## Examples

```
learner = mlr3::lrn("surv.parametric")
print(learner)
#> <LearnerSurvParametric:surv.parametric>: Fully Parametric Learner
#> * Model: -
#> * Parameters: list()
#> * Packages: mlr3, mlr3proba, mlr3extralearners, survival, pracma
#> * Predict Types: crank, [distr], lp
#> * 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"
```