Changelog
Source:NEWS.md
joineRML 0.4.8
Bug fixes
bootSE()parallel branch condition wasncores >= 1L(alwaysTRUE), making the serial code path with the progress bar unreachable. Corrected toncores > 1L.mjoint()now correctly throttles the number of threads used byRcppArmadilloduring the MCEM algorithm viaarmadillo_throttle_cores()(restored on exit).simData()now usesdrop = FALSEwhen subsetting the random effects matrices in the Gompertz (model = "intslope") survival-time calculation, preventing a latent dimension-dropping error when only a single subject remains in the branch.Internal initial-value calculation for the survival sub-model (
initsSurv()) no longer relies on a leaked loop variable when indexingtimeVar; it now uses the (outcome-invariant) first time variable explicitly in the balanced-data case.
Minor improvements
plot.ranef.mjoint()now usesgeom_errorbar(orientation = "y")instead of the deprecatedgeom_errorbarh(), eliminating ggplot2 4.0 deprecation warnings.simData()now reports the simulated event rate viamessage()rather thancat(), so output can be suppressed withsuppressMessages().vcov.mjoint()now warns when it falls back to the Moore-Penrose pseudo-inverse, as the approximate standard errors may be unreliable in that case.Fixed documentation typos: “left hand-hand side” in
mjoint(), “comprised on” in the package description, and “The choice os” indynSurv()anddynLong().
joineRML 0.4.7
CRAN release: 2025-02-04
Housekeeping
Updated README: badges and MRC logo.
Removed CXX11 requirement from Makevars files.
Update
plot.ranef.mjoint()function due to deprecatedaes_string()call.Fixed deprecated documentation for
joineRML.R.Updated broken links in
plot.ranef.mjoint.Randvcov.mjoint.R.Updated GitHub actions workflows.
Ran reverse dependency checks using
revdepcheckpackage.Updated CITATION file due to deprecated function and typo.
Wrapped a bunch of examples from being run on CRAN submission to avoid Debian system NOTE.
Reduced computational time for vignettes to to try and avoid Debian system NOTE on CRAN submission.
Add R-hub workflow to enable checks for platforms not covered already.
Imported
RcppArmadillofunctionsarmadillo_throttle_coresandarmadillo_reset_coresto try and prevent CRAN R CMD checks using multiple threads.
joineRML 0.4.6
CRAN release: 2023-01-20
Housekeeping
Package SUGGESTS are now conditional in the vignettes per CRAN requirement.
mjoint()now returns the inputinitsand the interim calculated initial values calculated for the EM algorithm step:inits.longandinits.surv. Requested by James Murray.Updated Makevars and Makevars.win due to compilation issues.
joineRML 0.4.4
CRAN release: 2020-04-09
Housekeeping
Added @ellessenne as package author.
Updates to DESCRIPTION.
Documentation updates.
joineRML 0.4.1
CRAN release: 2018-01-21
New features
Added smoothed predicted survival curves to the
plot.dynSuv(). Smoothing is based on the constrained B-splines method.dynSurv()now includes an argument to specify a horizon time from the last known observation time.simData()now includes an argument to choose multivariate t-distributed random effects with varying degrees of freedom, thus allowing for sensitivity analyses of heavier tail distributions.
joineRML 0.4.0
CRAN release: 2017-11-11
New features
The MCEM algorithm can be implemented with vanilla Monte Carlo and quasi-Monte Carlo (using either the scrambled Sobol sequence or the Halton sequence). This is implemented through the
typeargument passed to the list ofcontrolparameters inmjoint().bootSE()now has option to use parallel computing via theforeachpackage.
Bug patches
Fixed some small errors in the
epileptic.qoldataset.Fixed situation where a tibble might be given as the dataset (#55 @ellessenne).
Catches errors in bootstrap due to “bad” data and automatically restarts the bootstrap (#57 @ellessenne)
Housekeeping
Added hex sticker badge.
Moved the make files and raw data for
qolandrenaldatasets into the~/data-raw/directory.Added @ellessenne as package contributor for testing and bug corrections (PRs #55 and #57).
joineRML 0.3.0
CRAN release: 2017-07-23
New features
Added new functions
dynSurv()anddynLong(), which generates survival probabilities and expected longitudinal predictions, respectively, for a new subject conditional on their last measurement time and longitudinal history. Prediction can be implemented using either a first order approximation or a Monte Carlo simulation approach.Added an associated
print()method fordynSurvanddynLongobjects.Added an associated
plot()method fordynSurvanddynLongobjects.Added a function
baseHaz()for extracting the centered and uncentered estimates of the baseline hazard function.print()andsummary()now report the total computation time in addition to just the EM algorithm time. This was deemed useful after some examples showed that the time to get initial values was more expensive than the time for the MCEM algorithm to converge.
Bug patches
Fixed a bug that prevented models being fitted with no covariates in the survival sub-model, i.e.
Surv() ~ 1.Correction to the vignette description of
mjoint()arguments.Removed
enumintempackage for Sweave vignette to satisfy CRAN checks on macOS (release).
joineRML 0.2.2
CRAN release: 2017-05-01
- This update is an attempt to overcome a FAIL status on the CRAN checks for macOS.
Housekeeping
Changed the technical vignette to Rnw (with engine = Sweave) from ltx (with engine = R.rsp) in attempt to remove some CMD check warnings.
Shortened the vignette to make it compile quicker (removed execution of bootstrapping).
Lots of tweaks of minor formatting tweaks in the documentation.
joineRML 0.2.1
CRAN release: 2017-04-25
Bug patches
Fixed a bug that prevented factors with >2 levels being included in the time-to-event sub-model.
Fixed package registration, which strangely broke on R 3.4.0 for OSX platform.
Housekeeping
joineRMLversion 0.2.1 will depend on R version >=3.3.0 to remedy issue withsigma.mjoint()S3 issue.Added a new badge to the README.
joineRML 0.2.0
CRAN release: 2017-03-27
New features
Add
residual()andfitted()functions formjointobjects.Added a plot function –
plot.ranef.mjoint()– forranef.mjointobjects.bootSE()now uses control parameters from fitted model and allows for individual parameter overwrite.Added a check that any initial covariance matrix given is positive-definite.
Added a check that dimensions of any
initsgiven match the calculated dimensions from the model formulae.Added a check that if multiple repeated longitudinal outcomes were given, that each subject contributes at least one measurement per outcome.
Changed the API so that
postREandapprox.searguments are now replaced by a singlepfsargument, which stands for post fit statistics. IfTRUE, then both the approximate SEs and the BLUPs (and SEs) are calculated and returned. This change is to facilitate other post fit statistics, e.g. residuals.sampleData()now allows for sampling without replacement.plot()andplotConvergence()now have the option to discard burn-in phase iterations from the MCEM algorithm.plot()andplotConvergence()now plot the log-likelihood trace.vcov()now calculates the variance-covariance matrix rather than insidemjoint()and then extracting it. It also utilises the QR-decomposition inverse function and the Moore-Penrose matrix inverse, as in some cases the matrix was nearly singular.hessian()(and thereforevcov()) now calculate the contribution for the random effect variance terms rather than the random effect precision (1 divided by the variance) terms. The correct contribution to the score for off-diagonal terms is now also impleted.The left-hand side of the
formLongFixednow handles transformations.
Bug patches
vcov()now returns the variance-covariance matrix as intended. Previously it was only returning the profile empirical information matrix.Patched a major bug in
gammaUpdate()where ties in failure times were not being properly handled. The code forgammaUpdate_approx()always worked fine, as it was based only on the score vector. This bug manifested whenbootSE()was called due to the resampling with replacement yielding datasets with many more ties than in the original dataset used to fit the model. To fix it, the information matrix required scaling at each failure time by the number of failures in the data. The formula for the information matrix in the Technical Details vignette has also been updated.Patched a minor bug with prevented univariate random-intercept models for being fitted.
Patched a minor bug in plotting convergence traces.
Patched a minor bug with bootstrapping univariate joint models without passing the MLEs as the initial values to the
mjoint()call.
Housekeeping
Renamed
approxSE()function tohessian().Renamed
controlargumentearlyPhasetoburnin.Default settings for
controlparameters updated based on practical experience.Package now
Dependsonsurvivalandnlmerather thanImportsto allowrequire()statements to be removed from code.Prevented
roxygenfrom exporting all functions.Fixed Imports following CRAN Checks of v0.1.1.
Minor documentation edits and corrections.
Minor code tidy-up with slight speed-ups and stabilisations where found.
LICENSE upgraded to GPL-3 to be compatible with
joineRv1.1.0.Removed internal function
fast_nearPD()from package code as was unused.Removed internal function
EexpArma()from package code as was unused.Added unit tests.
Registered native C++ routines and disabled symbol search to satisfy CRAN CMD checks.