- cleanup: removed all
PipeOp
s and pipelines related to survival => regression reduction techniques (see #414) - fix:
$predict_type
ofsurvtoclassif_disctime
andsurvtoclassif_IPCW
wasprob
(classification type) and notcrank
(survival type) - fix: G(t) is not filtered when
t_max|p_max
is specified in scoring rules (didn't influence evaluation at all) - docs: Clarified the use and impact of using
t_max
in scoring rules, added examples in scoring rules and AUC scores - feat: Added new argument
remove_obs
in scoring rules to remove observations with observed timet > t_max
as a processing step to alleviate IPCW issues. This was before 'hard-coded' which made the Integrated Brier Score (msr("surv.graf")
) differ minimally from other implementations and the original definition.
- Add
mlr3pipelines
toImports
and set minimum latest version from CRAN (0.7.0
) - Refactor code to minimize namespace calling and imports such as
mlr3pipelines::
orR6::
- Doc updates: add experimental badge in a some PipeOps + add references in others
- Add argument
scale_lp
for AFTdistrcompose
pipeop + respective pipeline
- New
PipeOp
s:PipeOpTaskSurvClassifIPCW
,PipeOpPredClassifSurvIPCW
- New pipeline (reduction method):
pipeline_survtoclassif_IPCW
- Improved the way Integrated Brier score handles the
times
argument and thet_max
, especially when the survival matrix has one time point (column) - Improved documentation of integrated survival scores
- Improved documentation of all pipelines
- Temp fix of math-rendering issue in package website
- Add experimental
lifecycle
badge for 3 pipelines (survtoregr
,distrcompositor
andprobregr
) - these are currently either not supported by literature or tested enough.
Rcpp
code optimizations- Fixed ERV scoring to comply with
mlr3
dev version (no bugs before) - Skipping
survtoregr
pipelines due to bugs (to be refactored in the future)
- Deprecate
crank
todistr
composition indistrcompose
pipeop (only fromlp
=>distr
works now) - Add
get_mortality()
function (fromsurvivalmodels::surv_to_risk()
- Add Rcpp function
assert_surv_matrix()
- Update and simplify
crankcompose
pipeop and respective pipeline (noresponse
is created anymore) - Add
responsecompositor
pipeline withrmst
andmedian
- Small fixes and refactoring to the discrete-time pipeops
- Add support for discrete-time survival analysis
- New
PipeOp
s:PipeOpTaskSurvClassifDiscTime
,PipeOpPredClassifSurvDiscTime
- New pipeline (reduction method):
pipeline_survtoclassif_disctime
- Add useR! 2024 tutorial
- Lots of refactoring, improving code quality, migration to testthat v3, etc. (thanks to @m-muecke)
- Add new tasks from
survival
package:veteran
,pbc
,mgus
,gbsg
- Refined docs for loaded tasks,
task$help()
works as it should now - All loaded tasks have now complete cases (no features with missing values)
- Refined docs for loaded tasks,
- Refined docs for task generators
- Added task generator from
coxed
package - Added new methods for
TaskSurv
:cens_prop()
,admin_cens_prop()
,dep_cens_prop()
andprop_haz()
- Updates in
surv.cindex
measure- added
p_max
(same assurv.graf
) - refactor
cutoff
tot_max
- added
- Compatibility with upcoming 'paradox' release.
- Fix bug when applying
t_max
insurv.graf
and similar time-integrated scores.
- Optimized
surv.logloss
andcalib_alpha
measures (bypassingdistr6
) - Update/refine all measure docs (naming conventions from upcoming scoring rules paper) + doc templates
- fix very rare bugs in
calib_alpha
,surv.logloss
andsurv.graf
(version with proper = FALSE)
- Fix several old issues (#348, #301, #281)
distrcompositor
andcrankcompositor
deprecated functions were completely removed
- Fix Breslow issues (
phash
warning andInf
lp predictions)
- Add
breslow
function for estimating the cumulative baseline hazard of proportional hazard models - Add
PipeOpBreslow
to wrap a survival learner and generatedistr
predictions fromlp
predictions - Add option
breslow
estimator option indistrcompositor
- Add
extend_quantile
toautoplot.PredictionSurv
fortype = "dcalib"
, which imputes NAs with the maximum observed survival time - Fixes default in
autoplot.PredictionSurv
, now"calib"
- Update
msr("surv.dcalib")
default fortruncate
toInf
- Add
$reverse()
method toTaskSurv
, which returns the same task but with 1-status. - Add
reverse
parameter toTaskSurv$kaplan()
method, which calculates Kaplan-Meier on the censoring distribution of the task (1-status).
- Fix bottlenecks in Dcalib and RCLL
- Add support for learners that can predict multiple posterior distributions by using
distr6::Arrdist
- Add
plot_probregr
for plotting probabilistic regression distribution predictions - Fix big bug in
surv.rcll
creating erroneous results as distributions were not being subsetted correctly
- Add
regr.logloss
- Possibly small breaking change, renamed
PipeOpProbregrCompositor
toPipeOpProbregr
and default distribution now"Uniform"
. - Renamed
probregrcompositor
pipeline toprobregr
and default distribution now"Uniform"
. - Bumped minor version to highlight all fixes in measures below
- Bugfix in setting Uno's AUC parameters
- Bugfix in RCLL when no censoring
- Bugfix in all learners when making single predictions
- Fix bug in
surv.rcll
when individual scores areNA
.
- Remove
theme_mlr3
from plots. - Fix bug in
surv.logloss
when usingIPCW = TRUE
- Fix bug in
surv.cindex
caused when probability of censoring was 0. Addedeps
parameter to control this.
- Fix bug in converting distr6 distributions to matrices when creating
PredictionSurv
- Fix bug in RCLL
- Fix minor bug in 'SG' cindex method
- Fix bug in survavg pipeline causing unequal weights not to be applied
- Fix minor bug in scoring rules
- Added
ERV
parameter to scoring rule measures to return more interpretable scoring rules. Explained Residual Variation is the percentage decrease between a scoring rule comparing a Kaplan-Meier baseline to the learner of interest.
- Fixed bug in surv.logloss causing IPCW weighting to not be applied correctly
- Bug fixes in AUC measures
- Add right-censored log loss
- Fix bug in {rpart} where model was being discarded when set to be kept. Parameter
model
now calledkeep_model
.
- Patch for upstream breakages
- Add
TaskSurv$kaplan
method - {survivalmodels} now imported (previously suggested)
- Improved reduction from survival matrix predictions to ranking predictions
- Fixed cindex bug when all predictions equal
- Fix for valgrind
- Minor change to how distributions are created to better support improper distributions
- Fixed bug in
simsurv
task that made it impossible to predict the target
- Massive speed-up in distrcompositor PipeOp/pipeline
- More informative error given if
$distr
called for a learner that does not support this return type - Fix massive bottleneck in scoring rule measures
- Add Density coercions
as_task_dens
andas_prediction_dens
- Measures now use parameter sets like learners. This streamlines the interface but unfortunately means ids can no longer be set dynamically.
- Add parameters
t_max
andp_max
to Graf, Schmid and Integrated Log-loss as an alternative totimes
.t_max
is equivalent totimes = seq(t_max)
andp_max
is the proportion of censoring to integrate up to in the dataset. - Fix bug in Rcpp code that was causing erroneous values for calculating the cindex in datasets greater than 20,000 observations.
- Patch for linux
- Remove
mlr3extralearners
from Suggests - Add
response
toas_prediction_surv
- Now exported a couple cpp functions and
assert_surv
mlr3
is now inDepends
notimports
distr
predictions are now internally stored as matrices to significantly reduce prediction object sizes- Tasks now support strata property
- Deprecated measures from 0.2.0 have now been deleted.
- IPCW measures such as
surv.graf
,surv.schmid
, andsurv.intlogloss
now allow training data to be passed to the score function withtask
andtrain_set
to allow the censoring distribution to be estimated on the training data. This is automatically applied for resample and benchmark results. - IPCW measures such as
surv.graf
,surv.schmid
, andsurv.intlogloss
now include a parameterproper
to determine what weighting scheme should be applied by the estimated censoring distribution, The current method (Graf, 1999)proper = FALSE
, weights observations either by their event time or 'current' time depending if they're dead or not, the new methodproper = TRUE
weights observations by event time. Theproper = TRUE
method is strictly proper when censoring and survival times are independent and G is estimated on large enough data. Theproper = FALSE
method is never proper. The default is currentlyproper = FALSE
to enable backward compatibility, this will be changed toproper = TRUE
in v0.6.0. - The
rm_cens
parameter insurv.logloss
has been deprecated in favour ofIPCW
.rm_cens
will be removed in v0.6.0. Ifrm_cens
orIPCW
areTRUE
then censored observations are removed and the score is weighted by an estimate of the censoring distribution at individual event times. Otherwise ifrm_cens
andIPCW
areFALSE
then no deletion or weighting takes place. TheIPCW = TRUE
method is strictly proper when censoring and survival times are independent and G is estimated on large enough data. Theipcw = FALSE
method is never proper. - Add
surv.dcalib
for the D-Calibration measure from Haider et al. (2020).
- Patched bug causing
"interval2"
task type not to work - Fixed bug causing pipelines not to function correctly in
$aggregate
- Reverted removal of
"interval2"
- Commonly used survival quantities have been added as active bindings to
TaskSurv
includingtimes
(observed survival times),status
(observed survival indicator),unique_times
(set of sorted unique outcome times),unique_event_times
(set of sorted unique failure times),risk_set
(set of observations alive 'just before' a given time) "interval2"
censoring type has been removed fromTaskSurv
as this is covered by the other types- Default values have now been given to the
time
andevent
arguments inTaskSurv
PredictionDens
can now includedistr
return type (equivalent tolearner$model
)
- Minor internal fixes
PipeOpCrankCompositor
updated to fix bottleneck in computation viamean
. NowInf
orNA
is replaced by0
forresponse
and imputed with the median forcrank
- Bug in
distr
predict types fixed that lead to fitting degenerate distributions and returning incorrect values for mean survival time andcrank
- CRITICAL BUG FIX -
compose_crank
was previously returning ranks with the reverse ordering so that higher ranks implied higher risk not lower.
- All learners that previously lived in the mlr3learners organisation are now in the mlr3extralearners repository.
- Fixed bottleneck in
MeasureSurvLogloss
- Bugfix in
MeasureSurvCalibrationAlpha
- Patch for valgrind
TaskDens
now inherits fromTaskUnsupervised
which meanstarget
/truth
has been removed. No specification of atarget
column is required, instead a one-column matrix-like object or numeric vector should be passed to the taskbackend
and the density will be estimated for this column, or two columns and one set asweight
.- Fixed bug in
load_eruption
to fix name of data columns - Added calibration plot for comparing average predicted survival distribution to Kaplan-Meier to mlr3viz
- Removed unneccessary
pracma
dependency in learners - Fix in
PipeOpDistrCompositor
, previously base distribution was only using the first predicted distribution, now the baseline is taken by averaging over all predictions with uniform weights
- Default kernel for
LearnerDensityKDE
is nowEpan
to reduce imports - Minor internal patches for mlr3 0.6.0
- Bug fix in
MeasureSurvCalibrationBeta
now returnsNA
not error iflp
predict type not available
- Removed
PredictionRegr
causing masking issues with{mlr3}
- Bug fix in
PipeOpDistrCompositor
causing somecdf
predictions to be lost - Internal fixes for
mlr3pipelines
: public train and predict methods to private - Added four datasets and tasks:
grace
,actg
,gbcs
,whas
- Add
overwrite
tocrankcompositor
pipeop and pipeline - Bug fix in
surv.kaplan
crank
prediction
MeasureSurvCindex
added. Generalises all c-index measures with a fast C++ implementation- Akritas estimator added to
mlr3learners/mlr3learners.proba
- Added scoring rule
MeasureSurvSchmid
- Addd calibration measures
MeasureSurvCalibrationBeta
andMeasureSurvCalibrationAlpha
surv.brier
alias added forsurv.graf
response
parameter added toPipeOpCrankCompositor
andcrankcompositor
to now optionally fillresponse
predict type with same values ascrank
- Added
PipeOpProbregrCompostior
andcompose_probregr
for composition todistr
return type from (a) regression learner(s) predictingresponse
andse
- Added
PipeOpSurvAvg
andsurv_averager
pipeline for weighted model averaging of distr, lp, crank, and response predictions.
- The following measures are deprecated use
MeasureSurvCindex
instead with following parameters:MeasureSurvBeggC
, use defaults;MeasureSurvHarrellC
, use defaults;MeasureSurvUnoC
, useweight_meth = 'G/2'
;MeasureSurvGonenC
, useweight_method = 'GH'
MeasureSurvGrafSE
,MeasureSurvLoglossSE
,MeasureSurvIntLoglossSE
,MeasureSurvRMSESE
,MeasureSurvMSESE
, andMeasureSurvMAESE
all deprecated and will be deleted in v0.4.0. Usemsr("surv.graf", se = TRUE)
instead (for example).- Measures renamed such that
surv.nagelkR2
is nowsurv.nagelk_r2
, analogously for all R2, AUC, TPR, and TNR measures. Old constructors will be deleted in v0.4.0. - Renamed
distrcompose
andcrankcompose
todistr_compose
andcrank_compose
. Old ids will be deleted in v0.4.0.
- Measures renamed such that
surv.nagelkR2
is nowsurv.nagelk_r2
, analogously for all R2, AUC, TPR, and TNR measures. Old constructors will be deleted in v0.4.0. MeasureSurvGraf
andMeasureSurvIntLogloss
now have much faster C++ implementation
-
LearnerSurvGlmnet
,LearnerSurvCVGlmnet
,LearnerSurvXgboost
andLearnerSurvRanger
have been moved tomlr-org/mlr3learners
-
LearnerSurvGBM
has been moved to https://www.github.com/mlr3learners/mlr3learners.gbm -
LearnerSurvMboost
,LearnerSurvGlmBoost
,LearnerSurvGamboost
,LearnerSurvBlackboost
have been moved to https://www.github.com/mlr3learners/mlr3learners.mboost
- Early release due to backward compatibility error introduced by an upstream dependency
- Minor updates to
mboost
family of learners: addedgehan
family, fixed parameters forcindex
, added support for:weights
,response
predict type,importance
,selected_features
- Minor internal changes
- All density learners except
LearnerDensHist
andLearnerDensKDE
have been moved to themlr3learners org
- The following survival learners have been moved to the
mlr3learners org
, LearnerSurv:Flexible
,ObliqueRSF
,Penalized
,RandomForestSRC
- Bugfix in
LearnerSurvXgboost
previouslylp
was erroneously returned asexp(lp)
- Now licenced under LPGL-3
LearnerSurvParametric
andLearnerSurvNelson
moved tomlr3learners/mlr3learners.survival
repoLearnerSurvCoxboost
andLearnerSurvCVCoxboost
moved tomlr3learners/mlr3learners.coxboost
repoLearnerSurvSVM
moved tomlr3learners/mlr3learners.survivalsvm
repo- In the next release, all learners except for
LearnerSurvKaplan
,LearnerSurvCoxPH
, andLearnerDensHist
will be moved to themlr3learners
org - Minor internal changes
- Density estimation has now been added to mlr3proba, see
TaskDens
,LearnerDens
,PredictionDens
, andMeasureDens
. - Added
mlr_tasks_faithful
andmlr_tasks_precip
for density task examples - Added
mlr_task_generators_simdens
for generating density tasks - Added learners for density estimation, see
mlr3::mlr_learners$keys("^dens")
for the full list - In line with mlr3 0.1.7, public methods
train_internal
,predict_internal
,score_internal
are now private methods.train
,.predict
,.score
- Converted to roxygen2 R6 documentation
- Changed
lp
insurv.parametric
to include the intercept, which is in line withsurvival::survreg
. Nowexp(pred$lp)
is equal to the predicted survival time for AFTs - Moved
mboost
tosuggests
- Added
response
predict type, which predicts the time until event. Currently only supported for AFT models insurv.parametric
- Added measures for
response
predict type:MeasureSurvMAE, MeasureSurvMAESE, MeasureSurvMSE, MeasureSurvMSESE, MeasureSurvRMSE, MeasureSurvRMSESE
- Fixed error in r-patched-solaris
- Added
mode
option tocrankcompositor
- Fixes bug resulting from
R62S3
incompatibility
- Added
method
argument to integrated scores and added weighting by bin-width - Added notes to IGS documentation regarding default methods and comparison to other packages
- Added
method
toMeasureSurvIntegrated
constructor and fields - Fixed mistake in documentation of:
TaskSurv
,MeasureSurvUnoC
- Added missing
LearnerSurvRpart
parameterparms
andcost
- Fixed errors in r-patched-solaris and r-devel debian-clang
- Initial upload to CRAN.