# Estimating LATE from RDD using OLS - Have I understood it correctly?

I am currently running a project using RDD in STATA where I am unable to use the handy "rdrobust" command, and hence have to use the conventional "regress" function instead, i.e., OLS. However, despite my best efforts, I have been unsuccessful to really find if I have understood the estimation of LATE correctly.

In this, I first run a restricted OLS on the values closest to the treatment point, $$c_0$$, i.e., $$c_{-1}$$, versus $$c_{+1}$$ as follows:

$$Y_{it}$$= $$\alpha_0$$ + $$\beta_1$$X + $$D_1Treatment$$+ $$\varepsilon_{it}$$

where $$Treatment=1$$ for $$c_1$$>$$c$$

First question: Am I correct to assume that this corresponds to LATE? Since the window is as small as possible, this should minimize the bias, right?

Second question: I also estimate local polynomials on the treatment with a slightly larger window, including the three closest values to $$c_0$$, i.e., $$c_{-3}$$, $$c_{-2}$$, $$c_{-1}$$, as well as $$c_{+1}$$, $$c_{+2}$$, $$c_{+3}$$ in the following two OLS regressions:

$$Y_{it}$$=$$\alpha_0$$ + $$\beta_1X$$+$$(Untreated*C_{-3,-2,-1})$$+$$(Untreated*C_{-3,-2,-1}^2$$) +$$\varepsilon_{it}$$

and, correspondingly

$$Y_{it}$$=$$\alpha_0$$ + $$\beta_1X$$+$$(Treated*C_{1,2,3})$$+$$(Treated*C_{1,2,3}^2$$) +$$\varepsilon_{it}$$

Where C contains the values of the running variable in the pre-, versus post-period.

I then estimate the LATE as: $$\tau=E[Y|x,c>0]-E[Y|x,c<0]$$

Is this correct? I am currently a bit stumped on documentation on how to do this "manually", and I am at my wits end trying to find answers through Google.

Any bit of help would be greatly appreciated.

Sincerely Johan

• Possibly relevant. – Dimitriy V. Masterov Nov 24 '20 at 18:34
• That is actually very helpful, thank you! – user216262 Nov 24 '20 at 19:02
• If you have questions remaining, then feel free to edit your question to reflect that. You can also answer your own question if everything is cleared up. – Dimitriy V. Masterov Nov 25 '20 at 0:24

I finally figured the problem out. The solution is that we estimate the problem as a single equation, where the pre-treatment level is the regression constant, such that:

$$Y_{it}=C_0 + C_1X + C_2X^2 + C3X^3 + D_0 + D_1X + D_2X^2 + \gamma Z + \varepsilon_{it}$$

where $$C_0$$ is the pre-treatment level, i.e., the regression constant, and where $$C$$ and $$D$$ refers to the pre- and post-treatment periods, respectively. $$Z$$ refers to the matrix of other control variables, if included.

We can then estimate LATE as:

$$\tau = D_0$$

Observe, however, that the basic estimate is biased, whereby you need to use some form of bias correction. If the running variable is continuous, you can just go ahead and use standard non-parametric methods. If its discontinuous and/or heaped, then there are easily deducible formulas to come to terms with the bias. Useful reading for discrete/heaped running variables:

Kolesár, Michal, and Christoph Rothe. 2018. "Inference in Regression Discontinuity Designs with a Discrete Running Variable." American Economic Review, 108 (8): 2277-2304.

Dong, Y. (2015), Regression Discontinuity Applications with Rounding Errors in the Running Variable. J. Appl. Econ., 30: 422– 446. doi: 10.1002/jae.2369.

In STATA, the code for a three polynomial model would look something like this:

// Assume that all are treated for X>3

gen untreat=1

gen treated=0

replace treated=1 if X>3

reg outcome i.untreat i.untreat#c.X i.untreat#c.X#c.X i.untreat#c.X#c.X#c.X ///
i.treated i.treated#c.X i.treated#c.X#c.X i.treated#c.X#c.X#c.X, nocons

// Where the treatment effect itself is constituted by estimate for 1.treated


Please carefully note, however, that some bias correction is still needed to consistently estimate LATE. If not heaped or discrete, or if no need for multiple equations, users can make good use of the regular rdrobust command.

Sincerely Johan