# NOT RUN {
#Example of BART-BMA for ITE estimation
# Applied to data simulations from Hahn et al. (2020, Bayesian Analysis)
# "Bayesian Regression Tree Models for Causal Inference: Regularization,
# Confounding, and Heterogeneous Effects
n <- 250
x1 <- rnorm(n)
x2 <- rnorm(n)
x3 <- rnorm(n)
x4 <- rbinom(n,1,0.5)
x5 <- as.factor(sample( LETTERS[1:3], n, replace=TRUE))
p= 0
xnoise = matrix(rnorm(n*p), nrow=n)
x5A <- ifelse(x5== 'A',1,0)
x5B <- ifelse(x5== 'B',1,0)
x5C <- ifelse(x5== 'C',1,0)
x_covs_train <- cbind(x1,x2,x3,x4,x5A,x5B,x5C,xnoise)
#Treatment effect
#tautrain <- 3
tautrain <- 1+2*x_covs_train[,2]*x_covs_train[,4]
#Prognostic function
mutrain <- 1 + 2*x_covs_train[,5] -1*x_covs_train[,6]-4*x_covs_train[,7] +
x_covs_train[,1]*x_covs_train[,3]
sd_mtrain <- sd(mutrain)
utrain <- runif(n)
#pitrain <- 0.8*pnorm((3*mutrain/sd_mtrain)-0.5*x_covs_train[,1])+0.05+utrain/10
pitrain <- 0.5
ztrain <- rbinom(n,1,pitrain)
ytrain <- mutrain + tautrain*ztrain
#pihattrain <- pbart(x_covs_train,ztrain )$prob.train.mean
#set lower and upper quantiles for intervals
lbound <- 0.025
ubound <- 0.975
trained_bbma <- ITEs_bartBMA(x_covariates = x_covs_train,
z_train = ztrain,
y_train = ytrain)
example_output <- ITEs_bartBMA_exact_par(trained_bbma[[2]],
l_quant = lbound,
u_quant= ubound,
training_data = x_covs_train)
# }
Run the code above in your browser using DataLab