Sharp vs Fuzzy RDD

결정론적 cutoff 와 확률적 cutoff — IV 와의 연결

Sharp RDD vs Fuzzy RDD 의 깊은 비교. (1) Sharp 의 결정론적 처치 vs Fuzzy 의 확률적 처치, (2) Hahn, Todd, Van der Klaauw (2001) 의 식별 정리, (3) Fuzzy RDD = IV special case, LATE 추정, (4) Compliance type — complier, always-taker, never-taker, defier, (5) Wald estimator 와 RDD 의 연결, (6) Card, Dobkin, Maestas (2009) 의 Medicare 사례, (7) 시뮬레이션.

Experimentation
Causal Inference
저자

Kwangmin Kim

공개

2026년 05월 09일

출처

이 글은 사전지식 기반 (교재 미확인 — agent 사전학습 기반). 핵심 인용 — Hahn, Todd, Van der Klaauw (2001), Imbens & Lemieux (2008), Angrist & Pischke (2009), Card, Dobkin, Maestas (2009).

이 글은 J-RDD 시리즈의 두 번째 글. Sharp vs Fuzzy RDD 의 구분과 Fuzzy = IV 의 연결을 다룬다.

1 진입 직관 — “엄격한 cutoff vs 느슨한 cutoff”

1.1 엄격 cutoff

시험 60 점 이상 합격, 59 점 불합격. 예외 없음. 결정론적.

1.2 느슨 cutoff

60 점 이상 우대 가능성 높지만 자동 아님. 별도 심사·면접·기타 자격 추가. 60 점 미만 일부 합격 (다른 경로). 확률적.

핵심 질문: 두 case 의 처리 방법은? — Sharp RDD vs Fuzzy RDD.

2 Sharp RDD — 결정론적

2.1 정의

\(X \geq c\) 이면 반드시 처치 받음. \(X < c\) 이면 반드시 처치 안 받음.

\[ A_i = \mathbf{1}\{X_i \geq c\} \]

2.2 추정량

\[ \tau_{Sharp} = \lim_{x \downarrow c} \mathbb{E}[Y | X = x] - \lim_{x \uparrow c} \mathbb{E}[Y | X = x] \]

Cutoff 양쪽의 outcome 평균 차이.

2.3 해석

Cutoff 의 ATTcutoff 근처 사람들의 처치 효과.

2.4 가정

Continuity: 다른 모든 covariate 의 distribution 이 cutoff 에서 연속. No manipulation: cutoff 양쪽으로 조작 불가능.

2.5 사례

사례: 재선거 (incumbent). Lee (2008) — 50% 득표 cutoff. 정확히 50% 위면 반드시 당선.

3 Fuzzy RDD — 확률적

3.1 정의

\(X \geq c\) 이면 처치 받을 확률jump — 그러나 100% 아님:

\[ P(A=1 | X = c^+) > P(A=1 | X = c^-) \]

그러나 \(P(A=1 | X = c^+) < 1\) 일 수도, \(P(A=1 | X = c^-) > 0\) 일 수도.

3.2 사례

Medicare 65 세 cutoff. 65 세 되는 순간 자격 — 그러나 일부 65 세 미만도 장애 등으로 자격, 일부 65 세 이상도 가입 안 함.

3.3 추정량 — Wald estimator

\[ \tau_{Fuzzy} = \frac{\lim_{x \downarrow c} \mathbb{E}[Y | X=x] - \lim_{x \uparrow c} \mathbb{E}[Y | X=x]}{\lim_{x \downarrow c} \mathbb{E}[A | X=x] - \lim_{x \uparrow c} \mathbb{E}[A | X=x]} \]

분자: outcome 의 cutoff jump 분모: 처치 확률의 cutoff jump

3.4 해석

Cutoff 에서의 complier 의 LATE (Local Average Treatment Effect).

Complier: cutoff 에 의해 처치 받는 사람 (위면 받음, 아래면 안 받음).

4 Fuzzy RDD = IV Special Case

4.1 IV 와의 연결

Fuzzy RDD 의 cutoff 가 instrument:

  • Z (instrument): \(Z = \mathbf{1}\{X \geq c\}\) — cutoff 통과 여부
  • A (treatment): 실제 처치
  • Y (outcome)

4.2 가정 (LATE 식별)

  1. Relevance: \(Z\)\(A\) 에 영향 (cutoff 통과 시 처치 확률 높음)
  2. Exclusion: \(Z\)\(A\) 외 다른 경로로 \(Y\) 영향 없음 (cutoff 자체는 직접 outcome 영향 없음)
  3. Monotonicity: cutoff 가 누구도 처치 받지 않게 만들지 않음 (no defiers)
  4. Continuity: 다른 변수 cutoff 에서 연속

4.3 LATE

\(\tau_{Fuzzy}\) = complier 의 average treatment effectcutoff 가 처치를 결정한 사람들 만에 대한 효과.

Always-taker (cutoff 와 무관하게 처치 받는 사람) 와 never-taker (cutoff 와 무관하게 처치 안 받는 사람) 의 효과는 추정 불가능.

5 Compliance Type — 4 가지

Type \(A(Z=0)\) \(A(Z=1)\) 의미
Complier 0 1 cutoff 가 처치 결정
Always-taker 1 1 항상 처치
Never-taker 0 0 항상 처치 안 받음
Defier 1 0 반대로 행동 (배제)

5.1 IV 가정

Monotonicity: defier 없음 — Imbens-Angrist (1994).

5.2 Fuzzy RDD 의 효과

Complier 만의 Local ATE. Always-takerNever-taker 는 추정 안 됨.

따라서 모집단 일반화 시 신중. Complier characteristic 명시 필요.

6 Hahn, Todd, Van der Klaauw (2001)

6.1 의의

RDD 의 현대 정통 — Sharp 와 Fuzzy 의 식별 가정 명료화.

6.2 Sharp RDD 식별

Continuity 가정: \(\mathbb{E}[Y(0) | X = x]\)\(\mathbb{E}[Y(1) | X = x]\) 가 cutoff 에서 연속.

그러면 cutoff 의 jump 는 처치 효과 (다른 confounding 없음).

6.3 Fuzzy RDD 식별

Sharp 가정 + IV 조건 (relevance, exclusion, monotonicity).

Wald estimator 가 complier 의 LATE 추정.

6.4 영향

이후 RDD 연구의 기초. rdrobust 등 표준 패키지의 이론 토대.

7 Card, Dobkin, Maestas (2009) — Medicare 사례

7.1 시나리오

65 세 cutoff 에서 Medicare 자격. 고령 의료 서비스 사용·결과 효과.

7.2 Fuzzy RDD

65 세 되는 순간 자격 — 그러나:

  • 일부 65 세 미만 장애인 이미 자격
  • 일부 65 세 이상 미가입

7.3 분석

\(X\) = 나이, \(c\) = 65 세, \(A\) = Medicare 가입, \(Y\) = 의료 사용량/지출/사망률.

7.4 결과

의료 사용량 jump, 비용 분배 변화. 사망률 에는 통계적 유의 효과 없음그러나 추정 power 부족. 이후 후속 연구 (Card et al. 2008 사망률 분석) 으로 외상·사망 일부 감소.

7.5 의의

Fuzzy RDD 의 대표 응용. Medicare 의 경제·건강 영향 의 standard reference.

8 Wald Estimator 와 RDD 의 연결

8.1 Wald (전통 IV)

\[ \hat{\tau}_{Wald} = \frac{\hat{\mathbb{E}}[Y | Z=1] - \hat{\mathbb{E}}[Y | Z=0]}{\hat{\mathbb{E}}[A | Z=1] - \hat{\mathbb{E}}[A | Z=0]} \]

8.2 Fuzzy RDD

\(Z = \mathbf{1}\{X \geq c\}\)local Wald — cutoff 근처 sample 만 사용:

\[ \hat{\tau}_{Fuzzy} = \frac{\bar{Y}_{X=c^+} - \bar{Y}_{X=c^-}}{\bar{A}_{X=c^+} - \bar{A}_{X=c^-}} \]

8.3 Local 2SLS

Two-Stage Least Squares with \(Z\) as instrument, cutoff 근처 sample 만.

1st stage: \(A \sim Z + (X - c)\) (좌우 별도) 2nd stage: \(Y \sim \hat{A} + (X - c)\)

9 시뮬레이션 — Fuzzy RDD

import numpy as np

np.random.seed(42)

# 시나리오: 나이 65 세 cutoff, Medicare 가입 (확률적)
n = 5000
age = np.random.uniform(55, 75, n)
cutoff = 65

# Compliance: 65 이상이면 가입 확률 80%, 미만이면 10% (장애 등)
prob_treat = np.where(age >= cutoff, 0.8, 0.1)
A = np.random.binomial(1, prob_treat)

# Outcome (의료 사용량): 나이 + 처치 효과 5
true_effect = 5.0
Y = 20 + 0.5 * age + true_effect * A + np.random.normal(0, 3, n)

# Z = cutoff 통과 여부
Z = (age >= cutoff).astype(int)

# Bandwidth
h = 5
mask = np.abs(age - cutoff) <= h
print(f"[Fuzzy RDD 시뮬레이션]\n")
print(f"진짜 효과: {true_effect}")
print(f"\nBandwidth h = {h}, n = {mask.sum()}")

# Wald estimator (단순)
left = mask & (age < cutoff)
right = mask & (age >= cutoff)

Y_left, Y_right = Y[left].mean(), Y[right].mean()
A_left, A_right = A[left].mean(), A[right].mean()

print(f"\n[Outcome 차이]")
print(f"  Y left: {Y_left:.2f}, Y right: {Y_right:.2f}")
print(f"  Outcome jump: {Y_right - Y_left:.2f}")

print(f"\n[Treatment 확률 차이]")
print(f"  A left: {A_left:.2f}, A right: {A_right:.2f}")
print(f"  Treatment jump: {A_right - A_left:.2f}")

wald = (Y_right - Y_left) / (A_right - A_left)
print(f"\nFuzzy RDD (Wald): {wald:.2f}")
print(f"  → 진짜 효과 {true_effect} 와 비교")

# Sharp RDD (잘못된 적용 — Fuzzy 인데 Sharp 로 추정)
sharp_naive = Y_right - Y_left
print(f"\n[잘못된 적용 — Sharp RDD]")
print(f"  Sharp estimate: {sharp_naive:.2f}")
print(f"  → 진짜 효과 {true_effect} 보다 작음 — 처치 확률 jump 가 1 아니어서")

10 결론

Sharp RDD 는 결정론적, Fuzzy RDD 는 확률적. Fuzzy = IV 의 special case — complier 의 LATE 추정. Wald estimator 가 표준 추정량. Hahn-Todd-Van der Klaauw 의 식별 정리.

핵심 메시지:

  1. Sharp: \(A = \mathbf{1}\{X \geq c\}\), ATT at cutoff
  2. Fuzzy: 확률적, \(Z = \mathbf{1}\{X \geq c\}\) as instrument
  3. Fuzzy = IV special case: LATE for compliers
  4. Compliance type: complier, always-taker, never-taker, defier (배제)
  5. Wald estimator: outcome jump / treatment jump
  6. HTV 2001: 식별 정리 정통
  7. CDM 2009: Medicare 사례 — 표준 응용

다음 글: Local Linear Regression + Bandwidth.

11 관련 주제

선행 지식

Phase J 후속 글

12 참고문헌

  • Hahn, J., Todd, P., Van der Klaauw, W. (2001). Identification and estimation of treatment effects with a regression-discontinuity design. Econometrica 69, 201-209.
  • Imbens, G. W. & Lemieux, T. (2008). Regression discontinuity designs: A guide to practice. J. Econometrics 142, 615-635.
  • Imbens, G. W. & Angrist, J. D. (1994). Identification and estimation of local average treatment effects. Econometrica 62, 467-475.
  • Card, D., Dobkin, C., Maestas, N. (2009). Does Medicare save lives? QJE 124, 597-636.
  • Card, D., Dobkin, C., Maestas, N. (2008). The impact of nearly universal insurance coverage on health care utilization: Evidence from Medicare. AER 98, 2242-2258.
  • Lee, D. S. (2008). Randomized experiments from non-random selection in U.S. House elections. J. Econometrics 142, 675-697.
  • Angrist, J. D. & Pischke, J.-S. (2009). Mostly Harmless Econometrics. Princeton.

Subscribe

Enjoy this blog? Get notified of new posts by email: