BART (Bayesian Additive Regression Trees)
정의
여러 트리의 합으로 결과를 모델링하는 Bayesian 앙상블 방법
여기서:
- : 번째 트리
- : 트리 구조
- : 리프 노드 값
- Prior on
인과 추론 적용
잠재 결과 모델링
CATE 추정
Posterior에서 샘플링하여 추정:
모델 구조
Prior 설정
트리 구조 prior:
- 노드 분할 확률:
- 일반적으로
리프 값 prior:
분산 prior:
MCMC 샘플링
Gibbs Sampling으로 posterior 추정:
- : MH step
- : Conjugate update
- : Conjugate update
장단점
장점
| 장점 | 설명 |
|---|---|
| 불확실성 정량화 | Posterior → 신뢰구간/신용구간 |
| 유연한 비선형 | 복잡한 상호작용 포착 |
| 정규화 | Prior로 과적합 방지 |
| 연속/이진 처치 | 모두 처리 가능 |
| 자동 변수 선택 | 중요 변수 발견 |
단점
| 단점 | 설명 |
|---|---|
| 계산 비용 | MCMC로 느림 |
| 수렴 진단 | MCMC 수렴 확인 필요 |
| 하이퍼파라미터 | Prior 설정 민감 |
| 대규모 데이터 | 스케일링 어려움 |
Causal BART 변형
BCF (Bayesian Causal Forests)
Hahn et al. (2020): 처치 효과 분리
- : Prognostic function (BART)
- : Treatment effect function (BART)
ps-BART
Propensity score를 공변량으로 포함:
구현
R (dbarts, bartCause)
library(dbarts)
# 기본 BART
bart_fit <- bart(x.train = cbind(X, W),
y.train = Y,
ntree = 200)
# CATE 추정
X1 <- cbind(X, W = 1)
X0 <- cbind(X, W = 0)
pred1 <- predict(bart_fit, X1)
pred0 <- predict(bart_fit, X0)
cate <- colMeans(pred1 - pred0)
# 신용구간
cate_samples <- pred1 - pred0
ci <- apply(cate_samples, 2, quantile, c(0.025, 0.975))
R (bartCause)
library(bartCause)
# Causal BART
fit <- bartc(y = Y, z = W, x = X,
method.rsp = "bart",
method.trt = "bart")
# CATE
cate <- predict(fit)
Causal Forest와 비교
| 특성 | BART | Causal Forest |
|---|---|---|
| 추론 | Bayesian | Frequentist |
| 불확실성 | Posterior | Bootstrap/Asymptotic |
| Honest | 아니오 | 예 |
| 속도 | 느림 (MCMC) | 빠름 |
| 이론 | Posterior consistency | -normality |
관련 개념
- Tree-based Methods Overview - 트리 기반 방법 통합
- Causal Forest - Frequentist 대안
- Honest Estimation - 과적합 방지
- HTE - 추정 대상
참고 논문
- Hill, J. L. (2011). Bayesian nonparametric modeling for causal inference. JCGS
- Chipman, H. A., George, E. I., & McCulloch, R. E. (2010). BART: Bayesian additive regression trees. Annals of Applied Statistics
- Hahn, P. R., Murray, J. S., & Carvalho, C. M. (2020). Bayesian regression tree models for causal inference. Bayesian Analysis
- yaoSurveyCausalInference2021 - Section 3.4.3