ML Systems Lab Open interactive version →
Advanced 30 min read RDDregression discontinuitybandwidthlocal randomisationsharp RDD

Regression Discontinuity Design

Sharp and fuzzy RDD, bandwidth selection, manipulation test, local randomisation

A scholarship is awarded to students who score ≥ 70 on an entrance exam. You want to know if the scholarship improves graduation rates. You cannot randomize scholarship receipt — it is rule-based. But students just above and just below 70 are essentially identical in every way except scholarship receipt. A student scoring 69 and one scoring 71 have the same underlying ability, preparation, and motivation — they differ only in their eligibility. Comparing outcomes for students just above and just below the threshold identifies the causal effect of the scholarship without measuring any confounders, because near the cutoff the assignment is locally as-good-as-random.

RDD exploits a threshold rule in treatment assignment. The running variable (exam score) determines treatment. The key identifying assumption: no other variable changes discontinuously at the cutoff. Any discontinuity in the outcome at the cutoff is caused by the treatment, because nothing else jumped there.

Sharp RDD: exactly at the cutoff, treatment probability jumps from 0 to 1. Local linear regression fits separately on each side of the cutoff within a bandwidth h. The treatment effect equals the difference in the regression line values at the cutoff — the discontinuity. Fuzzy RDD: at the cutoff, treatment probability jumps from p to p′ but not all the way. Use the threshold indicator as an instrument (IV): the estimate is the ratio of the jump in the outcome regression at the cutoff to the jump in the treatment-probability regression at the cutoff — the same difference-in-fits computation as Sharp RDD, taken twice (once for the outcome, once for treatment probability) and divided. This Wald-style ratio estimates the LATE for compliers at the cutoff.

Bandwidth selection is the central technical tradeoff. Too narrow: too few observations, high variance. Too wide: units far from the cutoff are not locally comparable, high bias. The Calonico-Cattaneo-Titiunik (CCT) data-driven selector minimizes MSE. Report estimates at multiple bandwidths — a result that changes dramatically with bandwidth choice is not robust.

What RDD requires that must always be checked: units cannot precisely manipulate which side of the cutoff they land on. If students can adjust their score to land just above 70, the units just above are not comparable to units just below — they are systematically different in their ability or motivation to game the system. Always test for bunching in the running variable distribution using the McCrary density test. Significant bunching at or just above the cutoff means the local randomization assumption is violated.

Key points

Takeaway

RDD achieves high local credibility without measuring confounders — but only near the cutoff, only when units did not manipulate their running variable, and only if nothing else changes discontinuously at the same threshold.

Recap

Check your understanding

Q1. A university gives scholarships to students who score above 70 on entrance exam. You want to estimate the effect on graduation rates using RDD. Select the two genuinely required validity checks.

Q2. You run sharp RDD and get significant effect with bandwidth ±10. With ±5 the effect is larger; with ±15 it shrinks to near zero. What does this pattern tell you?

Q3. A government policy provides business subsidies to firms with revenue below £500k. McCrary test shows significant bunching just below £500k. Can you still use RDD?

Try it interactively

ML Systems Lab is a free interview-prep platform for ML engineers — work through the full interactive module, quizzes, and drills.

Open ML Systems Lab →