Dynamic predictions for competing risks data can now be computed. An example is given in the Competing Risks vignette.
Function jm()
can now fit joint models with a
recurrent event process with or without a terminating event. The model
accommodates discontinuous risk intervals, and the time can be defined
in terms of the gap or calendar timescale. An example is given in the
Recurrent Events vignette.
Added the function tvBrier()
for calculating
time-varying Brier score for fitted joint models. Currently, only
right-censored data are supported.
Added the functions calibration_plot()
and
calibration_metrics()
for calculating time-varying
calibration plot and calibration metrics for fitted joint models.
Currently, only right-censored data are supported.
Added new section in the vignette for Dynamic Prediction (available on the website of the package) to showcase the use of the functions mentioned above.
Improved the plot method for dynamic predictions.
Several bug corrections.
Added a predict()
method for jm
objects
and a corresponding plot()
for objects of class
predict_jm
for calculating and displaying predictions from
joint models. Currently, only standard survival models are covered.
Future versions will include predictions from competing risks and
multi-state models.
Added the functions tvROC()
and tvAUC()
for calculating time-varying Receiver Operating Characteristic (ROC)
curves and the areas under the ROC curves for fitted joint models.
Currently, only right-censored data are supported.
Added a vignette (available on the website of the package) to explain how (dynamic) predictions are calculated in the package.
Added two vignettes (available on the website of the package) to showcase joint models with competing risks and joint models with non-Gaussian longitudinal outcomes.
Simplified syntax and additional options for specifying transformation functions of functional forms.
The slope()
function has gained two new arguments,
eps
and direction
. This allows calculating the
difference of the longitudinal profile over a user-specified
interval.
parallel::clusterSetRNGStream()
in
jm_fit()
for distributing the seed in the workers.floor()
in the C++ code.