missingHE
is a R
package aimed at providing some useful tools to analysts in order to handle missing outcome data under a Full Bayesian framework in economic evaluations. The package relies on the R
package R2jags
to implement Bayesian methods via the statistical software JAGS
. The package allows to obtain inferences using Markov Chain Monte Carlo (MCMC) methods under a range of modelling approaches and missing data assumptions. The package also contains functions specifically defined to assess model fit and possible issues in model convergence as well as to summarise the main results from the economic analysis.
Missing data are iteratively imputed using data augmentation methods according to the type of model, distribution and missingness assumptions specified by the user using different arguments in the functions of the package. The posterior distribution of the main quantities of interest (e.g. some suitable measures of costs and clinical benefits) is then summarised to assess the costeffectiveness of a new intervention ($t=2$) against a standard intervention ($t=1$).
missingHE
produces plots which compares the observed and imputed values for both cost and benefit measures in each treatment intervention considered to detect possible concerns about the plausibility of the imputation methods. In addition, the output of missingHE
cab be analysed using different funtions in the R
package BCEA
which produces a synthesis of the decision process given the current evidence and uncertainty, as well as several indicators that can be used to perform Probabilistic Sensitivity Analysis to parameter and model uncertainty.
Example
library(missingHE)
model.sel < selection(data = MenSS, model.eff = e ~ u.0, model.cost = c ~ e, model.me = me ~ 1, model.mc = mc ~ 1,
type = "MAR", n.chains = 2, n.iter = 10000, n.burnin = 1000, dist_e = "norm", dist_c = "norm")
summary(model.sel)
Costeffectiveness analysis summary
Comparator intervention: intervention 1
Reference intervention: intervention 2
Parameter estimates under MAR assumption
Comparator intervention
mean sd LB UB
mean.effects 0.874 0.017 0.846 0.901
mean.costs 238.34 52.432 153.541 325.355
Reference intervention
mean sd LB UB
mean.effects.1 0.917 0.022 0.881 0.953
mean.costs.1 186.825 41.26 119.672 254.125
Incremental results
mean sd LB UB
delta.effects 0.043 0.028 0.003 0.089
delta.costs 51.514 67.025 162.862 58.327
ICER 1198.431
News and updates about missingHE
 From 25/09/2019, the updated version (1.2.1) of
missingHE
has become available on CRAN, which allows to perform posterior predictive checks for each type of model as a further way to assess the fit of the model to the observed data.
The checks can be done by first setting the optional argument ppc = TRUE
when fitting the model using one of the main function of the package. For example, when using selection
to fit selection models you would have something like this:
model.sel < selection(data = data, model.eff = e ~ age, model.cost = c ~ age + e, model.me = me ~ age, model.mc = mc ~ age,
dist_e = "norm", dist_c = "gamma", type = "MAR", n.iter = 10000, ppc = TRUE)
Then you can use the function ppc
to perform different types of posterior predictive checks that you can choose among a set of prespecified types using the type
argument. For example, if we want to compare histograms of the empirical and predictive distributions of the effectiveness variable in one arm (e.g. control), then we can type
ppc(model.sel, type = "histogram", outcome = "effects_arm1")
and we get something like this
 From 07/01/2020, the updated version (1.3.2) of
missingHE
has become available on CRAN, which allows to choose among more distributions for the effectiveness measures, including continuous (Gamma, Weibull, Exponential, Logistic), discrete (Poisson, Negative Binomial) and binary (Bernoulli) health outcomes.
For example, we can choose to specify a selection model assuming a Bernoulli distribution for the effects (if this is a binary outcome) and a LogNormak distribution for the costs
model.sel < selection(data = data, model.eff = e ~ age, model.cost = c ~ age + e, model.me = me ~ 1, model.mc = mc ~ 1,
dist_e = "bern", dist_c = "lnorm", type = "MAR")
 From 30/04/2020, the updated version (1.4.0) of
missingHE
has become available on CRAN, which allows to perform fit random effects for each type of model implemented. The random terms can be specified using the following notation
model.sel < selection(data = data, model.eff = e ~ age + (age  site), model.cost = c ~ age + e + (age + e  site),
model.me = me ~ age + (1  site), model.mc = mc ~ age + (0 + age  site),
dist_e = "norm", dist_c = "gamma", type = "MAR", n.iter = 10000, ppc = TRUE)
I borrowed this notation, alongside with a couple of internal functions, from the lme4
package. The terms inside the brackets on the left of the bar are the terms for which the random effects are assumed (these must also be included as fixed effects). The term on the right of the bar is the clustering variable over which the random effects are specified.
For example the formula + (age  site)
specifies random effects for the intercept and age
across the values of the site
variable. It aslo possible to specify random slope only models (i.e. remove the random intercept) by adding the term 0 +
inside the brackets on the left of the bar.
All functions in the package have been updated to take into account the possibility that random effects are specified and to perform diagnostic and posterior predictive checks based on the random effects if these are included. In addition, a new generic function called coef
is now available to extract the fixed or random effect terms from the effectiveness and cost models for each type of model in missingHE
. For example, we can extract summary statistics for the fixed effects from the fitted selection model by using the command
coef(model.sel, random = FALSE)
which prints something like this
$Comparator
$Comparator$Effects
mean sd lower upper
(Intercept) 4.520 2.128 1.694 7.584
age 0.059 0.011 0.081 0.037
$Comparator$Costs
mean sd lower upper
(Intercept) 553.614 576.375 412.631 2118.222
age 9.534 32.682 75.701 50.304
e 934.280 428.726 1749.524 85.378
$Reference
$Reference$Effects
mean sd lower upper
(Intercept) 1.294 2.381 4.411 2.091
age 0.032 0.100 0.094 0.155
$Reference$Costs
mean sd lower upper
(Intercept) 273.504 387.796 349.418 1047.288
age 9.138 36.223 78.510 56.514
e 264.332 421.044 1094.129 571.148
If we set random = TRUE
, then summary statistics for the random effects terms are printed.

From 10/06/2020 a new version (1.4.1) of
missingHE
is available to download from my GitHub page, which includes three vignettes providing some tutorials on how to use the functions of the package. Each vignette is specifically designed to help different types of users:
The first vignette is named Introduction_to_missingHE and is designed to provide some introductory summary about the use of the functions of the package based on the default settings, what the user needs to specify and how to interpret and extract the results. See the pdf

The second vignette is named Fitting_MNAR_models_in_missingHE and is deisgned to help those who would like to explore MNAR assumptions and how this can be done within each main function of the package. See the pdf

The third vinette is named Model_customisation_in_missingHE and is designed for those who are already familiar with the package but who would like to customise the functions in a more flexile way, for example by including random effects, using different priors or modelling assumptions. See the pdf

Soon, this version will also be uploaded on CRAN as well. In the meantime, the pdf files of these vignettes can be accessed from my website.
Installation
There are two ways of installing missingHE
. A stable version (currently 1.4.0) is packaged and available from CRAN. You can simply type on your R
terminal
install.packages("missingHE")
The second way involves using the development version of missingHE
, which is available from GitHub  this will usually be updated more frequently and may be continuously tested. On Windows machines, you need to install a few dependencies, including Rtools first, e.g. by running
pkgs < c("R2jags","ggplot2","gridExtra","BCEA","ggmcmc","loo","Rtools","devtools", "utils")
repos < c("https://cran.rstudio.com")
install.packages(pkgs,repos=repos,dependencies = "Depends")
before installing the package using devtools
:
devtools::install_github("AnGabrio/missingHE", build_vignettes = TRUE)
The optional argument build_vignettes = TRUE
allows to install the vignettes of the package locally on your computer. These consist in brief tutorials to guid the user on how to use and customise the models in missingHE using different functions of the package. Once the package is installed, they can be accessed by using the command
utils::browseVignettes(package = "missingHE")
All models implemented in missingHE are written in the BUGS
language using the software JAGS
, which needs to be installed from its own repository and instructions for installations under different OS can be found online. Once installed, the software is called in missingHE via the R
package R2jags
. Note that the missingHE package is currently under active development and therefore it is advisable to reinstall the package directly from GitHub before each use to ensure that you are using the most updated version.