This is a public repository for the package `rdbounds`

for Stata and R, which implements the estimation procedure developed in the paper Bounds on Treatment Effects in Regression Discontinuity Designs under Manipulation of the Running Variable, with an Application to Unemployment Insurance in Brazil, by François Gerard, Miikka Rokkanen, and Christoph Rothe.

This is a preliminary version of the code and is offered without warranty. We appreciate any feedback or issues noted. Please direct your comments to leonard.goff at columbia dot edu. The current version is 1.01, dated June 12th, 2019. The previous version was 1.00, dated July 1st, 2018 (the only difference is the behavior of some warning messages in the R code).

The Stata version of the code generally runs a bit faster than the R version with many bootstrap resamples, but this may depend on your version of Stata and the number of cores on your computer, among other things.

The file Stata/rdbounds.ado is the main code file, and Stata/rdbounds.sthlp is a Stata help files for the `rdbounds`

function. The second .ado file Stata/rdbounds_sampledata.ado generates a sample dataset to experiment with, and its associated help file is Stata/rdbounds_sampledata.sthlp.

The package can be installed directly from within Stata by running

```
net from https://raw.githubusercontent.com/francoisgerard/rdbounds/master/Stata/
net describe rdbounds
net install rdbounds
```

Alternatively, you can install the package by downloading `rdbounds.ado`

and `rdbounds_sampledata.ado`

to your ado directory for Stata, e.g. C:\ado\personal. The help files should also be dropped into your local ado directory or can be viewed directly in the Stata help file viewer.

The `rdbounds`

function requires the Stata package `moremata`

, which can be installed by running:

```
ssc install moremata
```

Here’s some test code to get you going, once `rdbounds`

is installed:

```
set seed 1
rdbounds_sampledata, samplesize(50000) clear covs
rdbounds y x, c(0) treatment(treatment) covs(cov) bwsx(.2, .5) bwy(.1) evaluation_ys("0 .2 to 23") orders(1) kernel(epanechnikov) type(ate) refinementA refinementB righteffects yextremes(0 23) num_bootstraps(0)
disp "tau_hat: `e(tau_hat)'"
disp "takeup increase: `e(takeup_increase)'"
matrix list e(treatment_effects_ATE)
```

The main code file is R/R/rdbounds.R, and the documentation can be found here: R/rdbounds.pdf.

You may install the package directly from this repository using the `devtools`

package, by running the following commands in R (the first three lines may not be necessary if you already have the corresponding packages installed):

```
install.packages("formattable")
install.packages("data.table")
install.packages("devtools")
library(devtools)
install_github("francoisgerard/rdbounds/R")
```

Alternatively, you may download R/rdbounds_1.01.tar.gz and install the package from source code. You will need to also install the packages `formattable`

and `data.table`

if you do not have them already.

Here’s some test code to get you going, once `rdbounds`

is installed:

```
library(formattable)
library(data.table)
library(rdbounds)
set.seed(1)
df<-rdbounds_sampledata(50000, covs=TRUE)
rdbounds_est<-rdbounds(y=df$y,x=df$x, covs=as.factor(df$cov), treatment=df$treatment, c=0,
discrete_x=FALSE, discrete_y=FALSE,
bwsx=c(.2,.5), bwy = .1, kernel="epanechnikov", orders=1,
evaluation_ys = seq(from = 0, to=23, by=.2),
refinement_A=TRUE, refinement_B=TRUE,
right_effects=TRUE, yextremes = c(0,23),
num_bootstraps=0)
rdbounds_summary(rdbounds_est, title_prefix="Sample Data Results")
```