Skip to contents

Fits a competing risks Cox model using likelihood based boosting. Calls CoxBoost::CoxBoost() or CoxBoost::cv.CoxBoost() from package CoxBoost. Predicts cumulative incidence functions (one CIF matrix per cause, rows = observations, columns = times). If times are not provided for prediction, the unique event times (across causes) from the training set are used by default.

Dictionary

This Learner can be instantiated via lrn():

lrn("cmprsk.coxboost")

Meta Information

Parameters

IdTypeDefaultLevelsRange
cvlogical-TRUE, FALSE-
maxstepnointeger100\([0, \infty)\)
Kinteger10\([2, \infty)\)
typecharacterverweijverweij, naive-
foldsuntypedNULL-
minstepnointeger50\([0, \infty)\)
start.penaltynumeric-\((-\infty, \infty)\)
iter.maxinteger10\([1, \infty)\)
upper.marginnumeric0.05\([0, 1]\)
unpen.indexuntyped--
standardizelogicalTRUETRUE, FALSE-
stepnointeger100\([0, \infty)\)
penaltynumeric-\((-\infty, \infty)\)
criterioncharacterpscorepscore, score, hpscore, hscore-
stepsize.factornumeric1\((-\infty, \infty)\)
sf.schemecharactersigmoidsigmoid, linear-
pendistmatuntyped--
connected.indexuntyped--
x.is.01logicalFALSETRUE, FALSE-
return.scorelogicalTRUETRUE, FALSE-
tracelogicalFALSETRUE, FALSE-
cmprskcharacter-csh, ccsh-
coupled.stratalogicalTRUETRUE, FALSE-
at.stepuntyped--
timesuntyped--

Custom mlr3 parameters

Initial parameter values

  • cmprsk: Type of competing risks analysis. Initialized to "csh" (cause-specific hazards) which models each cause separately, treating other causes as censored. "ccsh" (combined cause-specific hazards) is another option which combines information across causes for variable selection using a joint criterion.

References

Binder, Harald, Allignol, Arthur, Schumacher, Martin, Beyersmann, Jan (2009). “Boosting for high-dimensional time-to-event data with competing risks.” Bioinformatics, 25(7), 890–896.

See also

Author

bblodfon

Super classes

mlr3::Learner -> mlr3cmprsk::LearnerCompRisks -> LearnerCompRisksCoxboost

Methods

Inherited methods


Method new()

Creates a new instance of this R6 class.


Method selected_features()

Returns the set of cause-specific selected features which have non-zero coefficients. Calls the internal coef.CoxBoost() function.

Usage

LearnerCompRisksCoxboost$selected_features(at_step = NULL, cause = 1)

Arguments

at_step

(integer(1))
Which boosting step to get the coefficients for. If no step is given (default), the final boosting step is used.

cause

(integer(1))
Integer value indicating the event of interest.

Returns

(character()) vector of feature names.


Method clone()

The objects of this class are cloneable with this method.

Usage

LearnerCompRisksCoxboost$clone(deep = FALSE)

Arguments

deep

Whether to make a deep clone.

Examples

# Define the Learner
learner = lrn("cmprsk.coxboost", stepno = 10)
print(learner)
#> 
#> ── <LearnerCompRisksCoxboost> (cmprsk.coxboost): Likelihood-based Boosting for C
#> • Model: -
#> • Parameters: cv=FALSE, stepno=10, cmprsk=csh
#> • Packages: mlr3, mlr3cmprsk, mlr3extralearners, and CoxBoost
#> • Predict Types: [cif]
#> • Feature Types: integer and numeric
#> • Encapsulation: none (fallback: -)
#> • Properties: selected_features and weights
#> • Other settings: use_weights = 'use'

# Define a Task
task = tsk("pbc")
task$col_roles$feature = c("age", "chol", "copper", "platelet", "trig",
 "albumin", "alk.phos", "ast", "bili", "protime")

# Stratification based on event
task$set_col_roles(cols = "status", add_to = "stratum")

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

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

print(learner$model)
#> cause '1':
#> 10 boosting steps resulting in 3 non-zero coefficients  
#> partial log-likelihood: -53.47794 
#> 
#> cause '2':
#> 10 boosting steps resulting in 6 non-zero coefficients  
#> partial log-likelihood: -298.9053 
print(learner$selected_features(cause = 1)) # for cause = 1
#> [1] "age"  "chol" "trig"
print(learner$selected_features(cause = 2)) # for cause = 2
#> [1] "age"      "copper"   "platelet" "albumin"  "bili"     "protime" 

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

# Score the predictions
predictions$score()
#> cmprsk.auc 
#>  0.8861008