sa {CIMTx} | R Documentation |
The function sa
implements the flexible sensitivity analysis approach for unmeasured confounding with multiple treatments and a binary outcome.
sa( x, y, w, formula = NULL, prior_c_function, M1, M2 = NULL, nCores = 1, estimand, reference_trt, ... )
x |
A dataframe, including all the covariates but not treatments. |
y |
A numeric vector (0, 1) representing a binary outcome. |
w |
A numeric vector representing the treatment groups. |
formula |
A |
prior_c_function |
1) A vector of characters indicating the prior distributions for the confounding functions. Each character contains the random number generation code from the standard probability |
M1 |
A numeric value indicating the number of draws of the GPS from the posterior predictive distribution |
M2 |
A numeric value indicating the number of draws from the prior distributions of the confounding functions |
nCores |
A numeric value indicating number of cores to use for parallel computing. |
estimand |
A character string representing the type of causal estimand. Only |
reference_trt |
A numeric value indicating reference treatment group for ATT effect. |
... |
Other parameters that can be passed to BART functions |
A list of causal estimands including risk difference (RD) between different treatment groups.
Hu, L., Ji, J. (2021). CIMTx: An R package for causal inference with multiple treatments using observational data. arXiv:2110.10276
lp_w_all <- c(".4*x1 + .1*x2 - 1.1*x4 + 1.1*x5", # w = 1 ".2 * x1 + .2 * x2 - 1.2 * x4 - 1.3 * x5") # w = 2 nlp_w_all <- c("-.5*x1*x4 - .1*x2*x5", # w = 1 "-.3*x1*x4 + .2*x2*x5")# w = 2 lp_y_all <- rep(".2*x1 + .3*x2 - .1*x3 - 1.1*x4 - 1.2*x5", 3) nlp_y_all <- rep(".7*x1*x1 - .1*x2*x3", 3) X_all <- c( "rnorm(100, 0, 0.5)",# x1 "rbeta(100, 2, .4)", # x2 "runif(100, 0, 0.5)",# x3 "rweibull(100,1,2)", # x4 "rbinom(100, 1, .4)"# x5 ) set.seed(1111) data <- data_sim( sample_size = 100, n_trt = 3, X = X_all, lp_y = lp_y_all, nlp_y = nlp_y_all, align = FALSE, lp_w = lp_w_all, nlp_w = nlp_w_all, tau = c(0.5,-0.5,0.5), delta = c(0.5,0.5), psi = 2 ) c_grid <- c( "runif(-0.6, 0)",# c(1,2) "runif(0, 0.6)",# c(2,1) "runif(-0.6, 0)", # c(2,3) "seq(-0.6, 0, by = 0.3)", # c(1,3) "seq(0, 0.6, by = 0.3)", # c(3,1) "runif(0, 0.6)" # c(3,2) ) sensitivity_analysis_parallel_result <- sa( M1 = 1, x = data$covariates, y = data$y, w = data$w, prior_c_function = c_grid, nCores = 1, estimand = "ATE", )