Description Usage Arguments Details Value Author(s) References See Also Examples
X_RF is an implementation of the X-learner with Random Forests (Breiman 2001) in the first and second stage.
X_BART is an implementation of the X-learner with Bayesian Additive Regression Trees (Chipman et al. 2010) at the first and second stage
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | X_RF(feat, tr, yobs, predmode = "propmean", nthread = 0,
verbose = FALSE, mu.forestry = list(relevant.Variable = 1:ncol(feat),
ntree = 1000, replace = TRUE, sample.fraction = 0.8, mtry =
round(ncol(feat) * 13/20), nodesizeSpl = 2, nodesizeAvg = 1, splitratio =
1, middleSplit = TRUE), tau.forestry = list(relevant.Variable =
1:ncol(feat), ntree = 1000, replace = TRUE, sample.fraction = 0.7, mtry =
round(ncol(feat) * 17/20), nodesizeSpl = 5, nodesizeAvg = 6, splitratio =
0.8, middleSplit = TRUE), e.forestry = list(relevant.Variable =
1:ncol(feat), ntree = 500, replace = TRUE, sample.fraction = 0.5, mtry =
ncol(feat), nodesizeSpl = 11, nodesizeAvg = 33, splitratio = 0.5,
middleSplit = FALSE))
X_BART(feat, tr, yobs, predmode = "pscore", nthread = 1,
ndpost = 1200, ntree = 200, mu.BART = list(sparse = FALSE, theta =
0, omega = 1, a = 0.5, b = 1, augment = FALSE, rho = NULL, usequants =
FALSE, cont = FALSE, sigest = NA, sigdf = 3, sigquant = 0.9, k = 2, power
= 2, base = 0.95, sigmaf = NA, lambda = NA, numcut = 100L, nskip = 100L),
tau.BART = list(sparse = FALSE, theta = 0, omega = 1, a = 0.5, b = 1,
augment = FALSE, rho = NULL, usequants = FALSE, cont = FALSE, sigest =
NA, sigdf = 3, sigquant = 0.9, k = 2, power = 2, base = 0.95, sigmaf =
NA, lambda = NA, numcut = 100L, nskip = 100L), e.BART = list(sparse =
FALSE, theta = 0, omega = 1, a = 0.5, b = 1, augment = FALSE, rho = NULL,
usequants = FALSE, cont = FALSE, sigest = NA, sigdf = 3, sigquant = 0.9,
k = 2, power = 2, base = 0.95, sigmaf = NA, lambda = NA, numcut = 100L,
nskip = 100L))
|
feat |
A data frame containing the features. |
tr |
A numeric vector with 0 for control and 1 for treated variables. |
yobs |
A numeric vector containing the observed outcomes. |
predmode |
Specifies how the two estimators of the second stage should be aggregated. Possible types are "propmean," "control," and "treated." The default is "propmean," which refers to propensity score weighting. |
nthread |
Number of threads which should be used to work in parallel. |
verbose |
TRUE for detailed output, FALSE for no output. |
mu.forestry, tau.forestry, e.forestry |
A list containing the
hyperparameters for the
|
ndpost |
Number of posterior draws. |
ntree |
Number of trees. |
mu.BART, tau.BART, e.BART |
hyperparameters of the BART functions for the
estimates of the first and second stage and the propensity score. Use
|
The X-Learner estimates the CATE in three steps:
Estimate the response functions
μ_0(x) = E[Y(0) | X = x]
μ_1(x) = E[Y(1) | X = x]
using the base learner and denote the estimates as \hat μ_0 and \hat μ_1.
Impute the treatment effects for the individuals in the treated group, based on the control outcome estimator, and the treatment effects for the individuals in the control group, based on the treatment outcome estimator, that is,
D^1_i = Y_i(1) - \hat μ_0(X_i)
D^0_i = \hat μ_1(X_i) - Y_i(0).
Now employ the base learner in two ways: using D^1_i as the dependent variable to obtain \hat τ_1(x), and using D^0_i as the dependent variable to obtain \hat τ_0(x).
Define the CATE estimate by a weighted average of the two estimates at Stage 2:
τ(x) = g(x) \hat τ_0(x) + (1 - g(x)) \hat τ_1(x).
If predmode = "propmean"
, then g(x) = e(x), where
e(x) is an estimate of the propensity score using the
forestry
Random Forests
version with the hyperparameters specified in e.forestry
.
If predmode = "control"
, then g(x) = 1, and if
predmode = "treated"
, then g(x) = 0.
An object from a class that contains the CATEestimator
class. It should be used with one of the following functions:
EstimateCATE
, CateCI
, and CateBIAS
. The object has at least the
following slots:
|
A copy of feat. |
|
A copy of tr. |
|
A copy of yobs. |
|
Function call that creates the CATE estimator. This is used for different bootstrap procedures. |
Soeren R. Kuenzel
Sören Künzel, Jasjeet Sekhon, Peter Bickel, and Bin Yu (2017). MetaLearners for Estimating Heterogeneous Treatment Effects using Machine Learning. https://www.pnas.org/content/116/10/4156
Sören Künzel, Simon Walter, and Jasjeet Sekhon (2018). Causaltoolbox—Estimator Stability for Heterogeneous Treatment Effects. https://arxiv.org/pdf/1811.02833.pdf
Sören Künzel, Bradly Stadie, Nikita Vemuri, Varsha Ramakrishnan, Jasjeet Sekhon, and Pieter Abbeel (2018). Transfer Learning for Estimating Causal Effects using Neural Networks. https://arxiv.org/pdf/1808.07804.pdf
Other metalearners: M-Learner
,
S-Learner
, T-Learner
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | require(causalToolbox)
# create example data set
simulated_experiment <- simulate_causal_experiment(
ntrain = 1000,
ntest = 1000,
dim = 10
)
feat <- simulated_experiment$feat_tr
tr <- simulated_experiment$W_tr
yobs <- simulated_experiment$Yobs_tr
feature_test <- simulated_experiment$feat_te
# create the CATE estimator using Random Forests (RF)
xl_rf <- X_RF(feat = feat, tr = tr, yobs = yobs)
tl_rf <- T_RF(feat = feat, tr = tr, yobs = yobs)
sl_rf <- S_RF(feat = feat, tr = tr, yobs = yobs)
ml_rf <- M_RF(feat = feat, tr = tr, yobs = yobs)
xl_bt <- X_BART(feat = feat, tr = tr, yobs = yobs)
tl_bt <- T_BART(feat = feat, tr = tr, yobs = yobs)
sl_bt <- S_BART(feat = feat, tr = tr, yobs = yobs)
ml_bt <- M_BART(feat = feat, tr = tr, yobs = yobs)
cate_esti_xrf <- EstimateCate(xl_rf, feature_test)
# evaluate the performance.
cate_true <- simulated_experiment$tau_te
mean((cate_esti_xrf - cate_true) ^ 2)
## Not run:
# create confidence intervals via bootstrapping.
xl_ci_rf <- CateCI(xl_rf, feature_test, B = 500)
## End(Not run)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.