DEV Community

Cover image for Regression Discontinuity — 정책 cutoff 주변에서 인과 효과 잡기
HyunSeok Jeong
HyunSeok Jeong

Posted on • Originally published at blog.trysitely.com

Regression Discontinuity — 정책 cutoff 주변에서 인과 효과 잡기

"VIP 등급 이상에게만 쿠폰 발급" 같은 룰이 사실 자연 실험입니다. cutoff 바로 위 사용자(VIP)는 쿠폰을 받고, 바로 아래 사용자(일반)는 안 받습니다. 두 그룹은 자격 점수가 거의 같으니 다른 모든 면에서 비슷합니다 — 단 한 가지 다른 것이 쿠폰 처리 여부. RDD(Regression Discontinuity Design)는 이 자연 실험을 활용해 인과 효과를 추정합니다.

마케터가 이 글을 읽어야 하는 이유: 마케팅 운영의 많은 룰이 cutoff 기반(VIP 등급, 쿠폰 자격, 광고 배정 점수). 이 룰 자체가 자연 실험이라 RDD를 적용하면 별도 lift study 없이 인과 효과를 추정 가능. 무작위 배정 못 하는 자리의 강력한 우회로.

X축에 VIP 점수, Y축에 구매율을 그린 산점도와 cutoff 직선. cutoff 직전·직후의 회귀선 차이가 인과 효과
cutoff 직전·직후의 차이가 처리 효과의 정직한 추정. 다른 변수의 영향이 거의 없는 자리.

1. RDD의 한 줄 직관

자격 점수가 cutoff 바로 위·아래인 사람들은 거의 같은데, 한 그룹만 처리(쿠폰·할인)를 받는다. 두 그룹의 결과 차이가 처리 효과.

핵심: cutoff 근처에서는 자격 점수의 차이가 매우 작습니다. 점수 79.5 vs 80.5 사용자는 거의 비슷한 사람들입니다. 그런데 cutoff 80.0이 둘을 다른 처리 그룹에 배정합니다. 이게 사실상 무작위 배정과 같은 효과.

수식 직관:

τRDD=limxc+E[YX=x]limxcE[YX=x] \tau_{\text{RDD}} = \lim_{x \to c^+} E[Y \mid X=x] - \lim_{x \to c^-} E[Y \mid X=x]

XX 는 자격 점수, cc 는 cutoff. cutoff 바로 위 평균과 바로 아래 평균의 차이.

2. Sharp RDD vs Fuzzy RDD

2-1. Sharp RDD

cutoff 위는 100% 처리, 아래는 100% 비처리. 룰이 정확히 지켜지는 자리.

예: "VIP 등급 이상에게만 쿠폰 자동 발급" → cutoff 정확히 일치.

2-2. Fuzzy RDD

cutoff 위라도 처리 받지 않는 사람·아래라도 처리 받는 사람이 섞여 있는 자리. 처리 확률이 cutoff에서 점프하지만 0/1이 아닌 자리.

예: "VIP 등급 이상에게 쿠폰 안내, 본인이 사용 결정" → 자격은 있지만 안 받는 사람 존재.

자리 처리 비율 추정
Sharp cutoff 위 100%, 아래 0% 직접 차이
Fuzzy cutoff 위 60%, 아래 5% IV·도구변수 활용

3. RDD가 적용되는 마케팅 자리 5가지

3-1. VIP·로열티 등급 기반 혜택

자격 점수 이상에게만 쿠폰·할인 자동 발급. 가장 흔한 RDD 자리.

3-2. 광고 배정 score cutoff

DSP·자동입찰의 사용자 score가 일정 수준 이상에서 광고 노출. cutoff가 명확하면 RDD 가능.

3-3. 신용 한도 결정

마케팅과 별개지만 fintech 자리. 신용 점수 cutoff가 한도 결정.

3-4. 신규 vs 기존 사용자 구분

가입 일자 기준 90일 이내 신규로 분류해 다른 캠페인 노출. 가입 후 89일·91일 사용자가 사실상 비슷.

3-5. 지역 배송 기준

매장 반경 5km 내 사용자에게 배송 무료. 4.9km vs 5.1km 사용자 비교.

자리 cutoff 변수 RDD 적용
VIP 쿠폰 등급 점수 Sharp
DSP score 광고 점수 Sharp
가입 후 일자 일수 Sharp
거리 기반 배송 km Sharp
자격 안내 점수 Fuzzy

4. RDD의 핵심 가정

4-1. Cutoff 주변의 연속성

cutoff에서 자격 점수 외 변수들이 매끄럽게 이어진다는 가정. cutoff에서 다른 변수(예: 가입 채널)도 동시에 점프하면 RDD 무너짐.

4-2. Manipulation 없음

사용자가 cutoff를 의도적으로 넘기 위해 점수를 조작하지 않아야 함. 예: 쿠폰 받으려고 인위적으로 구매 늘리기. McCrary density test로 점검.

4-3. Bandwidth 선택

cutoff 근처 어느 범위까지 데이터를 사용할지의 결정. 좁으면 정밀도 부족, 넓으면 cutoff 멀리 떨어진 사용자가 비교에 들어가 편향.

📌 이 글의 전제

독자가 회귀·인과추론이라는 단어를 들어본 적 있고, A/B 테스트의 무작위 배정 직관을 받아들인다고 가정합니다. 코드를 직접 짠 적은 없어도 됩니다.

5. 코드 한 묶음 — Python RDD

이게 글에 박는 유일한 코드입니다. VIP 점수 cutoff 80에서 쿠폰 발급의 인과 효과 추정.


python
Enter fullscreen mode Exit fullscreen mode

Top comments (0)