marCoxph() and surveff() fits can now be
pooled across multiply imputed datasets with the standard
mice workflow, pool(with(imp, ...)). This is
enabled by new tidy() and df.residual() S3
methods for both classes. See the “Multiple imputation with mice”
section of the main vignette.estimand
parameter to weight_method in surveff() and
marCoxph() for consistency across all package functions
estimand = "ATE" →
weight_method = "IPW"estimand = "overlap" →
weight_method = "OW"estimand = "ATT" → weight_method = "ATT"
(name unchanged, but parameter name changed)trim parameter from character to logical in
surveff(), marCoxph(), and
weightedKM()
trim = "symmetric" → trim = TRUEtrim = NULL → trim = FALSEalpha parameter and asymmetric trimming support
from all functions due to poor statistical performance in practice
delta is now NULL (automatic
selection based on number of treatment groups) instead of a fixed
valueweightedKM() for
weighted Kaplan-Meier estimation with propensity score weights
weightedKM objects:
plot.weightedKM(): Visualize weighted Kaplan-Meier or
cumulative risk curves with confidence intervalssummary.weightedKM(): Tabular summaries with confidence
intervalsprint.weightedKM(): Formatted console outputplot.weightedKM():
surveff(), marCoxph(),
weightedKM())@details sections explaining IPW,
OW, and ATT weighting methodsweight_method
parameterggplot2 and cowplot from Suggests to
Imports (required for plotting functions)surveff() and
marCoxph() to transform user-facing API to internal
implementationIf upgrading from version 0.1.0:
estimand = "ATE" with
weight_method = "IPW"estimand = "overlap" with
weight_method = "OW"estimand = "ATT" with
weight_method = "ATT"trim = "symmetric", delta = 0.1 with
trim = TRUE, delta = 0.1trim = NULL with trim = FALSE (or
simply omit, as FALSE is default)alpha parameter entirely (asymmetric trimming no
longer supported)delta = NULL to use automatic defaults (0.1 for
binary, 0.067 for 3 groups, 1/(2J) for J ≥ 4)Example migration:
# Old (v0.1.0)
result <- surveff(
data = mydata,
ps_formula = Z ~ X1 + X2,
censoring_formula = Surv(time, event) ~ X1,
estimand = "overlap",
censoring_method = "weibull"
)
# New (v0.2.0)
result <- surveff(
data = mydata,
ps_formula = Z ~ X1 + X2,
censoring_formula = Surv(time, event) ~ X1,
weight_method = "OW",
censoring_method = "weibull"
)Initial CRAN release
Documentation improvements for CRAN resubmission:
@return tags to print methods\donttest{} with executable
codeImplements propensity score weighting methods for estimating counterfactual survival functions and marginal hazard ratios in observational studies with time-to-event outcomes
Main functions:
surveff(): Estimates counterfactual survival curves and
survival differences over timemarCoxph(): Estimates marginal hazard ratios via
weighted Cox regressionSupports binary and multiple (>2) treatment groups
Weighting methods:
Propensity score trimming:
Censoring adjustment methods:
Variance estimation:
Comprehensive documentation including vignette with examples
Based on methods from Cheng et al. (2022) doi:10.1093/aje/kwac043 and Li & Li (2019) doi:10.1214/19-AOAS1282