This page explains the details of estimating weights from covariate balancing propensity scores by setting method = "cbps"
in the call to weightit()
or weightitMSM()
. This method can be used with binary, multi-category, and continuous treatments.
In general, this method relies on estimating propensity scores using generalized method of moments and then converting those propensity scores into weights using a formula that depends on the desired estimand. This method relies on code written for WeightIt using optim()
.
Binary Treatments
For binary treatments, this method estimates the propensity scores and weights using optim()
using formulas described by Imai and Ratkovic (2014). The following estimands are allowed: ATE, ATT, and ATC.
Multi-Category Treatments
For multi-category treatments, this method estimates the generalized propensity scores and weights using optim()
using formulas described by Imai and Ratkovic (2014). The following estimands are allowed: ATE and ATT.
Continuous Treatments
For continuous treatments, this method estimates the generalized propensity scores and weights using optim()
using a modification of the formulas described by Fong, Hazlett, and Imai (2018). See Details.
Longitudinal Treatments
For longitudinal treatments, the weights are computed using methods similar to those described by Huffman and van Gameren (2018). This involves specifying moment conditions for the models at each time point as with single-time point treatments but using the product of the time-specific weights as the weights that are used in the balance moment conditions. This yields weights that balance the covariate at each time point. This is not the same implementation as is implemented in CBPS::CBMSM()
, and results should not be expected to align between the two methods. Any combination of treatment types is supported.
For the over-identified version (i.e., setting over = TRUE
), the empirical variance is used in the objective function, whereas the expected variance averaging over the treatment is used with binary and multi-category point treatments.
Sampling Weights
Sampling weights are supported through s.weights
in all scenarios.
Missing Data
In the presence of missing data, the following value(s) for missing
are allowed:
"ind"
(default)
First, for each variable with missingness, a new missingness indicator variable is created which takes the value 1 if the original covariate is NA
and 0 otherwise. The missingness indicators are added to the model formula as main effects. The missing values in the covariates are then replaced with the covariate medians (this value is arbitrary and does not affect estimation). The weight estimation then proceeds with this new formula and set of covariates. The covariates output in the resulting weightit
object will be the original covariates with the NA
s.
M-estimation
M-estimation is supported for the just-identified CBPS (the default, setting over = FALSE
) for binary and multi-category treatments. See glm_weightit()
and vignette("estimating-effects")
for details.