IPW (Inverse Propensity Weighting)
정의
Propensity Score의 역수를 가중치로 사용하여 처치 효과 추정
여기서 는 Propensity Score.
직관적 이해
왜 역수 가중?
“과소 대표된 샘플에 더 큰 가중치”
| 상황 | 처치 확률 | 가중치 | 의미 |
|---|---|---|---|
| 처치 희소 | 이 사람은 10명을 대표 | ||
| 처치 흔함 | 거의 1:1 대표 |
재표본 관점
IPW는 다음과 동치:
- 각 샘플을 가중치만큼 “복제”
- 가상의 무작위 실험(pseudo-RCT) 생성
수학적 유도
ATE 식별
Strong Ignorability 하에서:
따라서:
샘플 추정량
정규화 버전
PS가 추정될 때 더 안정적:
장점: 편향 감소, 분산 감소
ATT를 위한 IPW
ATT 참조
장단점
장점
| 장점 | 설명 |
|---|---|
| 간단 | 직관적이고 구현 용이 |
| 비모수적 | Outcome 모델 가정 불필요 |
| 이론적 정당화 | 조건부 일치성 보장 |
| 유연성 | 다양한 estimand 적용 가능 |
단점
| 단점 | 설명 |
|---|---|
| PS 추정 의존 | PS 오특정 시 편향 |
| 극단적 PS 민감 | 또는 에서 불안정 |
| 높은 분산 | 특히 overlap 약할 때 |
| 고차원 어려움 | PS 추정 어려움 |
극단적 PS 문제
문제
또는 일 때:
- 가중치 폭발:
- 추정량 불안정
해결책
- Trimming: 극단적 PS 샘플 제거
- Overlap Weighting: 안정적 가중치 사용
- Weight clipping: 가중치 상한 설정
구현
Python (EconML)
from econml.dr import LinearDRLearner
# IPW는 outcome model 없이
model = LinearDRLearner(model_propensity=LogisticRegression())
model.fit(Y, T, X)
ate = model.effect(X).mean()
R
library(WeightIt)
# Propensity score weights
weights <- weightit(treat ~ x1 + x2, data = df, method = "ps")
# Weighted outcome regression
lm(y ~ treat, data = df, weights = weights$weights)
관련 개념
- Re-weighting Methods Overview - 재가중 방법 통합 정리
- Propensity Score - 핵심 도구
- Doubly Robust Estimator - IPW + Outcome regression
- CBPS - 균형 직접 최적화
- Trimming - 극단 PS 처리
- Overlap Weighting - 안정적 가중치
응용: RTB Win Selection Bias 보정
RTB에서 낙찰된 impression만으로 학습 시 win selection bias 발생. IPW로 보정:
Win propensity는 Survival Analysis (Kaplan-Meier) 또는 Gradient Boosting으로 추정. Weight stabilization (clipping, normalization)이 필수적. 자세한 내용은 Multi-Task Learning (IPW-ESCM²) 참조.
참고 논문
- yaoSurveyCausalInference2021 - Section 3.1.3
- Rosenbaum, P. R., & Rubin, D. B. (1983). The central role of the propensity score
- Horvitz, D. G., & Thompson, D. J. (1952). A generalization of sampling without replacement
- Zhang et al. (2016). Bid-aware Gradient Descent (KDD)