joineRML

R package for fitting joint models to time-to-event data and multivariate longitudinal data

https://github.com/graemeleehickey/joinerml

Science Score: 33.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
  • .zenodo.json file
  • DOI references
    Found 3 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Committers with academic emails
    2 of 7 committers (28.6%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (18.3%) to scientific vocabulary

Keywords

armadillo biostatistics clinical-trials cox dynamic joint-models longitudinal-data multivariate-analysis multivariate-data multivariate-longitudinal-data prediction r-package rcpp regression-models statistics survival
Last synced: 6 months ago · JSON representation

Repository

R package for fitting joint models to time-to-event data and multivariate longitudinal data

Basic Info
  • Host: GitHub
  • Owner: graemeleehickey
  • License: gpl-3.0
  • Language: R
  • Default Branch: master
  • Homepage:
  • Size: 8.99 MB
Statistics
  • Stars: 31
  • Watchers: 5
  • Forks: 13
  • Open Issues: 7
  • Releases: 0
Topics
armadillo biostatistics clinical-trials cox dynamic joint-models longitudinal-data multivariate-analysis multivariate-data multivariate-longitudinal-data prediction r-package rcpp regression-models statistics survival
Created over 9 years ago · Last pushed about 1 year ago
Metadata Files
Readme License

README.Rmd

---
output: github_document
---



```{r, echo = FALSE}
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>",
  fig.path = "README-"
)
```

# joineRML 

[![CRAN_Status_Badge](https://www.r-pkg.org/badges/version-last-release/joineRML)](https://cran.r-project.org/package=joineRML)
[![AppVeyor Build Status](https://ci.appveyor.com/api/projects/status/github/graemeleehickey/joineRML?branch=master&svg=true)](https://ci.appveyor.com/project/graemeleehickey/joineRML)

[![](http://cranlogs.r-pkg.org/badges/joineRML)](https://CRAN.R-project.org/package=joineRML)
[![](https://cranlogs.r-pkg.org/badges/grand-total/joineRML)](https://CRAN.R-project.org/package=joineRML)
[![Research software impact](http://depsy.org/api/package/cran/joineRML/badge.svg)](http://depsy.org/package/r/joineRML)
[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.1158231.svg)](https://doi.org/10.5281/zenodo.1158231)
[![R-CMD-check](https://github.com/graemeleehickey/joineRML/actions/workflows/R-CMD-check.yaml/badge.svg)](https://github.com/graemeleehickey/joineRML/actions/workflows/R-CMD-check.yaml)
[![Codecov test coverage](https://codecov.io/gh/graemeleehickey/joineRML/graph/badge.svg)](https://app.codecov.io/gh/graemeleehickey/joineRML)


`joineRML` is an extension of the joineR package for fitting joint models of time-to-event data and multivariate longitudinal data. The model fitted in joineRML is an extension of the Wulfsohn and Tsiatis (1997) and Henderson et al. (2000) models, which is comprised of $(K+1)$-sub-models: a Cox proportional hazards regression model (Cox, 1972) and a $K$-variate linear mixed-effects model - a direct extension of the Laird and Ware (1982) regression model. The model is fitted using a Monte Carlo Expectation-Maximization (MCEM) algorithm, which closely follows the methodology presented by Lin et al. (2002).

## Why use joineRML?

As noted in Hickey et al. (2016), there is a lack of statistical software available for fitting joint models to multivariate longitudinal data. This is contrary to a growing methodology in the statistical literature. `joineRML` is intended to fill this void.

# Example

The main workhorse function is `mjoint`. As a simple example, we use the `heart.valve` dataset from the package and fit a bivariate joint model.

```{r, eval = FALSE}
library(joineRML)
data(heart.valve)
hvd <- heart.valve[!is.na(heart.valve$log.grad) & !is.na(heart.valve$log.lvmi), ]

set.seed(12345)
fit <- mjoint(
    formLongFixed = list("grad" = log.grad ~ time + sex + hs,
                         "lvmi" = log.lvmi ~ time + sex),
    formLongRandom = list("grad" = ~ 1 | num,
                          "lvmi" = ~ time | num),
    formSurv = Surv(fuyrs, status) ~ age,
    data = list(hvd, hvd),
    timeVar = "time")
```

The fitted model is assigned to `fit`. We can apply a number of functions to this object, e.g. `coef`, `logLik`, `plot`, `print`, `ranef`, `fixef`, `summary`, `AIC`, `getVarCov`, `vcov`, `confint`, `sigma`, `update`, `formula`, `resid`, and `fitted`. In addition, several special functions have been added, including `dynSurv`, `dynLong`, and `baseHaz`, as well as plotting functions for objects inheriting from the `dynSurv`, `dynLong`, `ranef`, and `mjoint` functions. For example,

```{r, eval = FALSE}
summary(fit)
plot(fit, param = 'gamma')
```

`mjoint` automatically estimates approximate standard errors using the empirical information matrix (Lin et al., 2002), but the `bootSE` function can be used as an alternative.

# Errors and updates

If you spot any errors or wish to see a new feature added, please file an issue at https://github.com/graemeleehickey/joineRML/issues or email [Graeme Hickey](mailto:graeme.hickey@liverpool.ac.uk).

# Further learning

For an overview of the model estimation being performed, please see the technical vignette, which can be accessed by

```{r, eval = FALSE}
vignette('technical', package = 'joineRML')
```

For a demonstration of the package, please see the introductory vignette, which can be accessed by

```{r, eval = FALSE}
vignette('joineRML', package = 'joineRML')
```

# Funding

This project is funded by the [Medical Research Council](https://mrc.ukri.org) (Grant number MR/M013227/1).

![](https://www.ukri.org/wp-content/themes/ukri/assets/img/ukri-mrc-standard-logo.png)

# Using the latest developmental version

To install the latest **developmental version**, you will need R version (version 3.3.0 or higher) and some additional software depending on what platform you are using.

## Windows

If not already installed, you will need to install [Rtools](https://cran.r-project.org/bin/windows/Rtools/). Choose the version that corresponds to the version of R that you are using.

## Mac OSX

If not already installed, you will need to install Xcode Command Line Tools. To do this, open a new terminal and run

```bash
$ xcode-select --install
```

## From R

The latest developmental version will not yet be available on CRAN. Therefore, to install it, you will need `devtools`. You can check you are using the correct version by running

Once the prerequisite software is installed, you can install `joineRML` by running the following command in an R console

```r
library('devtools')
install_github('graemeleehickey/joineRML')
```

# Compatibility with [`broom`](https://github.com/tidymodels/broom/)

Tidiers methods for objects of class `mjoint` (i.e. models fit with `joineRML`) are included in the [`broom`](https://github.com/tidymodels/broom/) package; this provides methods that allow extracting model estimates, predictions, and comparing models in a straightforward way.

See `vignette(topic = "joineRML-broom", package = "joineRML")` for further details and examples.

# References

1. Cox DR. Regression models and life-tables. *J R Stat Soc Ser B Stat Methodol.* 1972; **34(2)**: 187-220.

2. Henderson R, Diggle PJ, Dobson A. Joint modelling of longitudinal measurements and event time data. *Biostatistics.* 2000; **1(4)**: 465-480.

3. Hickey GL, Philipson P, Jorgensen A, Kolamunnage-Dona R. Joint modelling of time-to-event and multivariate longitudinal outcomes: recent developments and issues. *BMC Med Res Methodol.* 2016; **16(1)**: 117.

4. Laird NM, Ware JH. Random-effects models for longitudinal data. *Biometrics.* 1982; **38(4)**: 963-974.

5. Lin H, McCulloch CE, Mayne ST. Maximum likelihood estimation in the joint analysis of time-to-event and multiple longitudinal variables. *Stat Med.* 2002; **21**: 2369-2382.

6. Wulfsohn MS, Tsiatis AA. A joint model for survival and longitudinal data measured with error. *Biometrics.* 1997; **53(1)**: 330-339.

Owner

  • Name: Graeme Hickey
  • Login: graemeleehickey
  • Kind: user
  • Location: Liverpool
  • Company: Medtronic

Senior Director of Statistics | Medtronic Structural Heart & Aortic

GitHub Events

Total
  • Watch event: 1
  • Push event: 29
  • Fork event: 2
Last Year
  • Watch event: 1
  • Push event: 29
  • Fork event: 2

Committers

Last synced: about 2 years ago

All Time
  • Total Commits: 405
  • Total Committers: 7
  • Avg Commits per committer: 57.857
  • Development Distribution Score (DDS): 0.089
Past Year
  • Commits: 4
  • Committers: 1
  • Avg Commits per committer: 4.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Graeme Hickey g****y@g****m 369
Alessandro Gasparini a****i@k****e 11
Alessandro Gasparini e****e@g****m 8
Pete Philipson p****n@n****k 7
Alessandro Gasparini a****5@l****k 6
Graeme Hickey g****y@b****m 3
Graeme Hickey g****y@G****l 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 69
  • Total pull requests: 8
  • Average time to close issues: about 2 months
  • Average time to close pull requests: 6 months
  • Total issue authors: 9
  • Total pull request authors: 2
  • Average comments per issue: 0.64
  • Average comments per pull request: 1.0
  • Merged pull requests: 7
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • graemeleehickey (57)
  • ellessenne (3)
  • pradeepvirdee (3)
  • taryue (1)
  • frbrz (1)
  • zh-zhang1984 (1)
  • navisasadat (1)
  • yhuang123 (1)
  • alexpghayes (1)
Pull Request Authors
  • ellessenne (6)
  • graemeleehickey (2)
Top Labels
Issue Labels
enhancement (36) bug (12) help wanted (1) wontfix (1)
Pull Request Labels
enhancement (1)

Packages

  • Total packages: 1
  • Total downloads:
    • cran 5,274 last-month
  • Total docker downloads: 22,430
  • Total dependent packages: 3
  • Total dependent repositories: 22
  • Total versions: 14
  • Total maintainers: 1
cran.r-project.org: joineRML

Joint Modelling of Multivariate Longitudinal Data and Time-to-Event Outcomes

  • Versions: 14
  • Dependent Packages: 3
  • Dependent Repositories: 22
  • Downloads: 5,274 Last month
  • Docker Downloads: 22,430
Rankings
Dependent repos count: 5.8%
Forks count: 6.3%
Average: 9.1%
Downloads: 9.6%
Stargazers count: 9.7%
Dependent packages count: 10.9%
Docker downloads count: 12.5%
Maintainers (1)
Last synced: 6 months ago

Dependencies

DESCRIPTION cran
  • R >= 3.6.0 depends
  • nlme * depends
  • survival * depends
  • MASS * imports
  • Matrix * imports
  • Rcpp >= 0.12.7 imports
  • cobs * imports
  • doParallel * imports
  • foreach * imports
  • generics * imports
  • ggplot2 * imports
  • graphics * imports
  • lme4 >= 1.1 imports
  • mvtnorm * imports
  • parallel * imports
  • randtoolbox * imports
  • stats * imports
  • tibble * imports
  • utils * imports
  • JM * suggests
  • bindrcpp * suggests
  • dplyr * suggests
  • joineR * suggests
  • knitr * suggests
  • rmarkdown * suggests
  • testthat * suggests
.github/workflows/check-standard.yaml actions
  • actions/cache v2 composite
  • actions/checkout v2 composite
  • actions/checkout master composite
  • actions/upload-artifact main composite
  • r-lib/actions/setup-pandoc v1 composite
  • r-lib/actions/setup-r v1 composite
  • r-lib/actions/setup-tinytex v1 composite
.github/workflows/test-coverage.yaml actions
  • actions/cache v2 composite
  • actions/checkout v2 composite
  • r-lib/actions/setup-pandoc v1 composite
  • r-lib/actions/setup-r v1 composite