Dear all,

I have a question and I would like to ask for advice. I am trying to evaluate the impact of a scholarship on three variables. The rules are the following: If you score above 600 in a test and enroll in an education major, you get the scholarship. Since students were selected with less than 600 and some students did not apply for it in advance and still enrolled, I do not have perfect compliance and I would have to use a Fuzzy RDD.

I have the student id, the score in the test (this is the running variable, psu), and whether the student enrolled in an eligible program or not (education), and whether the student was awarded the scholarship (variable bvp).

My problem comes because the first variable I want to analyze (the take up of the scholarship itself, so if the binary education is equal to one), I do not know how to incorporate the non-compliance. I want to find out if more people were enrolling in education majors.
For the Sharp estimation (this is my benchmark), I used the rdrobust command

rdrobust education psu_score, c(600) p(1) kernel(triangular) bwselect(mserd) scaleregul(1) covs($covariates)

And I get an estimate of 0.0321.

If I include the option fuzzy(bvp), I have an issue because in the first stage of the RDD (the eligibility rules), only 11% of all students who took the test enrolled in an eligible major and scored above 600 (other students enrolled in engineering, arts, etc. 14% enrolled in education). But I am only interested in those who scored above the 600 mark and chose an eligible major. But around 80% of students who scored above 600 and enrolled in an education major were awarded the scholarship. So for a fuzzy RDD I would expect 0.0321/0.8 and not 0.0321/0.11. But I get the latter one.
If I run
reg bvp d600 psu_score if education==1, robust

where d600 is a dummy if above the 600-mark, I get a coefficient of 0.8 for d600.


What I have done for the other dependent variables is that I restrict the sample to education major only. For instance, for the persistence outcome (whether they enrolled in a second-year or not)

rdrobust persistence psu_score if education==1, kernel(triangular) p(1) bwselect(mserd) c(600)

But I can't do this because education would be a restriction in the first stage and the outcome in the second stage.

And I have the same problem with

rdrandinf education psu_score, wl(598) wr(602) seed(50) c(600)


I hope this is somehow clear and I would appreciate any kind of help.