Tae Hyun Kim (Lowell)

BART (Bayesian Additive Regression Trees)

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

정의

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)은 처치효과(treatment effect)를 별도 함수로 분리한다.

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)를 공변량(covariate)으로 포함한다.

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

연결 그래프