Changelog
Source:NEWS.md
mlr3proba 0.8.2
Breaking Changes
- Removed all competing risks support, we now have a separate package in the
mlr3universe for it, see mlr3cmprsk.
New Features
- Add
default_fallback() - Add
importance,weightsandselected_featuresproperties in Kaplan-Meier for compatibility with other survival learners when it is used as a fallback learner - The pipeops
PipeOpTaskSurvRegrPEMandPipeOpTaskSurvClassifDiscTimenow apply the data transformation on an internal validation task if it exists. This enables the use of e.gxgboostregression or classification learners withearly_stoppingon the corresponding pipelines.
Other
-
coxedpackage was removed from CRAN so now we install the latest working CRAN version (0.3.3) from GitHub - Renamed
.surv_return()tosurv_return()as it is exported and used by other packages (e.g.mlr3extralearners) - Update
mlr3tov1.2.0andmlr3misctov0.19.0
mlr3proba 0.8.1
- feat:
surv.loglossandsurv.rcllnow use linear interpolation of S(t) to calculate the density f(t) - fix:
surv.mae/surv.mse/surv.rmsescores returnNAwhen test set has only censored observations - fix: fix bug in msr(
surv.brier) that resulted in 0 division instead ofepsdivision (Infvalues are filtered out so this was kinda masking the inflation of ISBS) - refactor: remove
seargument from most of the scores (not practically used) - refactor: remove
methodargument from integrated survival scores (the previous default,method = 2, time-weighted integration, is now always used) -
BREACKING CHANGE: we removed all experimental
properscoring rules (andremove_obsargument). Scores yield the same results as before with the default optionproper = FALSE - refactor: all private functions start with
.now and are adequately (privately) documented. Code was refactored for clarity - refactor: all internal
Rcppmeasure functions - refine doc in lots of measures
mlr3proba 0.8.0
- Compatibility with
mlr3v1.0.0 (weights_learner) andmlr3pipelinesv0.8.0 - fix: allow cloning of measure objects
- fix:
as.data.table()forPredictionSurvobjects holds now one survival curve per observation as it should - refactor:
TaskSurvuses only right, left or interval censoring, simplified code a lot in the methods - feat: add
TaskCompRisksclass andas_task_cmprk()S3 methods (support for right-censored data only) - feat: New
PipeOps:PipeOpTaskSurvRegrPEM,PipeOpPredRegrPEM - feat: New pipeline (reduction method):
pipeline_survtoregr_pem
mlr3proba 0.7.4
- fix + update
MeasureSurv: survival measure labels are now printed and theobs_lossproperty is now supported - feat: add
na.rmparameter tomsr("surv.calib_index")to avoidNaNscores
mlr3proba 0.7.3
- feat: added new calibration measure =>
msr("surv.calib_index") - refactor + feat:
autoplot.PredictionSurv- The default
"calib"plot uses the survival matrix directly now which is faster -
"dcalib"has extra barplot + better documentation - Added new
type = "scalib"which constructs the smoothed calibration plots as in Austin et al. (2020) -
BREAKING CHANGE:
"preds"is now called"isd"(individual survival distribution).row_idscan now be used to filter the observations for which you draw the survival curves.
- The default
mlr3proba 0.7.2
- fix:
lrn("surv.coxph")is now trained withmodel=TRUEwhich fixes an issue with using observation weights stackoverflow link. - cleanup: remove
tsk("unemployment")and associated files - cleanup: remove unused references
mlr3proba 0.7.1
- cleanup: removed all
PipeOps and pipelines related to survival => regression reduction techniques (see #414) - fix:
$predict_typeofsurvtoclassif_disctimeandsurvtoclassif_IPCWwasprob(classification type) and notcrank(survival type) - fix: G(t) is not filtered when
t_max|p_maxis specified in scoring rules (didn’t influence evaluation at all) - docs: Clarified the use and impact of using
t_maxin scoring rules, added examples in scoring rules and AUC scores - feat: Added new argument
remove_obsin scoring rules to remove observations with observed timet > t_maxas 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.
mlr3proba 0.7.0
- Add
mlr3pipelinestoImportsand 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_lpfor AFTdistrcomposepipeop + respective pipeline
mlr3proba 0.6.9
- New
PipeOps:PipeOpTaskSurvClassifIPCW,PipeOpPredClassifSurvIPCW - New pipeline (reduction method):
pipeline_survtoclassif_IPCW - Improved the way Integrated Brier score handles the
timesargument 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
lifecyclebadge for 3 pipelines (survtoregr,distrcompositorandprobregr) - these are currently either not supported by literature or tested enough.
mlr3proba 0.6.8
-
Rcppcode optimizations - Fixed ERV scoring to comply with
mlr3dev version (no bugs before) - Skipping
survtoregrpipelines due to bugs (to be refactored in the future)
mlr3proba 0.6.7
- Deprecate
cranktodistrcomposition indistrcomposepipeop (only fromlp=>distrworks now) - Add
get_mortality()function (fromsurvivalmodels::surv_to_risk() - Add Rcpp function
assert_surv_matrix() - Update and simplify
crankcomposepipeop and respective pipeline (noresponseis created anymore) - Add
responsecompositorpipeline withrmstandmedian
mlr3proba 0.6.5
- Add support for discrete-time survival analysis
- New
PipeOps:PipeOpTaskSurvClassifDiscTime,PipeOpPredClassifSurvDiscTime - New pipeline (reduction method):
pipeline_survtoclassif_disctime
mlr3proba 0.6.4
- Add useR! 2024 tutorial
- Lots of refactoring, improving code quality, migration to testthat v3, etc. (thanks to @m-muecke)
mlr3proba 0.6.3
- Add new tasks from
survivalpackage: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
coxedpackage - Added new methods for
TaskSurv:cens_prop(),admin_cens_prop(),dep_cens_prop()andprop_haz()
mlr3proba 0.6.2
- Updates in
surv.cindexmeasure- added
p_max(same assurv.graf) - refactor
cutofftot_max
- added
mlr3proba 0.6.1
- Compatibility with upcoming ‘paradox’ release.
- Fix bug when applying
t_maxinsurv.grafand similar time-integrated scores.
mlr3proba 0.6.0
- Optimized
surv.loglossandcalib_alphameasures (bypassingdistr6) - Update/refine all measure docs (naming conventions from upcoming scoring rules paper) + doc templates
- fix very rare bugs in
calib_alpha,surv.loglossandsurv.graf(version with proper = FALSE)
mlr3proba 0.5.7
- Add
breslowfunction for estimating the cumulative baseline hazard of proportional hazard models - Add
PipeOpBreslowto wrap a survival learner and generatedistrpredictions fromlppredictions - Add option
breslowestimator option indistrcompositor
mlr3proba 0.5.6
- Add
extend_quantiletoautoplot.PredictionSurvfortype = "dcalib", which imputes NAs with the maximum observed survival time - Fixes default in
autoplot.PredictionSurv, now"calib" - Update
msr("surv.dcalib")default fortruncatetoInf
mlr3proba 0.5.5
- Add
$reverse()method toTaskSurv, which returns the same task but with 1-status. - Add
reverseparameter toTaskSurv$kaplan()method, which calculates Kaplan-Meier on the censoring distribution of the task (1-status).
mlr3proba 0.5.3
- Add support for learners that can predict multiple posterior distributions by using
distr6::Arrdist
mlr3proba 0.5.2
- Add
plot_probregrfor plotting probabilistic regression distribution predictions - Fix big bug in
surv.rcllcreating erroneous results as distributions were not being subsetted correctly
mlr3proba 0.5.0
- Possibly small breaking change, renamed
PipeOpProbregrCompositortoPipeOpProbregrand default distribution now"Uniform". - Renamed
probregrcompositorpipeline toprobregrand 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
mlr3proba 0.4.15
- Fix bug in
surv.cindexcaused when probability of censoring was 0. Addedepsparameter to control this.
mlr3proba 0.4.14
- Fix bug in converting distr6 distributions to matrices when creating
PredictionSurv - Fix bug in RCLL
mlr3proba 0.4.10
- Added
ERVparameter 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.
mlr3proba 0.4.9
CRAN release: 2022-04-25
- Fixed bug in surv.logloss causing IPCW weighting to not be applied correctly
mlr3proba 0.4.7
- Add right-censored log loss
- Fix bug in {rpart} where model was being discarded when set to be kept. Parameter
modelnow calledkeep_model.
mlr3proba 0.4.6
- Patch for upstream breakages
- Add
TaskSurv$kaplanmethod - {survivalmodels} now imported (previously suggested)
mlr3proba 0.4.5
- Improved reduction from survival matrix predictions to ranking predictions
- Fixed cindex bug when all predictions equal
- Fix for valgrind
mlr3proba 0.4.4
CRAN release: 2022-02-16
- Minor change to how distributions are created to better support improper distributions
- Fixed bug in
simsurvtask that made it impossible to predict the target
mlr3proba 0.4.3
CRAN release: 2022-01-22
- Massive speed-up in distrcompositor PipeOp/pipeline
- More informative error given if
$distrcalled for a learner that does not support this return type - Fix massive bottleneck in scoring rule measures
- Add Density coercions
as_task_densandas_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_maxandp_maxto Graf, Schmid and Integrated Log-loss as an alternative totimes.t_maxis equivalent totimes = seq(t_max)andp_maxis 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.
mlr3proba 0.4.1
CRAN release: 2021-09-07
- Remove
mlr3extralearnersfrom Suggests - Add
responsetoas_prediction_surv - Now exported a couple cpp functions and
assert_surv -
mlr3is now inDependsnotimports -
distrpredictions are now internally stored as matrices to significantly reduce prediction object sizes - Tasks now support strata property
mlr3proba 0.4.0
CRAN release: 2021-04-18
- Deprecated measures from 0.2.0 have now been deleted.
- IPCW measures such as
surv.graf,surv.schmid, andsurv.intloglossnow allow training data to be passed to the score function withtaskandtrain_setto 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.intloglossnow include a parameterproperto 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 = TRUEweights observations by event time. Theproper = TRUEmethod is strictly proper when censoring and survival times are independent and G is estimated on large enough data. Theproper = FALSEmethod is never proper. The default is currentlyproper = FALSEto enable backward compatibility, this will be changed toproper = TRUEin v0.6.0. - The
rm_censparameter insurv.loglosshas been deprecated in favour ofIPCW.rm_censwill be removed in v0.6.0. Ifrm_censorIPCWareTRUEthen censored observations are removed and the score is weighted by an estimate of the censoring distribution at individual event times. Otherwise ifrm_censandIPCWareFALSEthen no deletion or weighting takes place. TheIPCW = TRUEmethod is strictly proper when censoring and survival times are independent and G is estimated on large enough data. Theipcw = FALSEmethod is never proper. - Add
surv.dcalibfor the D-Calibration measure from Haider et al. (2020).
mlr3proba 0.3.2
CRAN release: 2021-03-15
- Patched bug causing
"interval2"task type not to work - Fixed bug causing pipelines not to function correctly in
$aggregate
mlr3proba 0.3.0
CRAN release: 2021-02-02
- Commonly used survival quantities have been added as active bindings to
TaskSurvincludingtimes(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 fromTaskSurvas this is covered by the other types - Default values have now been given to the
timeandeventarguments inTaskSurv -
PredictionDenscan now includedistrreturn type (equivalent tolearner$model)
mlr3proba 0.2.5
CRAN release: 2020-11-18
-
PipeOpCrankCompositorupdated to fix bottleneck in computation viamean. NowInforNAis replaced by0forresponseand imputed with the median forcrank - Bug in
distrpredict types fixed that lead to fitting degenerate distributions and returning incorrect values for mean survival time andcrank
mlr3proba 0.2.4
CRAN release: 2020-11-11
- CRITICAL BUG FIX -
compose_crankwas previously returning ranks with the reverse ordering so that higher ranks implied higher risk not lower.
mlr3proba 0.2.3
CRAN release: 2020-11-01
- 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
-
TaskDensnow inherits fromTaskUnsupervisedwhich meanstarget/truthhas been removed. No specification of atargetcolumn is required, instead a one-column matrix-like object or numeric vector should be passed to the taskbackendand the density will be estimated for this column, or two columns and one set asweight. - Fixed bug in
load_eruptionto fix name of data columns - Added calibration plot for comparing average predicted survival distribution to Kaplan-Meier to mlr3viz
- Removed unneccessary
pracmadependency 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
mlr3proba 0.2.2
CRAN release: 2020-09-23
- Default kernel for
LearnerDensityKDEis nowEpanto reduce imports - Minor internal patches for mlr3 0.6.0
- Bug fix in
MeasureSurvCalibrationBetanow returnsNAnot error iflppredict type not available
mlr3proba 0.2.1
CRAN release: 2020-08-28
- Removed
PredictionRegrcausing masking issues with mlr3 - Bug fix in
PipeOpDistrCompositorcausing somecdfpredictions to be lost - Internal fixes for
mlr3pipelines: public train and predict methods to private - Added four datasets and tasks:
grace,actg,gbcs,whas - Add
overwritetocrankcompositorpipeop and pipeline - Bug fix in
surv.kaplancrankprediction
mlr3proba 0.2.0
CRAN release: 2020-07-25
Added Functionality
-
MeasureSurvCindexadded. Generalises all c-index measures with a fast C++ implementation - Akritas estimator added to
mlr3learners/mlr3learners.proba - Added scoring rule
MeasureSurvSchmid - Addd calibration measures
MeasureSurvCalibrationBetaandMeasureSurvCalibrationAlpha -
surv.brieralias added forsurv.graf -
responseparameter added toPipeOpCrankCompositorandcrankcompositorto now optionally fillresponsepredict type with same values ascrank - Added
PipeOpProbregrCompostiorandcompose_probregrfor composition todistrreturn type from (a) regression learner(s) predictingresponseandse - Added
PipeOpSurvAvgandsurv_averagerpipeline for weighted model averaging of distr, lp, crank, and response predictions.
Deprecated Functionality
- The following measures are deprecated use
MeasureSurvCindexinstead with following parameters:MeasureSurvBeggC, use defaults;MeasureSurvHarrellC, use defaults;MeasureSurvUnoC, useweight_meth = 'G/2';MeasureSurvGonenC, useweight_method = 'GH' -
MeasureSurvGrafSE,MeasureSurvLoglossSE,MeasureSurvIntLoglossSE,MeasureSurvRMSESE,MeasureSurvMSESE, andMeasureSurvMAESEall deprecated and will be deleted in v0.4.0. Usemsr("surv.graf", se = TRUE)instead (for example). - Measures renamed such that
surv.nagelkR2is nowsurv.nagelk_r2, analogously for all R2, AUC, TPR, and TNR measures. Old constructors will be deleted in v0.4.0. - Renamed
distrcomposeandcrankcomposetodistr_composeandcrank_compose. Old ids will be deleted in v0.4.0.
Edited Functionality
- Measures renamed such that
surv.nagelkR2is nowsurv.nagelk_r2, analogously for all R2, AUC, TPR, and TNR measures. Old constructors will be deleted in v0.4.0. -
MeasureSurvGrafandMeasureSurvIntLoglossnow have much faster C++ implementation
Moved Functionality
LearnerSurvGlmnet,LearnerSurvCVGlmnet,LearnerSurvXgboostandLearnerSurvRangerhave been moved tomlr-org/mlr3learnersLearnerSurvGBMhas been moved to https://www.github.com/mlr3learners/mlr3learners.gbmLearnerSurvMboost,LearnerSurvGlmBoost,LearnerSurvGamboost,LearnerSurvBlackboosthave been moved to https://www.github.com/mlr3learners/mlr3learners.mboost
mlr3proba 0.1.6
CRAN release: 2020-06-05
- Early release due to backward compatibility error introduced by an upstream dependency
- Minor updates to
mboostfamily of learners: addedgehanfamily, fixed parameters forcindex, added support for:weights,responsepredict type,importance,selected_features - Minor internal changes
- All density learners except
LearnerDensHistandLearnerDensKDEhave been moved to themlr3learners org - The following survival learners have been moved to the
mlr3learners org, LearnerSurv:Flexible,ObliqueRSF,Penalized,RandomForestSRC - Bugfix in
LearnerSurvXgboostpreviouslylpwas erroneously returned asexp(lp) - Now licenced under LPGL-3
mlr3proba 0.1.5
CRAN release: 2020-04-16
-
LearnerSurvParametricandLearnerSurvNelsonmoved tomlr3learners/mlr3learners.survivalrepo -
LearnerSurvCoxboostandLearnerSurvCVCoxboostmoved tomlr3learners/mlr3learners.coxboostrepo -
LearnerSurvSVMmoved tomlr3learners/mlr3learners.survivalsvmrepo - In the next release, all learners except for
LearnerSurvKaplan,LearnerSurvCoxPH, andLearnerDensHistwill be moved to themlr3learnersorg - Minor internal changes
mlr3proba 0.1.4
CRAN release: 2020-03-20
- Density estimation has now been added to mlr3proba, see
TaskDens,LearnerDens,PredictionDens, andMeasureDens. - Added
mlr_tasks_faithfulandmlr_tasks_precipfor density task examples - Added
mlr_task_generators_simdensfor 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_internalare now private methods.train,.predict,.score - Converted to roxygen2 R6 documentation
mlr3proba 0.1.3
CRAN release: 2020-02-20
- Changed
lpinsurv.parametricto include the intercept, which is in line withsurvival::survreg. Nowexp(pred$lp)is equal to the predicted survival time for AFTs - Moved
mboosttosuggests - Added
responsepredict type, which predicts the time until event. Currently only supported for AFT models insurv.parametric - Added measures for
responsepredict type:MeasureSurvMAE, MeasureSurvMAESE, MeasureSurvMSE, MeasureSurvMSESE, MeasureSurvRMSE, MeasureSurvRMSESE
mlr3proba 0.1.2
CRAN release: 2020-01-31
- Fixed error in r-patched-solaris
- Added
modeoption tocrankcompositor - Fixes bug resulting from
R62S3incompatibility
mlr3proba 0.1.1
CRAN release: 2020-01-08
- Added
methodargument to integrated scores and added weighting by bin-width - Added notes to IGS documentation regarding default methods and comparison to other packages
- Added
methodtoMeasureSurvIntegratedconstructor and fields - Fixed mistake in documentation of:
TaskSurv,MeasureSurvUnoC - Added missing
LearnerSurvRpartparameterparmsandcost - Fixed errors in r-patched-solaris and r-devel debian-clang