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, ATC, and ATO.
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. Otherwise (i.e.,
for continuous or longitudinal treatments or when over = TRUE
),
M-estimation is not supported. See glm_weightit()
and
vignette("estimating-effects")
for details.