Tae Hyun Kim (Lowell)

BART (Bayesian Additive Regression Trees)

3분 읽기 #causal-inference#tree-based#bart

정의

여러 트리의 합으로 결과를 모델링하는 Bayesian 앙상블 방법

Y=k=1Kgk(X,W;Tk,Mk)+ϵ,ϵN(0,σ2)Y = \sum_{k=1}^{K} g_k(X, W; T_k, M_k) + \epsilon, \quad \epsilon \sim N(0, \sigma^2)

여기서:

  • gkg_k: kk번째 트리
  • TkT_k: 트리 구조
  • MkM_k: 리프 노드 값
  • Prior on (Tk,Mk)(T_k, M_k)

인과 추론 적용

잠재 결과 모델링

μ(X,W)=E[YX,W]=kgk(X,W)\mu(X, W) = E[Y \mid X, W] = \sum_k g_k(X, W)

CATE 추정

τ^(X)=E^[YX,W=1]E^[YX,W=0]\hat{\tau}(X) = \hat{E}[Y \mid X, W=1] - \hat{E}[Y \mid X, W=0]

Posterior에서 샘플링하여 추정:

τ^(X)=1Ss=1S[kgk(s)(X,1)kgk(s)(X,0)]\hat{\tau}(X) = \frac{1}{S}\sum_{s=1}^{S} \left[\sum_k g_k^{(s)}(X, 1) - \sum_k g_k^{(s)}(X, 0)\right]

모델 구조

Prior 설정

트리 구조 TT prior:

  • 노드 분할 확률: P(split at depth d)=α(1+d)βP(\text{split at depth } d) = \alpha(1+d)^{-\beta}
  • 일반적으로 α=0.95,β=2\alpha = 0.95, \beta = 2

리프 값 MM prior:

μklN(0,σμ2)\mu_{kl} \sim N(0, \sigma^2_\mu)

분산 prior:

σ2Inverse-Gamma\sigma^2 \sim \text{Inverse-Gamma}

MCMC 샘플링

Gibbs Sampling으로 posterior 추정:

  1. TkothersT_k \mid \text{others}: MH step
  2. MkTk,othersM_k \mid T_k, \text{others}: Conjugate update
  3. σ2others\sigma^2 \mid \text{others}: Conjugate update

장단점

장점

장점설명
불확실성 정량화Posterior → 신뢰구간/신용구간
유연한 비선형복잡한 상호작용 포착
정규화Prior로 과적합 방지
연속/이진 처치모두 처리 가능
자동 변수 선택중요 변수 발견

단점

단점설명
계산 비용MCMC로 느림
수렴 진단MCMC 수렴 확인 필요
하이퍼파라미터Prior 설정 민감
대규모 데이터스케일링 어려움

Causal BART 변형

BCF (Bayesian Causal Forests)

Hahn et al. (2020): 처치 효과 분리

Y=μ(X)+τ(X)W+ϵY = \mu(X) + \tau(X) \cdot W + \epsilon
  • μ(X)\mu(X): Prognostic function (BART)
  • τ(X)\tau(X): Treatment effect function (BART)

ps-BART

Propensity score를 공변량으로 포함:

Y=f(X,e(X),W)+ϵY = f(X, e(X), W) + \epsilon

구현

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와 비교

특성BARTCausal Forest
추론BayesianFrequentist
불확실성PosteriorBootstrap/Asymptotic
Honest아니오
속도느림 (MCMC)빠름
이론Posterior consistencyn\sqrt{n}-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

연결 그래프