postcard provides tools for accurately estimating marginal effects using plug-in estimation with GLMs, including increasing precision using prognostic covariate adjustment. SeePowering RCTs for marginal effects with GLMs using prognostic score adjustment by Højbjerre-Frandsen et. al (2025).
Estimating marginal effects
rctglm() is used to estimate marginal effects. See introductory examples of its usage invignette("postcard") and more details invignette("model-fit").
Marginal effects are causal effects of the form\(r(\Psi_1, \Psi_0)\), where\(\Psi_a=\mathbb{E}[Y(a)]\) are population mean outcomes under exposure\(a=0, 1\), respectively, and\(r\) is theestimand (function).\(\Psi_a\) are sometimes referred to ascounterfactual means. The package usesplug-in estimation for robust estimation of any marginal effect estimand as well asinfluence functions for robust estimation of the variance of the estimand (Rosenblum, M. and M. J. van der Laan, 2010: Simple, efficient estimators of treatment effects in randomized trials using generalized linear models to leverage baseline variables. The International Journal of Biostatistics, 6, no. 1).
Prognostic covariate adjustment
rctglm_with_prognosticscore() is used to estimate marginal effects including the use of prognostic covariate adjustment. See introductory examples of its usage invignette("postcard") and more details invignette("model-fit").
Prognostic covariate adjustment involves training aprognostic model on historical data to predict the response in that data. Assuming that the historical data is representative of the comparator group in a“new” data set, we can use the prognostic model to predict thecomparator counterfactual outcome for all observations (including the ones in the comparator group). This prediction, which is called theprognostic score, is then used as an adjustment covariate in the GLM.
Power approximation
Implementations of sample size/power approximation formulas are available, enabling retrospective power analyses to be performed using the package.
Introductory examples are available invignette("postcard") and more details invignette("prospective-power").
Installation
To install the package:
install.packages("postcard")# Development version:# install.packages("pak")pak::pak("NovoNordisk-OpenSource/postcard")