Toolbox for Regression Discontinuity Design ('RDD').
rddtools
rddtools is an R package designed to offer a set of tools to run all the steps required for a Regression Discontinuity Design (RDD) Analysis, from primary data visualisation to discontinuity estimation, sensitivity and placebo testing.
Installing rddtools
This github website hosts the source code. One of the easiest ways to install the package from github is by using the R package devtools:
if (!require('remotes')) install.packages('remotes')
remotes::install_github('bquast/rddtools')
Note however the latest version of rddtools only works with R 3.0, and that you might need to install Rtools if on Windows.
Documentation
The (preliminary) documentation is available in the help files directly, as well as in the vignettes. The vignettes can be accessed from R.
vignette('rddtools')
rddtools: main features
Simple visualisation of the data using binned-plot:
plot()
Bandwidth selection:
- MSE-RDD bandwidth procedure of Imbens and Kalyanaraman 2012:
rdd_bw_ik()
- MSE global bandwidth procedure of Ruppert et al 1995:
rdd_bw_rsw()
- MSE-RDD bandwidth procedure of Imbens and Kalyanaraman 2012:
Estimation:
- RDD parametric estimation:
rdd_reg_lm()
This includes specifying the polynomial order, including covariates with various specifications as advocated in Imbens and Lemieux 2008. - RDD local non-parametric estimation:
rdd_reg_np()
. Can also include covariates, and allows different types of inference (fully non-parametric, or parametric approximation). - RDD generalised estimation: allows to use custom estimating functions to get the RDD coefficient. Could allow for example a probit RDD, or quantile regression.
- RDD parametric estimation:
Post-Estimation tools:
- Various tools, to obtain predictions at given covariate values (
rdd_pred()
), or to convert to other classes, to lm ( as.lm() ), or to the packagenp
(as.npreg()
). - Function to do inference with clustered data:
clusterInf()
either using a cluster covariance matrix ( vcovCluster() ) or by a degrees of freedom correction (as in Cameron et al. 2008).
- Various tools, to obtain predictions at given covariate values (
Regression sensitivity analysis:
- Plot the sensitivity of the coefficient with respect to the bandwith:
plotSensi()
- Placebo plot using different cutpoints:
plotPlacebo()
- Plot the sensitivity of the coefficient with respect to the bandwith:
Design sensitivity analysis:
- McCrary test of manipulation of the forcing variable: wrapper
dens_test()
to the functionDCdensity()
from packagerdd
. - Test of equal means of covariates:
covarTest_mean()
- Test of equal density of covariates:
covarTest_dens()
- McCrary test of manipulation of the forcing variable: wrapper
Datasets
- Contains the seminal dataset of Lee 2008:
house
- Contains functions to replicate the Monte-Carlo simulations of Imbens and Kalyanaraman 2012:
gen_mc_ik()
- Contains the seminal dataset of Lee 2008: