*! cemimix version 1.0 19Dec2019
help cemimix

Title

cemimix -- Reference-based multiple imputation of continuous
cost and effectiveness data in clinical trials

Syntax

cemimix, effectv(varlist) costv(varlist) treatv(varname) [options]

* effectv(varlist) Effectiveness variables

* costv(varlist) Cost variables

* treatv(varname) Numeric variable identifying the trial arms

emethod(string) Imputation method for the effectiveness variables

cmethod(string) Imputation method for the cost variables

refgroup(string) Reference group, for CIR and J2R imputation

covariates(varlist) Additional baseline variables used
in the imputation model

interim_mar(string) Impute interim-missing data under MAR

restrictto(string) Restrict reference-based imputation to
a subgroup, other individuals imputed under MAR

idv(varname) Variable identifying individuals

m(#) Number of imputations; default is m(5)

burnbetween(#) Number of iterations between imputations
in the Markov Chain Monte Carlo (MCMC) procedure

burnin(#) Number of iterations for the burn-in period
in the MCMC procedure

rseed(#) Set random-number seed

saving(filename[, replace]) Save
imputed dataset

restore Restore original dataset

* treatv() is required. Either effectv() or costv() is
required.

Description

cemimix imputes missing cost-effectiveness data following
a reference-based multiple imputation approach.
It follows the method described in
Leurent et al. (2020), based on the work by
Carpenter, Roger, and Kenward (2013).

It allows for various missing data assumptions, including 'Missing at random'
(MAR, the default), 'Jump to reference' (J2R),
'Copy increments in reference' (CIR), 'Last mean carried forward (LMCF),
and 'Baseline mean carried forward' (BMCF). Different MNAR mechanisms for cost
and effectiveness varaibles are not allowed, but one could be MAR and the other MNAR.

The data need to be stored in a 'wide' format (one row per individual). The
resulting multiply-imputed data are mi set, ready
to analyze using mi estimate.

It was developed for the analysis of cost-effectiveness data in randomised
controlled trials, but can be used more generally for the imputation of multiple
(repeatedly-measured) continous outcomes.

Options

effectv(varlist) specifies the effectiveness variable(s),
in consecutive order. Must be numeric.

costv(varlist) specifies the cost variable(s),
in consecutive order. Must be numeric.

treatv(varname) specifies the trial treatment arm variable. Needs
to be a numeric variable. Multiple arms are allowed.

emethod(string) specifies the imputation method for the
effectiveness variable(s). May be MAR, J2R,
CIR, LMCF, or BMCF. The default is emethod(MAR).

cmethod(string) specifies the imputation method for the
cost variable(s). May be MAR, J2R,
CIR, LMCF, or BMCF. The default is cmethod(MAR).

refgroup(string) specifies the reference group number
or name (as coded in treatv);
required with J2R and CIR imputation.

covariates(varlist) Additional variables used in the imputation model.
Covariates need to be complete and numerical. Categorical variables
need to be split in dummy (binary) variables.

interim_mar(string) imputes interim-missing data under MAR. string may
be cost, effect, or cost effect. If nothing specified, uses the
imputation method from emethod() and cmethod() .

restrictto(string) indicates a subgroup on which to restrict
the reference-based imputation. Other individuals
are imputed under MAR. For example, could restrict MNAR imputation
to a single arm, or to participants who dropped-out for a specific reason.
E.g. restrictto(arm==1 & reason=="withdraw").

idv(varname) specifies the variable identifying individuals
in the dataset. May be either a numeric or a string variable.

m(#) specifies the number of imputations; default is m(5).

burnbetween(#) specifies the number of iterations between pulls for the
posterior in the MCMC. The default is burnbetween(100).

burnin(#) specifies the number of iterations in the MCMC burn-in. The
default is burnin(100).

rseed(#) sets the random-number seed for the imputation procedure. If
nothing is specified, a random seed is used and different runs
will result in a different set of imputed data. If a seed is specified,
cemimix will return the same set of imputed data on
separate runs (if applied applied to the exactly same sorted dataset, and
with the variables specified in the same order).

saving(filename[, replace])} saves the
dataset of imputed values in filename.dta. A new filename is required
unless replace is also specified.

restore reloads the original dataset in memory at the end of the
imputation. If not used, the newly imputed dataset will be in memory
at the end of the imputation

Examples

Analyzing Ten Top Tips trial data

. use 10TT, clear

Imputation assuming effectiveness and cost variables are
MAR, with age and sex as covariates

. cemimix, effectv(qol_0 qol_3 qol_6 qol_12 qol_18 qol_24) costv(totalcost) covariates(age sex) treatv(arm) m(50)

Assuming missing effectiveness values jump to control arm values

. cemimix, effectv(qol_0 qol_3 qol_6 qol_12 qol_18 qol_24) costv(totalcost) covariates(age sex) emethod(J2R) ref(0) cmethod(MAR) treatv(arm) m(50)

Assuming effectiveness go back to baseline values after drop-out. Interim
missing assumed MAR

. cemimix, effectv(qol_0 qol_3 qol_6 qol_12 qol_18 qol_24) costv(totalcost) covariates(age sex) emethod(BMCF) interim_mar(effect) cmethod(MAR) treatv(arm) m(50)

Then generate imputed quality-adjusted life years and compare between arms

. mi passive: generate qaly=0.125*qol_0 + 0.25*qol_3 + 0.375*qol_6 + 0.5*qol_12 + 0.5*qol_18 + 0.25*qol_24

. mi estimate: regress qaly arm

Stored results

mimix stores the following in r():

Scalars

r(N) total sample size in original dataset

r(m) number of imputations

Macros

e(cmd) cemimix

e(cmdline) command as typed

r(effectv) effectiveness variables

r(costv) cost variables

r(covariates) imputation covariate variables

r(emethod) main imputation method for effectiveness variables

r(cmethod) main imputation method for cost variables

r(eintmeth) imputation method for interim missing effectiveness variables

r(cintmeth) imputation method for interim missing cost variables

r(restrictto) MNAR imputation subgroup

r(rseed) random-number seed

Acknowledgments

This program is an adaptation of the mimix Stata program, developed by
Suzie Cro and Tim Morris, and itself based on the SAS macro,
miwithd, written by James Roger.

References

Carpenter, J. R., J. H. Roger, and M. G. Kenward. 2013. Analysis of longitudinal
trials with protocol deviation: A framework for relevant, accessible assumptions,
and inference via multiple imputation.
Journal of Biopharmaceutical Statistics 23: 1352-1371.

Leurent, B., Gomes, M., Cro, S., Wiles, N. and Carpenter, J.R., 2020.
Reference‐based multiple imputation for missing data sensitivity analyses
in trial‐based cost‐effectiveness analysis.
Health economics 29(2), pp.171-184.

Author

Baptiste Leurent

University College London, UK

baptiste.leurent@ucl.ac.uk

Suzie Cro

Imperial College London, UK

s.cro@imperial.ac.uk