help for vbkw

Vector-Based Kernel Weighting

vbkw
depvar
[indepvars]
[if exp]
[in range]
outcome(varlist)
[,
kerneltype(string)
bwidth(string)
sdbwidthstring)
nocommon
mprobit
logitps
bstrap
nreps(numeric)
nosave]

where indepvars may contain factor variables; see fvvarlist.

Description

vbkw implements vector-based kernel weighting to adjust for pre-treatment observable differences between treatment groups in a multiple-treatment setting (allows for up to 5 treatment groups).
Treatment status is identified by depvar.

vbkw is being continuously improved and developed. Make sure to keep your version up-to-date as follows

. ssc install vbkw, replace

If you want to be able to replicate your bootstrapped standard errors, you should set seed
before calling vbkw.

The propensity scores - the conditional treatment probabilities - are estimated by the program on the indepvars.

Generated Variables

vbkw creates a number of variables for the convenience of the user:

ps* are the propensity score vectors generated for each observation in the analytic sample.

_support is an indicator variable with equals 1 if the observation is on the common support
and 0 if the observation is off the support.

_pscore is the estimated propensity score or a copy of the one provided by pscore().

ATTsupport* are the variables that indicate which observations were used in estimation of treatment effects for each comparison.

ATTweight*, ATEweight* are the vbkw weights.

ATT*, ATE* are the vbkw ATT and ATE estimates.

Options

outcome(varlist) the outcome variable(s).
When evaluating multiple outcomes vbkw reduces to the min common number of observations
with non-missing values on ALL outcomes, because otherwise the matching weights will not sum
to the right number. If you have multiple outcomes with widely differing missing values
you may wish to run vbkw separately for each of the outcomes.

bstrap calculates complex-bootstrapped standard errors by re-estimating the propensity scores,
applying the minimax common support restriction, and recalculating the treatment effect estimates. Users can specify
the how many replications to be used for bootstrapping. The ols vcetype is the default if bstrap is not specified.

kerneltype(kernel_type) specifies the type of kernel:

normal the gaussian kernel.

biweight the biweight kernel.

epan the epanechnikov kernel (Default).

uniform the uniform kernel.

tricube the tricube kernel.

bwidth(real) the bandwidth used for matching if the user desires a fixed bandwidth.
Only one of bwidth(real) or sdbwidth(real) may be specified at a time.
If none are specified, the default bandwidth is 0.2*standard deviation of the propensity score, or 0.2*standard deviation of the logit of the propensity score (if logitps is specified).

sdbwidth(real) the bandwidth used for matching if the user desires a bandwidth based on the standard deviation of the ps or the logit of the ps.
Default bandwidth is 0.2*standard deviation of the propensity score, or logit of the propensity score (if logitps is specified).
Only one of bwidth(real) or sdbwidth(real) may be specified at a time.
If none are specified, the default bandwidth is 0.2*standard deviation of the propensity score, or 0.2*standard deviation of the logit of the propensity score (if logitps is specified).

nocommon User may use this option so that the common support restriction is not applied.
The default option is to apply the common support restriction based on the minimum of the maxima, and the maximum of the minima of the propensity scores. (See Section 3.3 Overlap and Common Support in Caliendo & Kopeinig, 2008).

mprobit The default is for the generalized propensity scores to be estimated with mlogit. Use this to estimate them with mprobit instead.

logitps Use the logit of the propensity scores instead of the raw propensity scores (default).

nreps(numeric) Specifies the number of replications to be used in calculating bootstrapped standard errors. The default replications is 300 (Note: using more replications will increase processing time).

nosave The vbkw command automatically creates a separate dataset where the observations off common support are dropped and the generated variables mentioned above are stored. If the user desires not to save this dataset, user should specify nosave.

Examples

The following statement will produce ATTs and ATEs for the effect of a multiple category treatment (treat) on an outcome (Y).
In this case, weights are assigned to comparison observations within a bandwidth of .4*standard deviation of the logit of the propensity score according to a biweight kernel function:
. vbkw treat x1 x2 x3 x4, kerneltype(biweight) logitps outcome(Y) sdbwidth(0.4) bstrap nreps(200)

use the dataset that contains the generated variables after estimating with vbkw:
. use "vbkwdta_commonsupportonly.dta", clear

For balance testing, users may calculate standardized differences in covariates according to Austin (2009) (see background reading below) using weights created by vbkw.

Thanks for citing vbkw as follows

J. Lum and M. M. Garrido (2021). "vbkw: Stata module to perform vector-based kernel weighting in multiple treatment settings".
https://ideas.repec.org/c/boc/bocode/s459019.html

where you can check your version as follows:

. which vbkw

Disclaimer

THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

IN NO EVENT WILL THE COPYRIGHT HOLDERS OR THEIR EMPLOYERS, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THIS SOFTWARE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

Background Reading

Abadie, A., Drukker, D., Herr, J. L., & Imbens, G. W. (2004). "Implementing matching estimators for average treatment effects in Stata", Stata journal 4, 290-311.

Abadie A. and Imbens, G. (2006), "Large sample properties of matching estimators for average treatment effects", Econometrica 74(1), 235-267.

Austin PC. "Balance diagnostics for comparing the distribution of baseline covariates between treatment groups in propensity-score matched samples". Stat Med. 2009 Nov 10;28(25):3083-107. doi: 10.1002/sim.3697. PMID: 19757444; PMCID: PMC3472075.

Austin, P. C., and Small, D. S. (2014), "The use of bootstrapping when using propensity-score matching without replacement: a simulation study", Statistics in Medicine 33, 4306– 4319.
https://doi.org/10.1002/sim.6276

Caliendo, M. and Kopeinig, S. (2008), "SOME PRACTICAL GUIDANCE FOR THE IMPLEMENTATION OF PROPENSITY SCORE MATCHING". Journal of Economic Surveys 22 31-72. https://doi.org/10.1111/j.1467-6419.2007.00527.x

Cochran, W. and Rubin, D.B. (1973), "Controlling Bias in Observational Studies", Sankyha 35, 417-446.

Dehejia, R.H and Wahba, S. (1999), "Causal Effects in Non-Experimental Studies: Re-Evaluating the Evaluation of Training Programmes", Journal of the American Statistical Association 94, 1053-1062.

Garrido, MM, Lum, J, Pizer, SD. (2021) "Vector-based kernel weighting: A simple estimator for improving precision and bias of average treatment effects in multiple treatment settings". Statistics in Medicine 40, 1204–1223.
https://doi.org/10.1002/sim.8836

Heckman, J.J., Ichimura, H. and Todd, P.E. (1997), "Matching As An Econometric Evaluation Estimator: Evidence from Evaluating a Job Training Programme", Review of Economic Studies 64, 605-654.

Heckman, J.J., Ichimura, H. and Todd, P.E. (1998), "Matching as an Econometric Evaluation Estimator", Review of Economic Studies 65, 261-294.

Heckman, J.J., Ichimura, H., Smith, J.A. and Todd, P. (1998), "Characterising Selection Bias Using Experimental Data", Econometrica 66, 5.

Imbens, G. (2000), "The Role of Propensity Score in Estimating Dose-Response Functions", Biometrika 87(3), 706-710.

Lechner, M. (2001), "Identification and Estimation of Causal Effects of Multiple Treatments under the Conditional Independence Assumption", in: Lechner, M., Pfeiffer, F. (eds), Econometric Evaluation of Labour Market Policies, Heidelberg: Physica/Springer, p. 43-58.

Rosenbaum, P.R. and Rubin, D.B. (1983), "The Central Role of the Propensity Score in Observational Studies for Causal Effects", Biometrika 70, 1, 41-55.

Rosenbaum, P.R. and Rubin, D.B. (1985), "Constructing a Control Group Using Multivariate Matched Sampling Methods that Incorporate the Propensity Score", The American Statistician 39(1), 33-38.

Rubin, D.B. (1974), "Estimating Causal Effects of Treatments in Randomised and Non-Randomised Studies", Journal of Educational Psychology 66, 688-701.

Author

Jessica Lum, Department of Veterans Affairs. If you observe any problems mailto:jlum917@gmail.com.

Melissa M. Garrido, Boston Univeristy School of Public Health, MA, USA. Department of Veterans Affairs mailto:melissa.garrido@va.gov.