pander::pander(subset(data.frame(sessioninfo::package_info()), attached==TRUE, c(package, loadedversion)))| package | loadedversion |
Multiple imputation workflows with propensity score and survival analysis
In 2022, nearly every third drug approval was granted in the field of oncology (tendency ↑)1
Decision-makers increasingly rely on real-world evidence (RWE) generated from routine-care health data such as electronic health records (EHR) to evaluate the comparative safety and effectiveness of novel cancer therapies
ENCORE
The ENCORE project is an RCT DUPLICATE expansion to oncology which is going to emulate 12 randomized clinical trials using multiple EHR data sources. The process includes an emphasis on transparency with documented assessment of data fitness of the RWD source for each trial and conducting extensive sensitivity analyses to assess robustness of findings and trial eligibility criteria.
Partially observed covariates/confounders are a common and pervasive challenge
To date, most oncology studies utilizing RWD have relied on complete case analysis although assumptions for a complete case analysis (missing completely at random [MCAR]) are even stronger than those (missing at random [MAR]) for multiple imputation (MI). Besides this, MI has additional advantages:
All patients are retained
Flexible modeling (parametric, non-parametric)
Can incorporate additional information (auxiliary covariates) to make the MAR assumption more likely
Realistic variance estimation (Rubin’s rule)
However:
Not much is known about how to use multiple imputation in combination with propensity score-based approaches
Computational implementation can be complex
To establish a computationally reproducible workflow that streamlines multiple imputation > propensity score matching/weighting > survival analysis workflows in a transparent fashion
One of the most comprehensive and influental simulation studies that addressed the question on how to combine multiple imputation with propensity scores (IPTW weighting) was published in 2019 by Leyrat et al.2. In this study, the authors looked at three different potential ways:
MIte: MI > PS estimation > Outcome model for each PS model > Pooling of results
MIps: MI > PS estimation > PS pooling across datasets > single outcome model
MIpar: MI > Pooling of covariate parameters > single PS model > single outcome model
Additional questions that were also addressed:
Should outcome be included in imputation model?
How to estimate variance of IPTW estimator in context of MIte or MIps or MIpar?
MIte performed best in terms of bias, standardized differences/balancing, coverage rate and variance estimation
Standard IPTW variance estimation is valid for MIte
Outcome must be included in imputation model
MatchThem R packageTo streamline the implementation of multiple imputation > propensity score workflows, Farhad Pishgar, Noah Greifer, Clémence Leyrat and Elizabeth Stuart developed the MatchThem package3 which relies on the functionality provided by the mice, MatchIt, and WeightIt packages. An exemplary illustration on how to use the package in a survival analysis context is given in Chapter 3 (cheatsheet).
Script runtime: 0.00 minutes.
pander::pander(subset(data.frame(sessioninfo::package_info()), attached==TRUE, c(package, loadedversion)))| package | loadedversion |
pander::pander(sessionInfo())R version 4.5.1 (2025-06-13)
Platform: x86_64-pc-linux-gnu
locale: LC_CTYPE=C.UTF-8, LC_NUMERIC=C, LC_TIME=C.UTF-8, LC_COLLATE=C.UTF-8, LC_MONETARY=C.UTF-8, LC_MESSAGES=C.UTF-8, LC_PAPER=C.UTF-8, LC_NAME=C, LC_ADDRESS=C, LC_TELEPHONE=C, LC_MEASUREMENT=C.UTF-8 and LC_IDENTIFICATION=C
attached base packages: stats, graphics, grDevices, datasets, utils, methods and base
loaded via a namespace (and not attached): digest(v.0.6.39), fastmap(v.1.2.0), xfun(v.0.55), tictoc(v.1.2.1), knitr(v.1.51), htmltools(v.0.5.9), rmarkdown(v.2.30), cli(v.3.6.5), pander(v.0.6.6), sessioninfo(v.1.2.3), renv(v.1.1.5), compiler(v.4.5.1), tools(v.4.5.1), evaluate(v.1.0.5), Rcpp(v.1.1.0), yaml(v.2.3.12), rlang(v.1.1.6), jsonlite(v.2.0.0) and htmlwidgets(v.1.6.4)
pander::pander(options('repos'))repos:
| CRAN |
|---|
| https://cran.rstudio.com |
| PositPackageManager |
|---|
| https://packagemanager.posit.co/cran/linux/noble/latest |