Input and Output Channels
Input and output channels are inherited from PipeOpTaskTransformer.
State
The $state
is a named list
with the $state
elements
instatus
: Censoring status from input training task.outstatus
: Censoring status from input prediction task.
Parameters
The parameters are
method
::character(1)
Method to use for dealing with censoring. Options are"ipcw"
(Vock et al., 2016): censoring column is removed and aweights
column is added, weights are inverse estimated survival probability of the censoring distribution evaluated at survival time;"mrl"
(Klein and Moeschberger, 2003): survival time of censored observations is transformed to the observed time plus the mean residual life-time at the moment of censoring;"bj"
(Buckley and James, 1979): Buckley-James imputation assuming an AFT model form, calls bujar::bujar;"delete"
: censored observations are deleted from the data-set - should be used with caution if censoring is informative;"omit"
: the censoring status column is deleted - again should be used with caution;"reorder"
: selects features and targets and sets the target in the new task object. Note that"mrl"
and"ipcw"
will perform worse with Type I censoring.estimator
::character(1)
Method for calculating censoring weights or mean residual lifetime in"mrl"
, current options are:"kaplan"
: unconditional Kaplan-Meier estimator;"akritas"
: conditional non-parameteric nearest-neighbours estimator;"cox"
.alpha
::numeric(1)
Whenipcw
is used, optional hyper-parameter that adds an extra penalty to the weighting for censored observations. If set to0
then censored observations are given zero weight and deleted, weighting only the non-censored observations. A weight for an observation is then \((\delta + \alpha(1-\delta))/G(t)\) where \(\delta\) is the censoring indicator.eps
::numeric(1)
Small value to replace0
survival probabilities with in IPCW to prevent infinite weights.lambda
::numeric(1)
Nearest neighbours parameter for the"akritas"
estimator in the mlr3extralearners package, default0.5
.features, target
::character()
For"reorder"
method, specify which columns become features and targets.learner cneter, mimpu, iter.bj, max.cycle, mstop, nu
Passed to bujar::bujar.
References
Buckley, Jonathan, James, Ian (1979). “Linear Regression with Censored Data.” Biometrika, 66(3), 429–436. doi:10.2307/2335161 , https://www.jstor.org/stable/2335161.
Klein, P J, Moeschberger, L M (2003). Survival analysis: techniques for censored and truncated data, 2 edition. Springer Science & Business Media. ISBN 0387216456.
Vock, M D, Wolfson, Julian, Bandyopadhyay, Sunayan, Adomavicius, Gediminas, Johnson, E P, Vazquez-Benitez, Gabriela, O'Connor, J P (2016). “Adapting machine learning techniques to censored time-to-event health record data: A general-purpose approach using inverse probability of censoring weighting.” Journal of Biomedical Informatics, 61, 119–131. doi:10.1016/j.jbi.2016.03.009 , https://www.sciencedirect.com/science/article/pii/S1532046416000496.
See also
Other PipeOps:
PipeOpPredTransformer
,
PipeOpTaskTransformer
,
PipeOpTransformer
,
mlr_pipeops_survavg
,
mlr_pipeops_trafopred_classifsurv_IPCW
,
mlr_pipeops_trafopred_classifsurv_disctime
,
mlr_pipeops_trafopred_regrsurv
,
mlr_pipeops_trafopred_survregr
,
mlr_pipeops_trafotask_regrsurv
,
mlr_pipeops_trafotask_survclassif_IPCW
,
mlr_pipeops_trafotask_survclassif_disctime
Other Transformation PipeOps:
mlr_pipeops_trafopred_classifsurv_IPCW
,
mlr_pipeops_trafopred_classifsurv_disctime
,
mlr_pipeops_trafopred_regrsurv
,
mlr_pipeops_trafopred_survregr
,
mlr_pipeops_trafotask_regrsurv
,
mlr_pipeops_trafotask_survclassif_IPCW
,
mlr_pipeops_trafotask_survclassif_disctime
Super classes
mlr3pipelines::PipeOp
-> mlr3proba::PipeOpTransformer
-> mlr3proba::PipeOpTaskTransformer
-> PipeOpTaskSurvRegr
Methods
Method new()
Creates a new instance of this R6 class.
Usage
PipeOpTaskSurvRegr$new(id = "trafotask_survregr", param_vals = list())
Arguments
id
(
character(1)
)
Identifier of the resulting object.param_vals
(
list()
)
List of hyperparameter settings, overwriting the hyperparameter settings that would otherwise be set during construction.
Examples
if (FALSE) { # \dontrun{
library(mlr3)
library(mlr3pipelines)
# these methods are generally only successful if censoring is not too high
# create survival task by undersampling
task = tsk("rats")$filter(
c(which(tsk("rats")$truth()[, 2] == 1),
sample(which(tsk("rats")$truth()[, 2] == 0), 42))
)
# deletion
po = po("trafotask_survregr", method = "delete")
po$train(list(task, NULL))[[1]] # 42 deleted
# omission
po = po("trafotask_survregr", method = "omit")
po$train(list(task, NULL))[[1]]
if (requireNamespace("mlr3extralearners", quietly = TRUE)) {
# ipcw with Akritas
po = po("trafotask_survregr", method = "ipcw", estimator = "akritas", lambda = 0.4, alpha = 0)
new_task = po$train(list(task, NULL))[[1]]
print(new_task)
new_task$weights
}
# mrl with Kaplan-Meier
po = po("trafotask_survregr", method = "mrl")
new_task = po$train(list(task, NULL))[[1]]
data.frame(new = new_task$truth(), old = task$truth())
# Buckley-James imputation
if (requireNamespace("bujar", quietly = TRUE)) {
po = po("trafotask_survregr", method = "bj")
new_task = po$train(list(task, NULL))[[1]]
data.frame(new = new_task$truth(), old = task$truth())
}
# reorder - in practice this will be only be used in a few graphs
po = po("trafotask_survregr", method = "reorder", features = c("sex", "rx", "time", "status"),
target = "litter")
new_task = po$train(list(task, NULL))[[1]]
print(new_task)
# reorder using another task for feature names
po = po("trafotask_survregr", method = "reorder", target = "litter")
new_task = po$train(list(task, task))[[1]]
print(new_task)
} # }