moderndid.drdid_imp_rc#
- moderndid.drdid_imp_rc(y, post, d, covariates, i_weights=None, boot=False, boot_type='weighted', nboot=999, influence_func=False, trim_level=0.995)[source]#
Compute the improved doubly robust DiD estimator for the ATT with repeated cross-section data.
Implements the improved and locally efficient DR-DiD estimator for the ATT with repeated cross-sectional data, as defined in [2]. The estimator is given by
\[\widehat{\tau}_{1,imp}^{dr,rc} = \mathbb{E}_{n}\left[\left(\widehat{w}_{1}^{rc}(D,T) - \widehat{w}_{0}^{rc}(D,T,X;\widehat{\gamma}^{ipt})\right) (Y - \mu_{0,Y}^{lin,rc}(T,X;\widehat{\beta}_{0,1}^{wls,rc}, \widehat{\beta}_{0,0}^{wls,rc}))\right].\]This estimator uses a logistic propensity score model and separate linear regression models for the control group’s outcome in both pre and post-treatment periods. The resulting estimator is doubly robust for inference but is not locally efficient.
- Parameters:
- y
numpy.ndarray A 1D array of outcomes from both pre- and post-treatment periods.
- post
numpy.ndarray A 1D array of post-treatment dummies (1 if post-treatment, 0 if pre-treatment).
- d
numpy.ndarray A 1D array of group indicators (1 if treated in post-treatment, 0 otherwise).
- covariates
numpy.ndarray A 2D array of covariates for propensity score and outcome regression. An intercept must be included if desired.
- i_weights
numpy.ndarray, optional A 1D array of observation weights. If None, weights are uniform. Weights are normalized to have a mean of 1.
- bootbool, default=False
Whether to use bootstrap for inference.
- boot_type{“weighted”, “multiplier”}, default=”weighted”
Type of bootstrap to perform.
- nboot
int, default=999 Number of bootstrap repetitions.
- influence_funcbool, default=False
Whether to return the influence function.
- trim_level
float, default=0.995 The trimming level for the propensity score.
- y
- Returns:
DRDIDRCResultA NamedTuple containing the ATT estimate, standard error, confidence interval, bootstrap draws, and influence function.
See also
drdid_imp_local_rcImproved and locally efficient DR-DiD estimator for repeated cross-section data.
drdid_rcLocally efficient DR-DiD estimator for repeated cross-section data.
drdid_trad_rcTraditional (not locally efficient or improved) doubly robust DiD estimator.
Notes
The nuisance parameters are estimated as described in Section 3.2 of [2]. The propensity score is estimated using the inverse probability tilting estimator from [1],
\[\widehat{\gamma}^{ipt} = \arg\max_{\gamma \in \Gamma} \mathbb{E}_{n} \left[D X^{\prime} \gamma - (1-D) \exp(X^{\prime} \gamma)\right]\]and the outcome regression coefficients are estimated using weighted least squares.
\[\widehat{\beta}_{0, t}^{wls, rc} = \arg\min_{b \in \Theta} \mathbb{E}_{n} \left[\left.\frac{\Lambda(X^{\prime} \hat{\gamma}^{ipt})}{1-\Lambda(X^{\prime} \hat{\gamma}^{ipt})} (Y - X^{\prime} b)^{2} \right\rvert\, D=0, T=t\right]\]The resulting estimator is doubly robust for inference but is not locally efficient.
References
[1]Graham, B. S., Pinto, C. C., & Egel, D. (2012). Inverse probability tilting for moment condition models with missing data. The Review of Economic Studies, 79(3), 1053-1079. https://doi.org/10.1093/restud/rdr047
[2] (1,2)Sant’Anna, P. H., & Zhao, J. (2020). Doubly robust difference-in-differences estimators. Journal of Econometrics, 219(1), 101-122. https://doi.org/10.1016/j.jeconom.2020.06.003 arXiv preprint: https://arxiv.org/abs/1812.01723