Skip to contents

Accelerated oblique random survival forest. Calls aorsf::orsf() from aorsf. Note that although the learner has the property "missing" and it can in principle deal with missing values, the behaviour has to be configured using the parameter na_action.

Initial parameter values

  • n_thread: This parameter is initialized to 1 (default is 0) to avoid conflicts with the mlr3 parallelization.

  • mtry:

    • This hyperparameter can alternatively be set via the added hyperparameter mtry_ratio as mtry = max(ceiling(mtry_ratio * n_features), 1). Note that mtry and mtry_ratio are mutually exclusive.

Prediction types

This learner returns three prediction types:

  1. distr: a survival matrix in two dimensions, where observations are represented in rows and (unique event) time points in columns. Calculated using the internal predict.ObliqueForest() function.

  2. response: the restricted mean survival time of each test observation, derived from the survival matrix prediction (distr).

  3. crank: the expected mortality using mlr3proba::.surv_return().

Dictionary

This Learner can be instantiated via lrn():

lrn("surv.aorsf")

Meta Information

  • Task type: “surv”

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

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

  • Required Packages: mlr3, mlr3proba, mlr3extralearners, aorsf, pracma

Parameters

IdTypeDefaultLevelsRange
n_treeinteger500\([1, \infty)\)
n_splitinteger5\([1, \infty)\)
n_retryinteger3\([0, \infty)\)
n_threadinteger0\([0, \infty)\)
pred_aggregatelogicalTRUETRUE, FALSE-
pred_simplifylogicalFALSETRUE, FALSE-
oobaglogicalFALSETRUE, FALSE-
mtryintegerNULL\([1, \infty)\)
mtry_rationumeric-\([0, 1]\)
sample_with_replacementlogicalTRUETRUE, FALSE-
sample_fractionnumeric0.632\([0, 1]\)
control_typecharacterfastfast, cph, net-
split_rulecharacterlogranklogrank, cstat-
control_fast_do_scalelogicalFALSETRUE, FALSE-
control_fast_tiescharacterefronefron, breslow-
control_cph_tiescharacterefronefron, breslow-
control_cph_epsnumeric1e-09\([0, \infty)\)
control_cph_iter_maxinteger20\([1, \infty)\)
control_net_alphanumeric0.5\((-\infty, \infty)\)
control_net_df_targetintegerNULL\([1, \infty)\)
leaf_min_eventsinteger1\([1, \infty)\)
leaf_min_obsinteger5\([1, \infty)\)
split_min_eventsinteger5\([1, \infty)\)
split_min_obsinteger10\([1, \infty)\)
split_min_statnumericNULL\([0, \infty)\)
oobag_pred_typecharacterrisknone, surv, risk, chf, mort-
importancecharacteranovanone, anova, negate, permute-
importance_max_pvaluenumeric0.01\([1e-04, 0.9999]\)
tree_seedsintegerNULL\([1, \infty)\)
oobag_pred_horizonnumericNULL\([0, \infty)\)
oobag_eval_everyintegerNULL\([1, \infty)\)
oobag_fununtypedNULL-
attach_datalogicalTRUETRUE, FALSE-
verbose_progresslogicalFALSETRUE, FALSE-
na_actioncharacterfailfail, omit, impute_meanmode-

References

Jaeger BC, Long DL, Long DM, Sims M, Szychowski JM, Min Y, Mcclure LA, Howard G, Simon N (2019). “Oblique random survival forests.” The Annals of Applied Statistics, 13(3). doi:10.1214/19-aoas1261 .

Jaeger BC, Welden S, Lenoir K, Speiser JL, Segar MW, Pandey A, Pajewski NM (2023). “Accelerated and interpretable oblique random survival forests.” Journal of Computational and Graphical Statistics, 1–16. doi:10.1080/10618600.2023.2231048 .

See also

Author

bcjaeger

Super classes

mlr3::Learner -> mlr3proba::LearnerSurv -> LearnerSurvAorsf

Methods

Inherited methods


Method new()

Creates a new instance of this R6 class.

Usage


Method oob_error()

OOB concordance error extracted from the model slot eval_oobag$stat_values

Usage

LearnerSurvAorsf$oob_error()

Returns

numeric().


Method importance()

The importance scores are extracted from the model.

Usage

LearnerSurvAorsf$importance()

Returns

Named numeric().


Method clone()

The objects of this class are cloneable with this method.

Usage

LearnerSurvAorsf$clone(deep = FALSE)

Arguments

deep

Whether to make a deep clone.

Examples

# Define the Learner
learner = mlr3::lrn("surv.aorsf")
print(learner)
#> <LearnerSurvAorsf:surv.aorsf>: Oblique Random Forest
#> * Model: -
#> * Parameters: n_thread=1
#> * Packages: mlr3, mlr3proba, mlr3extralearners, aorsf, pracma
#> * Predict Types:  [crank], distr, response
#> * Feature Types: integer, numeric, factor, ordered
#> * Properties: importance, missings, oob_error

# Define a Task
task = mlr3::tsk("grace")

# Create train and test set
ids = mlr3::partition(task)

# Train the learner on the training ids
learner$train(task, row_ids = ids$train)

print(learner$model)
#> ---------- Oblique random survival forest
#> 
#>      Linear combinations: Accelerated Cox regression
#>           N observations: 670
#>                 N events: 217
#>                  N trees: 500
#>       N predictors total: 6
#>    N predictors per node: 3
#>  Average leaves per tree: 40.094
#> Min observations in leaf: 5
#>       Min events in leaf: 1
#>           OOB stat value: 0.81
#>            OOB stat type: Harrell's C-index
#>      Variable importance: anova
#> 
#> -----------------------------------------
print(learner$importance())
#> revascdays     revasc        los        age      sysbp   stchange 
#>  0.5772992  0.5201373  0.1949451  0.1787445  0.1121629  0.0986424 

# Make predictions for the test rows
predictions = learner$predict(task, row_ids = ids$test)

# Score the predictions
predictions$score()
#> surv.cindex 
#>   0.8781845