# Thread: the 2sls results and graph plot for regression discontinuity design

1. ## the 2sls results and graph plot for regression discontinuity design

Dear all,

I have been struglling for how to get the 2SLS results and plot the graph for regression discontinuity. I use the parametric methods, wheras what I have found so far are all about non-parametric analysis. Here is my setting:

there is an regional anti-poverty program in 1994, in this program, the government designated a city where the income per capita in 1992 is below 800 dollars as a "poor city". Thus,the actual income per capita in this city in 1992 is running variable, "poor1994"---the "poor city" status in 1994 is treatment, "dlogincome954" the change in logincome between 1994 and 1995 is the outcome variable. The cutoff is at x = pci92 - 800 =0 (if this city's income per capita in 1992 is below 800 dollars,its probability of being treated is 1).

ren dlogpci954 y
gen x = pci92 - 700
gen z = (x < 0)
gen x2=x*x
gen x3=x*x*x
gen x4=x*x*x*x

In the first stage, I use this command:

areg poor94 z , absorb(prov) cluster(prov)
areg poor94 z x , absorb(prov) cluster(prov)
areg poor94 z x x2 , absorb(prov) cluster(prov)

the 2nd stage, I use:

ivreg2 dlogpci954 z
ivreg2 dlogpci954 z x
ivreg2 dlogpci954 z x x2 x3

But in the 3rd step, I donot know how to obtain the 2sls result in stata ,it should be a local Wald estimator.

Moreover, when I use the following command in Nicolas to plot the graph, stata does not give me anything.

gen dlogpci954=logpci95-logpci94, by(x)
bys ten_cat: replace m=. if _n>1
g Z=tenure-1094
qui rd nonedur Z, mbw(100)
loc w=e(w)
loc o "graph mbw(100) sco(ms(i) xli(0)||sc m ten_cat) line(xti(Tenure
relative to cutoff))"
rd nonedur Z if inrange(tenure,950,1150), bwidth(`w') `o'

I have been stucked here for one month, the deadline is coming, Any hints are sincerely appreciated!!!!

2. ## Re: the 2sls results and graph plot for regression discontinuity design

Sorry, The final part should be:

egen m=mean(dlogpci954),by (x)
gen x = pci92 - 700
qui rd dlogpci954 x, mbw(100)
loc w=e(w)
loc o "graph mbw(100) sco(ms(i) xli(0)||sc m x) line(xti(income in 92 relative to cutoff))"
rd dlogpci954 x if inrange(pci92,-1000,1000), bwidth(`w') `o'

Thanks!

#### Posting Permissions

• You may not post new threads
• You may not post replies
• You may not post attachments
• You may not edit your posts