Regression Discontinuity

Python · from scratch + rdrobust, rddensity  ·  R · rdrobust  ·  Lee (2008), 6,558 races

Identification from a Threshold

Some of the cleanest causal evidence in observational data comes from arbitrary threshold rules. When treatment switches on the moment a running variable crosses a cutoff — the scholarship at a test score of 80, the seat at 50% of the vote — units landing just above and just below are, in every respect other than treatment, essentially identical. Comparing them is as good as a randomized experiment in a tiny neighbourhood of the threshold.

The identifying assumption is unusually mild. Not unconfoundedness, not an excluded instrument: only that potential outcomes are continuous in the running variable at the cutoff, so any jump there must be the treatment's doing.

Lee (2008) studies the incumbency advantage in 6,558 U.S. House races. The running variable is the Democratic margin of victory, so x>0x > 0 means the Democrat won and the party holds the seat; the outcome is the Democratic vote share in the next election. Whether a race is won by 0.1% or lost by 0.1% turns on weather, turnout noise, the timing of a scandal — so districts either side of zero are comparable, and the jump at x=0x=0 is the causal incumbency advantage:

τRD=limx0E[yx]limx0E[yx]\tau_{RD}=\lim_{x\downarrow 0}\mathbb{E}[y\mid x]-\lim_{x\uparrow 0}\mathbb{E}[y\mid x]

Local Polynomials, and the Bandwidth Nobody Reports

RD is a boundary estimation problem: what is needed is the regression function's value at the cutoff, approached from each side. Fitting a global polynomial to all the data is dangerous, since points far from the cutoff distort the fit and can manufacture a jump — the Gelman–Imbens critique. The modern standard is local linear regression: fit a line each side using only points within a bandwidth hh, weight nearer points more with a triangular kernel, and difference the two intercepts.

The bandwidth is the whole tuning problem — too wide imports curvature from races that were not close, too narrow estimates a boundary from a handful of them. Calonico, Cattaneo & Titiunik (2014) derived the MSE-optimal choice together with a bias-corrected interval that stays valid at that choice, which the naive interval does not. At the CCT bandwidth of 0.136, the from-scratch implementation and rdrobust agree exactly: 0.0637, with a robust 95% interval of [0.0348, 0.0839].

The bandwidth curve is the part usually left out, and it does not say what one would like it to. Across h[0.04,0.40]h \in [0.04, 0.40] the estimate runs from 0.058 to 0.084 — a spread of 41% of the estimate itself — and it is not monotone, dipping near 0.08 before climbing steadily.

bandwidth hestimateraces in window
0.0400.0819483
0.0800.0588972
0.136 CCT optimal0.06371,606
0.2000.07402,265
0.3000.08013,283
0.4000.08424,169

Robust 95% interval at the CCT bandwidth: [0.0348, 0.0839]. The bandwidth spread alone, 0.0259, is 41% of the estimate.

The exact agreement between the from-scratch fit and rdrobust at the CCT bandwidth is the check that matters for the implementation. But the choice of bandwidth moves the answer by more than most published RD standard errors would lead a reader to expect. That is a genuine researcher degree of freedom.

It is also worth noticing that none of this is a surprise — it is the bias–variance trade-off of the previous paragraph arriving on schedule. If widening the window imports curvature and narrowing it starves the fit, then the estimate must move with the bandwidth; a curve that came out flat would be the finding worth investigating. What is anomalous is not the sensitivity but the convention of reporting a single number as though the curve behind it were flat. The honest report is the CCT estimate with its robust interval and the curve beside it, because the number alone hides uncertainty that the design guarantees is there.

Is the Design Valid?

RD's credibility rests on units being unable to precisely control the running variable near the cutoff. If candidates could engineer a win by a hair, just-winners would differ systematically from just-losers — more resources, better organisation — and the as-good-as-random logic collapses. McCrary (2008) supplied the test: manipulation piles units up on the favourable side, producing a discontinuity in the density of the running variable at the cutoff.

For elections it should pass, since no campaign can guarantee winning by exactly 0.1%, and it does. The Cattaneo–Jansson–Ma density test — the modern tuning-free version — gives T=1.435T = 1.435 with p=0.151p = 0.151, so continuity is not rejected. Worth stating precisely what that buys: failing to reject is consistent with a valid design and is not proof of one. A density jump would have condemned the design; its absence merely fails to.

Fuzzy RD Is Instrumental Variables

Often crossing the cutoff does not switch treatment on with certainty — it only raises the probability. A scholarship offer not everyone accepts, eligibility not everyone takes up. The jump in the outcome then understates the effect, because only some units changed treatment, and the fix is exactly the machinery of the instrumental-variables page: use above the cutoff as an instrument.

τFRD=jump in outcome at cjump in treatment probability at c\tau_{FRD}=\frac{\text{jump in outcome at } c}{\text{jump in treatment probability at } c}
quantityvaluereading
true effect3.000known by construction
sharp jump in outcome ITT1.774biased toward zero
jump in treatment probability0.594design is 0.25 → 0.85
fuzzy RD ratio2.986recovers the truth
2SLS, threshold as instrument3.030the same estimator

A simulation with a known effect of 3.0 makes the arithmetic visible. Treatment probability jumps from 0.25 to 0.85, an observed gap of 0.594. The sharp intention-to-treat jump in the outcome is 1.774 — badly biased toward zero, because it credits the whole population with a shift only 59% of them made. Dividing by the treatment jump gives 2.986, and 2SLS with the threshold as instrument gives 3.030.

So fuzzy RD is not analogous to instrumental variables — it is instrumental variables, applied at a boundary, and it inherits the whole LATE apparatus with it. The effect is local twice over: to the compliers — the 59% whose treatment status the threshold actually changed — and to the neighbourhood of the cutoff.

Where this sits

RD's local-randomization reading makes it the observational design closest to the randomized experiments group. The fuzzy variant is literally the 2SLS of Instrumental Variables at a threshold, and inherits its LATE interpretation — which means it also inherits the weak-instrument problem when the treatment jump is small, exactly the pathology the previous page quantified. The next page tests whether the design itself holds up.

Notebooks

Downloads

References