ITEs_bartBMA {bartBMA} | R Documentation |
This function produces ITE Predictions (in-sample) using bartBMA and the method described by Hill (2011).
ITEs_bartBMA(
x_covariates,
z_train,
y_train,
a = 3,
nu = 3,
sigquant = 0.9,
c = 1000,
pen = 12,
num_cp = 20,
x.test = matrix(0, 0, 0),
num_rounds = 5,
alpha = 0.95,
beta = 2,
split_rule_node = 0,
gridpoint = 0,
maxOWsize = 100,
num_splits = 5,
gridsize = 10,
zero_split = 1,
only_max_num_trees = 1,
min_num_obs_for_split = 2,
min_num_obs_after_split = 2
)
x_covariates |
Covaraite matrix for training bartBMA. |
z_train |
treatment vector for traiing bartBMA. |
y_train |
outcome vector for training bartBMA. |
a |
This is a parameter that influences the variance of terminal node parameter values. Default value a=3. |
nu |
This is a hyperparameter in the distribution of the variance of the error term. THe inverse of the variance is distributed as Gamma (nu/2, nu*lambda/2). Default value nu=3. |
sigquant |
Calibration quantile for the inverse chi-squared prior on the variance of the error term. |
c |
This determines the size of Occam's Window |
pen |
This is a parameter used by the Pruned Exact Linear Time Algorithm when finding changepoints. Default value pen=12. |
num_cp |
This is a number between 0 and 100 that determines the proportion of changepoints proposed by the changepoint detection algorithm to keep when growing trees. Default num_cp=20. |
x.test |
Test data covariate matrix. Default x.test=matrix(0.0,0,0). |
num_rounds |
Number of trees. (Maximum number of trees in a sum-of-tree model). Default num_rounds=5. |
alpha |
Parameter in prior probability of tree node splitting. Default alpha=0.95 |
beta |
Parameter in prior probability of tree node splitting. Default beta=1 |
split_rule_node |
Binary variable. If equals 1, then find a new set of potential splitting points via a changepoint algorithm after adding each split to a tree. If equals zero, use the same set of potential split points for all splits in a tree. Default split_rule_node=0. |
gridpoint |
Binary variable. If equals 1, then a grid search changepoint detection algorithm will be used. If equals 0, then the Pruned Exact Linear Time (PELT) changepoint detection algorithm will be used (Killick et al. 2012). Default gridpoint=0. |
maxOWsize |
Maximum number of models to keep in Occam's window. Default maxOWsize=100. |
num_splits |
Maximum number of splits in a tree |
gridsize |
This integer determines the size of the grid across which to search if gridpoint=1 when finding changepoints for constructing trees. |
zero_split |
Binary variable. If equals 1, then zero split trees can be included in a sum-of-trees model. If equals zero, then only trees with at least one split can be included in a sum-of-trees model. |
only_max_num_trees |
Binary variable. If equals 1, then only sum-of-trees models containing the maximum number of trees, num_rounds, are selected. If equals 0, then sum-of-trees models containing less than num_rounds trees can be selected. The default is only_max_num_trees=1. |
min_num_obs_for_split |
This integer determines the minimum number of observations in a (parent) tree node for the algorithm to consider potential splits of the node. |
min_num_obs_after_split |
This integer determines the minimum number of observations in a child node resulting from a split in order for a split to occur. If the left or right chikd node has less than this number of observations, then the split can not occur. |
A list of length 2. The first element is A vector of Individual Treatment Effect Estimates. The second element is a bartBMA object (i.e. the trained BART-BMA model).
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
example_output <- ITEs_bartBMA(x_covariates = x_covs_train,
z_train = ztrain,
y_train = ytrain)