Causal Forest
Definition
Causal Forest는 Athey, Tibshirani, Wager (2019)가 제안한 일반화 랜덤 포레스트(GRF)의 인과추론 응용으로, 처리 효과의 이질성을 최대화하도록 분할합니다.
국지적 추정:
여기서:
- : 트리 앙상블에서 계산된 가중치
- : 결과 예측 모델
- : 성향 점수 추정
Intuitive Understanding
일반적인 랜덤 포레스트는 결과 예측을 위해 분할합니다. Causal Forest는 처리 효과가 다른 하위 집단을 찾기 위해 분할합니다.
프라이싱에서 Causal Forest는 “어떤 고객 특성이 가격 민감도를 결정하는가?”에 답합니다.
Key Properties
정직성 (Honesty)
정직한(honest) Causal Forest는 트리 구조 결정과 리프 내 추정에 다른 데이터를 사용합니다:
- 구조 결정: 데이터의 절반으로 분할 규칙 학습
- 효과 추정: 나머지 절반으로 리프 내 효과 추정
이는 유효한 신뢰 구간을 가능하게 합니다.
점근적 정규성
신뢰 구간과 가설 검정이 유효합니다.
DML과의 결합
CausalForestDML은 Double Machine Learning과 결합하여:
- 보조 모델(결과, 처리)에 유연한 ML 사용
- 교차 적합으로 과적합 방지
- 연속 처리(가격) 지원
Example
코드 예시
from econml.dml import CausalForestDML
from sklearn.ensemble import GradientBoostingRegressor
forest_dml = CausalForestDML(
model_y=GradientBoostingRegressor(n_estimators=200),
model_t=GradientBoostingRegressor(n_estimators=200),
discrete_treatment=False, # 연속 가격
n_estimators=1000,
min_samples_leaf=20,
honest=True
)
forest_dml.fit(
Y=np.log1p(data['quantity']), # 로그 수량
T=np.log(data['price']), # 로그 가격 → 탄력성
X=data[heterogeneity_vars],
W=data[confounders]
)
# 개인별 탄력성
individual_elasticities = forest_dml.effect(data[heterogeneity_vars])
lower, upper = forest_dml.effect_interval(data[heterogeneity_vars], alpha=0.05)
print(f"평균 탄력성: {individual_elasticities.mean():.3f}")
print(f"탄력성 범위: [{individual_elasticities.min():.3f}, {individual_elasticities.max():.3f}]")
세그먼트 발견
Causal Forest는 자연스럽게 세그먼트를 발견합니다:
from sklearn.cluster import KMeans
data['elasticity'] = forest_dml.effect(data[heterogeneity_vars])
kmeans = KMeans(n_clusters=4, random_state=42)
data['segment'] = kmeans.fit_predict(
np.column_stack([data['elasticity'], data[heterogeneity_vars]])
)
segment_profile = data.groupby('segment').agg({
'elasticity': ['mean', 'std'],
'income': 'mean',
'age': 'mean'
})
변수 중요도
importance = forest_dml.feature_importances_
for feat, imp in zip(heterogeneity_vars, importance):
print(f"{feat}: {imp:.3f}")
Related Concepts
- CATE - 추정 대상
- Double-Debiased ML - 이론적 기반
- Cross-fitting - 과적합 방지
- Meta-learners - 대안적 접근법
- Policy Trees - 해석 가능한 정책 학습
References
- Athey, S., Tibshirani, J., & Wager, S. (2019). “Generalized Random Forests.” Annals of Statistics.
- Wager, S., & Athey, S. (2018). “Estimation and Inference of Heterogeneous Treatment Effects using Random Forests.”
- Comprehensive Personalized Pricing Guide, Part III, §9