Skip to contents

Overlap weights \(e(1-e)\) for the treated-vs-control contrast on the overlap population, or the usual IPTW forms.

Usage

morie_causal_iptw_atoweights(
  treat,
  ps,
  estimand = c("ato", "ate", "att"),
  trim = NULL,
  stabilize = TRUE
)

Arguments

treat

0/1 treatment indicator.

ps

propensity scores, strictly inside (0, 1).

estimand

"ato", "ate" or "att".

trim

optional threshold; units outside \([trim, 1-trim]\) get weight 0.

stabilize

stabilise the ATE/ATT weights.

Value

list with weights, ess, max_weight_share, n_trimmed, kept.

Details

The overlap weights are the interesting default. They are bounded by 1/4 and go to zero exactly where the IPTW weights explode, so no unit can dominate – at the price of estimating an effect for a population defined by the weights rather than one you chose.

Trimming is not a robustness fix. Dropping units with extreme scores changes the estimand from the ATE to the ATE among units that survived the trim, and the function records how many were dropped.

References

Li, F., Morgan, K. L. and Zaslavsky, A. M. (2018). Balancing covariates via propensity score weighting. JASA, 113(521), 390-400.

Examples

set.seed(1)
ps <- plogis(rnorm(200))
morie_causal_iptw_atoweights(rbinom(200, 1, ps), ps)$ess
#> [1] 169.0807