Regression Discontinuity Design – Fuzzy
When crossing the cutoff changes the probability of treatment (not a guarantee), use fuzzy RDD — essentially IV at the cutoff.
One-Line Implementation
rdrobust(y = df$y, x = df$x, c = 0, fuzzy = df$treatment)rdrobust y x, c(0) fuzzy(treatment)rdrobust(y=df['y'], x=df['x'], c=0, fuzzy=df['treatment'])Download Full Analysis Code
Complete scripts with diagnostics, robustness checks, and result export.
Motivating Example: Maimonides' Rule and Class Size
The 12th-century scholar Maimonides wrote that a class should not exceed 40 students. Israel adopted this as policy: when enrollment in a grade exceeds 40, the school must split into two classes. At 41 students, average class size drops from 41 to about 20.5.
Angrist and Lavy (1999) exploited this rule to estimate the effect of class size on student achievement. But here is the complication: the rule creates a discontinuity in expected class size, not a perfect deterministic assignment. Some schools do not comply perfectly — they might get exemptions, combine classes, or handle the split differently. Crossing the 40-student threshold changes the probability of being in a small class, but does not guarantee it.
This setting is a fuzzy RDD. The running variable (enrollment) crosses a cutoff (40), and the probability of treatment (small class) jumps — but not from 0 to 1. It jumps from, say, 0.1 to 0.7. To handle this non-compliance, you use the cutoff as an instrument for actual treatment.
AOverview
Sharp RDD (Quick Review)
In a sharp RDD, treatment is a deterministic function of the running variable:
Everyone above the cutoff is treated; everyone below is not. The treatment effect is identified by the jump in the outcome at .
Fuzzy RDD
In a fuzzy RDD, the cutoff changes the probability of treatment, but not deterministically:
There is a jump in the first stage (the probability of treatment) at the cutoff, but it is less than one. Some units above the cutoff do not receive treatment, and some below do.
The Key Insight: Fuzzy RDD = IV at the Cutoff
The fuzzy RDD estimator is the ratio of two jumps:
This ratio is exactly the Wald/IV estimator (the same logic underlying instrumental variables estimation), with the instrument being the indicator for crossing the cutoff: .
Common Confusions
BIdentification
The Three Requirements
Fuzzy RDD requires:
- Relevance — The cutoff causes a jump in the probability of treatment. This jump is the first stage, and it must be meaningfully large.
- Continuity of potential outcomes — and are continuous at . Informally: absent the treatment jump, the outcome would not jump at the cutoff.
- No manipulation — Units cannot precisely control the running variable to sort above or below the cutoff.
Monotonicity
Additionally, fuzzy RDD requires a monotonicity assumption: crossing the cutoff can only increase (or only decrease) the probability of treatment for any individual. There are no "defiers" — units for whom crossing the cutoff would reduce their treatment probability.
Formal Estimand
The fuzzy RDD identifies:
This estimand is the treatment effect for the subpopulation of compliers — those whose treatment status would change if they moved from just below to just above the cutoff — evaluated right at the cutoff.
CVisual Intuition
Imagine two graphs stacked vertically. The top graph shows the outcome (test scores) as a function of the running variable (enrollment). You see a cloud of data points with a fitted curve on each side of the cutoff. At the cutoff, the outcome might show a jump (the reduced form).
The bottom graph shows the treatment (actual class size) as a function of enrollment. Here, you clearly see a jump at 40: the probability of being in a small class increases sharply. This jump is the first stage.
The fuzzy RDD estimate is the ratio of the top jump to the bottom jump. If test scores jump by 3 points and the probability of small-class treatment jumps by 0.6, the fuzzy RDD estimate is points — the causal effect of small classes for compliers at the cutoff.
If the bottom graph shows no jump (flat first stage), you have no instrument and cannot identify the treatment effect. The strength of the first stage is critical.
DMathematical Derivation
Don't worry about the notation yet — here's what this means in words: The fuzzy RDD estimate divides the jump in the outcome by the jump in treatment probability at the cutoff, just like an IV Wald estimator applied locally.
Define the instrument . The local Wald estimator is:
where:
In practice, both limits are estimated using local polynomial regressions within a bandwidth of the cutoff. The most common approach is local linear regression, weighted by a kernel function.
Implementation via 2SLS within the bandwidth:
For observations within bandwidth of , estimate:
First stage:
Second stage:
The coefficient is the fuzzy RDD estimate. The slope interaction uses the exogenous cutoff indicator rather than , because would be a second endogenous regressor requiring its own first stage. The coefficient from the first stage is the jump in treatment probability.
Bandwidth selection: Imbens and Kalyanaraman (2012) and Calonico et al. (2014) provide data-driven bandwidth selectors that balance bias and variance.
EImplementation
# Requires: rdrobust, rddensity
library(rdrobust)
library(rddensity)
# --- Step 1: Fuzzy RDD Estimation ---
# rdrobust() with fuzzy= estimates the LATE at the cutoff using
# a local IV approach: crossing the cutoff instruments treatment take-up.
# y = outcome, x = running variable, c = cutoff value.
# fuzzy = the endogenous treatment variable (not everyone complies).
frd <- rdrobust(y = df$test_score, x = df$enrollment, c = 40,
fuzzy = df$small_class)
# Output: conventional, bias-corrected, and robust estimates + CIs.
# The estimate is the LATE for compliers at the cutoff.
summary(frd)
# --- Step 2: First-Stage Discontinuity ---
# Check that the treatment probability jumps at the cutoff.
# A large, significant jump confirms the instrument (cutoff) is strong.
# A weak first stage leads to imprecise and potentially biased estimates.
first_stage <- rdrobust(y = df$small_class, x = df$enrollment, c = 40)
summary(first_stage)
# --- Step 3: RD Plot ---
# Visualize the discontinuity with binned scatter plots on each side.
# nbins = c(20, 20) uses 20 bins on each side of the cutoff.
# Look for a visible jump in the outcome at c = 40.
rdplot(y = df$test_score, x = df$enrollment, c = 40, nbins = c(20, 20))
# --- Step 4: Manipulation Test ---
# McCrary density test checks for sorting around the cutoff.
# If agents can manipulate enrollment to cross the threshold,
# the RDD assumption (local randomization) is violated.
# A significant result (low p-value) is evidence of manipulation.
manip <- rddensity(X = df$enrollment, c = 40)
summary(manip)FDiagnostics
First-Stage Strength
The first stage must show a clear, statistically significant jump in treatment probability at the cutoff. Report:
- The size of the jump (coefficient on the cutoff indicator in the first-stage regression)
- The effective F-statistic
- A plot of treatment probability against the running variable
If the first stage is weak (small jump), the fuzzy RDD estimate will be imprecise and potentially biased, just like weak-instrument IV. Sensitivity analysis across different bandwidths can help assess the robustness of the result.
Manipulation Test
Use the McCrary (2008) density test or the Cattaneo et al. (2020) test to check whether units bunch on one side of the cutoff. If the density is discontinuous at , units may be manipulating the running variable.
Covariate Balance at the Cutoff
Pre-determined covariates should not jump at the cutoff. Run the RDD specification replacing the outcome with each covariate. Significant jumps suggest either manipulation or a violation of the continuity assumption.
Bandwidth Sensitivity
Show that results are robust to different bandwidth choices: the optimal bandwidth, half the bandwidth, and twice the bandwidth. The rdrobust package produces bias-corrected estimates that are less sensitive to bandwidth choice.
Interpreting Your Results
- The fuzzy RDD estimate is the LATE for compliers at the cutoff — the causal effect of treatment for units whose treatment status changes due to the cutoff rule.
- This estimate is not the average treatment effect (ATE) for the full population. Compliers at the cutoff may be a special group.
- The reduced form (the jump in outcome at the cutoff, without dividing by the first stage) is the ITT analog for RDD. It is generally worth reporting.
- If the first-stage jump is large (close to 1), the fuzzy RDD approaches the sharp RDD, and the LATE approaches a local ATE.
- It is recommended to present the results graphically. The RD plot is often the most compelling piece of evidence — readers should see the discontinuity.
GWhat Can Go Wrong
| Problem | What It Does | How to Fix It |
|---|---|---|
| Weak first stage | Imprecise and biased estimate | Report effective F-stat; consider whether the design is viable |
| Manipulation of running variable | Units sort above/below cutoff, invalidating the design | McCrary/density test; covariate balance checks |
| Using sharp RDD when fuzzy is needed | Understates the treatment effect (gives ITT, not LATE) | Check for non-compliance; use fuzzy specification |
| Global polynomial | High-order polynomials produce misleading estimates at the cutoff | Use local linear regression with data-driven bandwidth |
| Extrapolating away from cutoff | Estimates are only valid at the cutoff | Report the estimate as local; discuss external validity |
| Donut hole needed | Observations exactly at the cutoff are unusual | Try excluding observations within a small window of the cutoff |
Weak First Stage at the Cutoff
The cutoff induces a large jump in treatment probability (from 0.15 to 0.75)
Fuzzy RDD estimate = 4.8 (SE = 1.2). First-stage jump = 0.60, effective F = 42. Precise and reliable estimate of the LATE for compliers at the cutoff.
Manipulation of the Running Variable
Students cannot precisely control their entrance exam scores near the scholarship cutoff
McCrary density test p = 0.43. Smooth density across the cutoff. Covariate balance tests show no jumps. The quasi-random assignment near the cutoff is credible.
Using a Global High-Order Polynomial Instead of Local Regression
Local linear regression within an MSE-optimal bandwidth of 5 points around the cutoff
Fuzzy RDD estimate = 5.2 (robust bias-corrected SE = 1.8). Estimate is driven by observations close to the cutoff where the design is most credible.
As (Gelman & Imbens, 2019) argue, high-order polynomial regressions in RDD are unreliable and should generally be avoided.
In Angrist and Lavy's class size study, suppose the reduced form (jump in test scores at enrollment = 40) is 2.5 points, and the first stage (jump in the probability of having a small class) is 0.50. What is the fuzzy RDD estimate, and what does it represent?
HPractice
A scholarship is awarded to students scoring above 80 on an entrance exam. However, some students above 80 decline the scholarship, and some below 80 receive it through appeals. A researcher runs a standard (sharp) RDD, comparing average outcomes just above and below 80. What does this estimate?
In a fuzzy RDD, the first stage shows that crossing the cutoff increases the probability of treatment from 0.20 to 0.28 — a jump of only 0.08. The effective F-statistic is 4.2. What should you be concerned about?
A researcher studies the effect of remedial math classes on college GPA. Students scoring below 60 on a placement test are assigned to remediation, but some below 60 skip it and some above 60 voluntarily enroll. She estimates the fuzzy RDD and finds an effect of 0.4 GPA points for compliers at the cutoff. Can she generalize this to all students?
A researcher fits a fourth-degree global polynomial on both sides of the cutoff to estimate a fuzzy RDD. A reviewer insists she should use local linear regression with data-driven bandwidth instead. Why does the reviewer prefer this approach?
Fuzzy RDD: Medicaid Eligibility and Health Outcomes
A health economist studies whether Medicaid enrollment improves health outcomes. Medicaid eligibility is determined by an income threshold: households earning below 138% of the federal poverty level (FPL) are eligible. However, take-up is imperfect — some eligible households do not enroll, and some ineligible households obtain coverage through other programs. The researcher uses income relative to the 138% FPL cutoff as the running variable.
Read the analysis below carefully and identify the errors.
A researcher studies whether receiving a scholarship (given to students scoring above 80 on an entrance exam) affects college completion. They note that some students above 80 do not accept the scholarship and some below 80 receive it through appeals. They run: reg completion `score_above_80`, vce(robust), where `score_above_80` = 1 if entrance score >= 80. They report: 'Crossing the 80-point threshold increases college completion by 12 percentage points (p < 0.01).'
Select all errors you can find:
Read the paper summary below and write a brief referee critique (2-3 sentences) of the identification strategy.
Paper Summary
A study examines whether receiving need-based financial aid improves college graduation rates. Students with family income below $50,000 are eligible for a grant, but take-up is imperfect: only about 65% of eligible students actually receive the aid (some fail to complete paperwork), and about 10% of ineligible students receive aid through appeals. The authors use a fuzzy RDD with family income as the running variable and the $50,000 threshold as the cutoff. They report a fuzzy RDD estimate that receiving aid increases 6-year graduation rates by 18 percentage points.
Key Table
| Variable | Coefficient | Robust SE | p-value |
|---|---|---|---|
| Aid received (fuzzy RDD) | 0.180 | 0.065 | 0.006 |
| First-stage jump | 0.550 | ||
| Effective F-statistic | 31.2 | ||
| Bandwidth (MSE-optimal) | $8,200 | ||
| McCrary density test p | 0.03 | ||
| N (within bandwidth) | 4,200 |
Authors' Identification Claim
The $50,000 income threshold creates a quasi-random assignment of financial aid eligibility near the cutoff. The fuzzy RDD accounts for imperfect compliance by instrumenting actual aid receipt with eligibility status.
ISwap-In: When to Use Something Else
- Sharp RDD: When compliance at the cutoff is perfect — every unit above the threshold receives treatment, every unit below does not.
- IV / 2SLS: When the source of exogenous variation is not a running-variable threshold but a discrete instrument. Fuzzy RDD is a special case of IV where the instrument is the indicator for crossing the cutoff.
- Difference-in-differences: When there is temporal variation in treatment adoption rather than a threshold-based assignment rule.
- Matching: When there is no threshold-based assignment but rich pre-treatment covariates support a selection-on-observables strategy.
JReviewer Checklist
Critical Reading Checklist
Paper Library
Foundational (8)
Battistin, E., & Rettore, E. (2008). Ineligibles and Eligible Non-Participants as a Double Comparison Group in Regression-Discontinuity Designs.
Battistin and Rettore propose using ineligible units and eligible non-participants as a double comparison group in regression-discontinuity designs. This specification-testing strategy allows researchers to assess the validity of RDD assumptions by checking whether the two comparison groups yield consistent estimates, strengthening the credibility of RDD-based inference.
Calonico, S., Cattaneo, M. D., & Titiunik, R. (2014). Robust Nonparametric Confidence Intervals for Regression-Discontinuity Designs.
Calonico, Cattaneo, and Titiunik develop bias-corrected confidence intervals for RDD that address the problem of conventional confidence intervals being invalid when using optimal bandwidth selectors. Their rdrobust software package has become the standard tool for implementing RDD in practice.
Cattaneo, M. D., Jansson, M., & Ma, X. (2020). Simple Local Polynomial Density Estimators.
Cattaneo, Jansson, and Ma propose a local polynomial density estimator for manipulation testing in regression discontinuity designs. Implemented in the rddensity package, it provides a modern alternative to the McCrary (2008) density test with better boundary properties.
Dong, Y., & Lewbel, A. (2015). Identifying the Effect of Changing the Policy Threshold in Regression Discontinuity Models.
Dong and Lewbel show that the derivative of the RD treatment effect with respect to the running variable at the cutoff is identified. Under a local policy-invariance interpretation, this derivative can be used to evaluate counterfactual policies that shift the eligibility threshold, broadening the policy relevance of RDD beyond the effect at the existing cutoff.
Hahn, J., Todd, P., & Van der Klaauw, W. (2001). Identification and Estimation of Treatment Effects with a Regression-Discontinuity Design.
Hahn, Todd, and Van der Klaauw provide the formal econometric framework for both sharp and fuzzy regression discontinuity designs. For the fuzzy case, they show that the treatment effect can be identified as the ratio of the discontinuity in the outcome to the discontinuity in the treatment probability, analogous to a Wald estimator.
Imbens, G. W., & Lemieux, T. (2008). Regression Discontinuity Designs: A Guide to Practice.
Imbens and Lemieux provide a comprehensive practical guide to implementing RDD, covering bandwidth selection, functional form, and graphical analysis. Their treatment of fuzzy RDD as a local IV estimator clarifies the interpretation and implementation for applied researchers.
Imbens, G., & Kalyanaraman, K. (2012). Optimal Bandwidth Choice for the Regression Discontinuity Estimator.
Imbens and Kalyanaraman derive the asymptotically optimal bandwidth for the local linear regression discontinuity estimator and propose a simple data-driven bandwidth selector. The IK bandwidth becomes the standard choice before the Calonico-Cattaneo-Titiunik (2014) refinement.
McCrary, J. (2008). Manipulation of the Running Variable in the Regression Discontinuity Design: A Density Test.
McCrary develops the standard test for whether agents are manipulating the running variable to sort around the cutoff. If the density of the running variable shows a discontinuity at the cutoff, the RDD is compromised. This density test is now a routine validity check in all RDD papers.
Application (3)
Angrist, J. D., & Lavy, V. (1999). Using Maimonides' Rule to Estimate the Effect of Class Size on Scholastic Achievement.
Angrist and Lavy exploit a rule that caps class sizes at 40 students, creating discontinuities in class size as enrollment crosses multiples of 40. The imperfect compliance with the rule makes this a fuzzy RDD. This paper is one of the most widely taught examples of the fuzzy RDD approach.
Cunat, V., Gine, M., & Guadalupe, M. (2012). The Vote Is Cast: The Effect of Corporate Governance on Shareholder Value.
Cunat, Gine, and Guadalupe use a fuzzy RDD around the majority threshold in shareholder governance proposals to estimate the causal effect of governance provisions on firm value. This paper is a leading example of fuzzy RDD applied to corporate governance and finance.
Van der Klaauw, W. (2002). Estimating the Effect of Financial Aid Offers on College Enrollment: A Regression-Discontinuity Approach.
Van der Klaauw applies a fuzzy RDD to study how financial aid offers affect college enrollment decisions, exploiting discontinuities in an aid assignment rule where eligibility changes at GPA thresholds but compliance is imperfect. This paper is one of the earliest and most influential applications of fuzzy RDD.
Survey (4)
Angrist, J. D., & Pischke, J.-S. (2009). Mostly Harmless Econometrics: An Empiricist's Companion.
Angrist and Pischke write one of the most influential modern textbooks on applied econometrics, organizing the field around a design-based approach to causal inference. The book provides essential treatments of instrumental variables, difference-in-differences, and regression discontinuity, each grounded in the potential outcomes framework. It remains the standard reference for graduate students learning to evaluate and implement identification strategies.
Cattaneo, M. D., Idrobo, N., & Titiunik, R. (2020). A Practical Introduction to Regression Discontinuity Designs: Foundations.
Cattaneo, Idrobo, and Titiunik provide a practical and accessible guide to implementing regression discontinuity designs, covering both sharp and fuzzy cases with worked examples and code. Part of the Cambridge Elements series, it provides step-by-step guidance on bandwidth selection, estimation, and inference using the rdrobust toolkit.
Cunningham, S. (2021). Causal Inference: The Mixtape.
Cunningham provides an accessible textbook with an excellent DiD chapter that walks through the intuition, the math, and the code (in Stata and R). Freely available online at mixtape.scunning.com, it is a valuable companion for students who want worked examples alongside formal treatment.
Lee, D. S., & Lemieux, T. (2010). Regression Discontinuity Designs in Economics.
Lee and Lemieux write the standard survey of RDD methods in economics, covering both sharp and fuzzy designs, validity tests, and extensions. This paper is the standard reference for understanding the econometric theory and practical implementation of RDD.