remiod: Reference-based Multiple Imputation of Longitudinal Binary and Ordinal Outcomes with non-ignorable missingness

CRAN Status CRAN Downloads GPL-3.0 R build status

The package remiod provides functionality to perform controlled multiple imputation of binary and ordinal response in the Bayesian framework. Implemented are (generalized) linear regression models for binary data and cumulative logistic models / ordered probit models for ordered categorical data (Wang and Liu 2022). It is also possible to fit multiple models of mixed types simultaneously. Missing values in variables(if present) will be imputed automatically.

remiod has two algorithmic backend. One is JAGS, with which the function performs some preprocessing of the data and creates a JAGS model, which will then automatically be passed to JAGS with the help of the R package rjags. The another is based on the method proposed by Tang (Tang 2018).

Besides the main modelling functions, remiod also provides functions to summarize and visualize results.

Installation

remiod Can be from CRAN:

install.packages("remiod")

Or, it can be installed from GitHub:

# install.packages("remotes")
remotes::install_github("xsswang/remiod")

Main functions

remiod provides the following main functions:

remiod                      #processing data and implementing MCMC sampling
extract_MIdata              #extract imputed data sets
miAnalyze                   #Perform analyses using imputed data and pool results

Currently, methods remiod implements include missing at random (MAR), jump-to-reference (J2R), copy reference (CR), and delta adjustment (delta). For method = "delta", argument delta should follow to specify a numerical values used in delta adjustment. These methods can be requested through extract_MIdata(), and imputed datasets can be analyzed using miAnalyze().

Functions summary(), coef(), and mcmcplot() provide a summary of the posterior distribution under MAR and its visualization.

Minimal Example

data(schizow)

test = remiod(formula = y6 ~ tx + y0 + y1 + y3, data = schizow,
              trtvar = 'tx', algorithm = 'jags', method="MAR",
              ord_cov_dummy = FALSE, n.adapt = 10, n.chains = 1,
              n.iter = 100, thin = 2, warn = FALSE, seed = 1234)

extdt = extract_MIdata(object=test, method="J2R",mi.setting=NULL, M=10, minspace=2)
result = miAnalyze(y6 ~ y0 + tx, data = extdt, pool = TRUE)

Support

For any help with regards to using the package or if you find a bug please create a GitHub issue.

Reference

Erler, NS, D Rizopoulos, and EMEH Lesaffre. 2021. “JointAI: Joint Analysis and Imputation of Incomplete Data in R.” Journal of Statistical Software 100 (20): 1–56. https://doi.org/10.18637/jss.v100.i20.
Tang, Y. 2018. “Controlled Pattern Imputation for Sensitivity Analysis of Longitudinal Binary and Ordinal Outcomes with Nonignorable Dropout.” Statistics in Medicine 37 (9): 1467–81. https://doi.org/10.1002/sim.7583.
Wang, T, and Liu, Y. 2022. “Remiod: Reference-Based Controlled Multiple Imputation of Longitudinal Binary and Ordinal Outcomes with Non-Ignorable Missingness.” arXiv 2203.02771. https://arxiv.org/pdf/2203.02771.