joineRML
R package for fitting joint models to time-to-event data and multivariate longitudinal data
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
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
[](https://cran.r-project.org/package=joineRML)
[](https://ci.appveyor.com/project/graemeleehickey/joineRML)
[](https://CRAN.R-project.org/package=joineRML)
[](https://CRAN.R-project.org/package=joineRML)
[](http://depsy.org/package/r/joineRML)
[](https://doi.org/10.5281/zenodo.1158231)
[](https://github.com/graemeleehickey/joineRML/actions/workflows/R-CMD-check.yaml)
[](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).

# 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
- Website: www.glhickey.com
- Twitter: graemeleehickey
- Repositories: 27
- Profile: https://github.com/graemeleehickey
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
Top Committers
| Name | 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
- Homepage: https://github.com/graemeleehickey/joineRML
- Documentation: http://cran.r-project.org/web/packages/joineRML/joineRML.pdf
- License: GPL-3 | file LICENSE
-
Latest release: 0.4.7
published about 1 year ago
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