MRStdCRT

Model-robust standardization for cluster-randomized trials. The package estimates cluster-average and individual-average treatment effects and uses a delete-one-cluster jackknife for inference.

Installation

install.packages("MRStdCRT")

Inverse-cluster-size weighted outcome models within MRS

MRStdCRT_fit() provides three model_weights options for GEE, LMM, and GLMM working outcome models:

model_weights Outcome model for cATE Outcome model for iATE
"none" (default) Unweighted Unweighted
"inverse_cluster_size" Inverse-cluster-size weighted Inverse-cluster-size weighted
"estimand_specific" Inverse-cluster-size weighted Unweighted

The first two options use one fitted model for both estimands. "estimand_specific" fits both models and returns the weighted cATE, unweighted iATE, and their paired ICS test in a single call. The cluster-summary GLM supports only "none".

library(MRStdCRT)
data(ppact)

fit <- MRStdCRT_fit(
  PEGS ~ AGE + PEGS_bl, data = ppact,
  cluster = "CLUST", trt = "INTERVENTION",
  method = "GEE", family = gaussian(), corstr = "independence",
  scale = "RD", model_weights = "inverse_cluster_size"
)
summary(fit)

estimand_specific_fit <- MRStdCRT_fit(
  PEGS ~ AGE + PEGS_bl, data = ppact,
  cluster = "CLUST", trt = "INTERVENTION",
  method = "GEE", family = gaussian(), corstr = "independence",
  scale = "RD", model_weights = "estimand_specific"
)
estimand_specific_fit$estimate
estimand_specific_fit$ics

GEE uses an individual fitting weight of 1 / N_i, where N_i is the observed number of individuals in cluster i. Weighted LMM and GLMM use WeMix::mix() with conditional individual weights of 1 and cluster weights of 1 / N_i. This weights each cluster’s integrated log-likelihood contribution. Outcome values remain unchanged. Cluster sizes and fitting weights are computed internally; the formula need not contain cluster size or its interaction with treatment.

With "none" or "inverse_cluster_size", one selected fitted model supplies counterfactual predictions for both estimands. MRS retains the residual correction and uses equal cluster weights for cATE and cluster-size weights for iATE. Every jackknife sample refits the selected model. Weighted fitting is an additional working-model option and does not guarantee improved efficiency.

With model_weights = "estimand_specific", both models use the same formula, method, family, data, and treatment probabilities. Each deletion removes the same cluster from both fits. The ICS test uses the paired differences between the weighted cATE and unweighted iATE, preserving their covariance. This requires two outcome-model fits on the full data and two per deleted cluster. The existing unweighted LMM uses REML, whereas its weighted counterpart uses maximum likelihood. The selected model and its marginal-prediction procedure otherwise remain the same. The unweighted component retains the existing warnings and nonparametric fallback after a model-fitting error.

Weighted GEE supports Gaussian identity, binomial logit, and Poisson log with independence or exchangeable working correlation. Weighted LMM uses a Gaussian identity working model; weighted GLMM supports all three family/link combinations with a single cluster random intercept. The cluster-summary GLM supports only model_weights = "none". Nonlinear mixed models with a random-intercept variance near zero can fail numerically; an unverifiable fit stops the analysis with its full-data or jackknife context.

See vignette("introduction", package = "MRStdCRT") for fitting and prediction details, examples, and a GEE comparison with cluster-size saturated g-computation.

Log-scale inference for risk and odds ratios

For scale = "RR" or scale = "OR", set inference_scale = "log" to construct a confidence interval on the log scale and transform its endpoints back to the ratio scale. The default, "original", retains inference on the original effect scale. The log option applies to all supported working-model methods and all three outcome-model weighting options. For "estimand_specific", it uses the selected weighted cATE and unweighted iATE estimates.

The log-scale standard error is computed from the logarithms of all leave-one-cluster-out estimates. Confidence intervals and p-values use a t distribution with one fewer degree of freedom than the number of clusters. Point estimates, original-scale standard errors in fit$estimate, and the paired ICS test are unchanged. The additional standard errors are available as fit$log_se; summary(fit) identifies the scales used for inference and for the displayed standard errors.

Every full-data and deleted-cluster estimate must satisfy the relevant risk and ratio constraints. Invalid values stop the analysis; they are not truncated or omitted. The log option is unavailable for risk differences. Positive confidence limits do not guarantee better coverage in small samples. See the vignette for an executable comparison.

References

Li F, Tong J, Fang X, Cheng C, Kahan BC, Wang B (2025). Model-Robust Standardization in Cluster-Randomized Trials. Statistics in Medicine, 44, e70270. doi:10.1002/sim.70270.

Lee KM, Harhay MO, Li F (2026). Saturation in G: simple & robust causal inference in cluster randomized trials with informative cluster sizes. arXiv preprint. arXiv:2608.28943.

Bailey P, Webb B, Kelley C, Nguyen T, Huo H (2023). WeMix: Weighted Mixed-Effects Models Using Multilevel Pseudo Maximum Likelihood Estimation. R package version 4.0.3. doi:10.32614/CRAN.package.WeMix.

License

GPL-3.