Doubly Robust Difference-in-Differences Estimators

Implements the locally efficient doubly robust difference-in-differences (DiD) estimators for the average treatment effect proposed by Sant'Anna and Zhao (2020) . The estimator combines inverse probability weighting and outcome regression estimators (also implemented in the package) to form estimators with more attractive statistical properties. Two different estimation methods can be used to estimate the nuisance functions.


Doubly Robust Difference-in-Differences

CRAN status Codecov test coverage R build status

The DRDID R package implements different estimators for the Average Treatment Effect on the Treated (ATT) in Difference-in-Differences (DiD) setups where the parallel trends assumption holds after conditioning on a vector of pre-treatment covariates.

The main estimators implemented here are the locally efficient, doubly-robust DiD estimators proposed by Sant'Anna and Zhao (2020), Doubly Robust Difference-in-Differences Estimators. The package covers both panel data and repeated cross-section data setups with two treatment groups (treated and comparison group) and two time periods (pre-treatment and post-treatment).

See the package manual for documentation of all package functions (with examples).

If you end up using this package, please cite our paper:

Installation

To install the most recent version of the DRDID package from GitHub:

# install.packages("remotes")
remotes::install_github("pedrohcgs/DRDID")

Short example

The following is a portion of the empirical illustration considered by Sant'Anna and Zhao (2020) that uses the LaLonde sample from the NSW experiment and considers data from the Current Population Survey (CPS) to form a non-experimental comparison group.

Let's first get the data ready:

library(DRDID)
# Load data in long format that comes in the DRDID package
data(nsw_long)
# Form the Lalonde sample with CPS comparison group
eval_lalonde_cps <- subset(nsw_long, nsw_long$treated == 0 | nsw_long$sample == 2)

Now, to estimate the ATT using the Improved Locally Efficient Doubly Robust DiD estimator, we can use the drdid function:

# Implement improved locally efficient DR DiD:
out <- drdid(yname = "re", tname = "year", idname = "id", dname = "experimental",
             xformla= ~ age + educ + black + married + nodegree + hisp + re74,
             data = eval_lalonde_cps, panel = TRUE)
summary(out)

For additional details on the usage of the drdid function, see check the manual.

To implement IPW and outcome regression DiD estimators, check here and here, respectively.

Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.

install.packages("DRDID")

1.3.0 by Pedro H. C. Sant'Anna, 4 months ago


https://psantanna.com/DRDID/, https://github.com/pedrohcgs/DRDID


Report a bug at https://github.com/pedrohcgs/DRDID/issues


Browse source code at https://github.com/cran/DRDID


Authors: Pedro H. C. Sant'Anna [aut, cre, cph] , Jun Zhao [aut]


Documentation:   PDF Manual  


GPL-3 license


Imports stats, trust, BMisc, Rcpp, fastglm

Suggests knitr, rmarkdown, spelling, testthat

Linking to Rcpp


Imported by did, ptetools.


See at CRAN