the 2sls results and graph plot for regression discontinuity design
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)
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
qui rd nonedur Z, mbw(100)
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!!!!
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 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'