Econometrics & Causal Inference
Sharp and Fuzzy Regression Discontinuity (RDD) Local Jump Formula
Estimate local linear Regression Discontinuity cutoff intercepts INTERCEPT(Y, X - c) from both sides of threshold c and compute the Fuzzy RDD jump ratio tau_FRD.
Never compare raw bin averages across a running-variable cutoff without detrending!
When scholarship, credit-limit, or clinical-statin eligibility triggers at score cutoff c = 70, comparing the raw average of scores [70, 75] against [65, 69] confounds the treatment jump with the natural upward slope of outcome Y on running variable X! Local linear Regression Discontinuity (Hahn, Todd, & Van der Klaauw, 2001) centers X_tilde = X - c and fits separate linear regressions on [c - h, c) and [c, c + h]: their intercepts alpha_+ = INTERCEPT(Y_+, X_+ - c) and alpha_- = INTERCEPT(Y_-, X_- - c) extrapolate cleanly to X = c, giving Sharp RDD jump tau_SRD = alpha_+ - alpha_-!
Check by hand around cutoff c = 70 (H2 = 70) with slope 2.0 on both sides: Left bandwidth X_- = {66, 67, 68, 69} (A2:A5) has outcomes Y_- = {52, 54, 56, 58} (B2:B5) and uptake D_- = {0.10, 0.10, 0.10, 0.10} (C2:C5); Right bandwidth X_+ = {70, 71, 72, 73} (A6:A9) has outcomes Y_+ = {66, 68, 70, 72} (B6:B9) and uptake D_+ = {0.90, 0.90, 0.90, 0.90} (C6:C9). Naive difference of means is 69 - 55 = +14.00 (overstated by +8.00 slope bias!), whereas centered left intercept at X = 70 is alpha_- = 60.00 and right intercept is alpha_+ = 66.00 -> Sharp jump tau_SRD = +6.00, and Fuzzy RDD scales by uptake jump (0.90 - 0.10 = 0.80) to tau_FRD = 6.00 / 0.80 = +7.5000!
| RDD Estimator at Cutoff c = 70 | Formula Expression | Sample Output |
|---|---|---|
| Naive Bin-Mean Difference (Bug) | AVERAGE(Y_+) - AVERAGE(Y_-) | +14.0000 (Slope-biased by +8.00!) |
| Left & Right Cutoff Limits | INTERCEPT(Y_-, X_- - c) vs INTERCEPT(Y_+, X_+ - c) | 60.0000 vs 66.0000 |
| Sharp RDD Intent Jump tau_SRD | alpha_+ - alpha_- | +6.0000 |
| Fuzzy RDD Local Wald Jump tau_FRD | (alpha_{Y,+} - alpha_{Y,-}) / (alpha_{D,+} - alpha_{D,-}) | +7.5000 (Jump_D = 0.80) |
Local Linear Sharp RDD Cutoff Discontinuity tau_SRD Formula
Center running variable X_i - c in column D so INTERCEPT(B6:B9, D6:D9) minus INTERCEPT(B2:B5, D2:D5) evaluates the exact jump at X = c.
=ROUND(INTERCEPT(B6:B9, D6:D9) - INTERCEPT(B2:B5, D2:D5), 4)Fuzzy RDD Local Wald Ratio tau_FRD Formula
Divide the local linear outcome jump by the local linear treatment-probability jump at X = c. Verify that under deterministic Sharp assignment (set C2:C5 = 0 and C6:C9 = 1), Jump_D = 1.0000 and Fuzzy RDD equals Sharp RDD (+6.0000) identically!
=LET(jmp_y, INTERCEPT(B6:B9, D6:D9) - INTERCEPT(B2:B5, D2:D5), jmp_d, INTERCEPT(C6:C9, D6:D9) - INTERCEPT(C2:C5, D2:D5), IF(jmp_d <= 0.05, "No Cutoff Uptake Jump", ROUND(jmp_y / jmp_d, 4)))Try the example
Use the original values or change them to test your understanding.