help for rmhbounds Daniel Litwok (July 2020)

Refined Mantel-Haenszel bounds to check sensitivity of estimated average treatment effects on the treated

rmhbounds outcome [if]
, gamma( numlist )
[treated( newvar )
weight( newvar )
support( newvar )
stratum( newvar )
stratamat]

Description

rmhbounds calculates Rosenbaum (2002) bounds for average treatment effects on the treated in the presence of unobserved heterogeneity (hidden bias) between treatment and control cases. rmhbounds refines mhbounds (see net sj 7-1 st0121) by removing the cap on the number of strata and replacing the large sample approximation for E and V with exact moments. The latter refinement improves performance of the command for strata with a small number of observations.

Options

gamma( numlist ) is required and specifies the values of cap gamma for which to carry out the sensitivity analysis. Estimates at cap gamma = 1 (no heterogeneity) are included in the calculations by default.

treated( newvar ) specifies the name of the user-provided treatment variable. If no name is provided, mhbounds expects _treated from psmatch or psmatch2.

weight( newvar ) specifies the name of the user-provided variable containing the frequency with which the observation is used as a match. If no name is provided, mhbounds expects _weight from psmatch or psmatch2.

support( newvar ) specifies the name of the user-provided common support variable. If no name is provided, mhbounds expects _support from psmatch or psmatch2.

stratum( newvar ) specifies the name of the user-provided variable indivating strata.

stratamat, combined with stratum( newvar ), keeps in memory not only the matrix outmat containing the overall/combined test statistics but also the matrices outmat_j containing the strata-specific test statistics, j=1,...,#strata.

Remarks

In some applications, the significance level on the bounds might fall first and then rise again. This is the case when gamma becomes so large that the esitmated average treatment effect on the treated changes sign and becomes significant.

Example

Running rmhbounds after cem:

use lalonde, clear

gen emp78=(re78>0)

cem age education (0 6.5 8.4 12.5 16.5) black married nodegree re74, treatment(treated)

gen support=(cem_weights>0)

keep if support==1

gen weight=1

rmhbounds emp78, gamma(1 (0.05) 2) treated(treated) weight(weight) support(support) stratum(cem_strata)

References

Becker, S. O., & Caliendo, M. (2007). Sensitivity analysis for average treatment effects. The Stata Journal, 7(1), 71-83.

Rosenbaum, P. R. (2002). Observational Studies 2nd ed. New York: Springer.

Author

Daniel Litwok <daniel.litwok@gmail.com>

Acknowledgements

Becker and Caliendo made available commands for sensitivity analysis; see Becker & Caliendo (2007). This package draws liberally from that work; note in particular the similarity of verbiage under headings Description, Options, and Remark.

Also see

Online: mhbounds, if installed