Tlearners: T-Learners

Description Usage Arguments Details Value References See Also Examples

Description

T_RF is an implementation of the T-learner combined with Random Forest (Breiman 2001) for both response functions.

T_BART is an implementation of the T-learner with Bayesian Additive Regression Trees (Chipman et al. 2010) for both response functions.

Usage

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
T_RF(feat, tr, yobs, nthread = 0, verbose = TRUE,
  mu0.forestry = list(relevant.Variable = 1:ncol(feat), ntree = 1000,
  replace = TRUE, sample.fraction = 0.9, mtry = ncol(feat), nodesizeSpl =
  1, nodesizeAvg = 3, splitratio = 0.5, middleSplit = FALSE),
  mu1.forestry = list(relevant.Variable = 1:ncol(feat), ntree = 1000,
  replace = TRUE, sample.fraction = 0.9, mtry = ncol(feat), nodesizeSpl =
  1, nodesizeAvg = 3, splitratio = 0.5, middleSplit = FALSE))

T_BART(feat, tr, yobs, ndpost = 1200, ntree = 200, nthread = 1,
  verbose = FALSE, mu0.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),
  mu1.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))

Arguments

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.

nthread

Number of threads which should be used to work in parallel.

verbose

TRUE for detailed output, FALSE for no output.

mu0.forestry, mu1.forestry

Lists containing the hyperparameters for the forestry package that are used in \hat μ_0 and \hat μ_1, respectively. These hyperparameters are passed to the forestry package. (Please refer to the forestry package for a more detailed documentation of the hyperparamters.)

ndpost

Number of posterior draws.

ntree

Number of trees.

mu0.BART, mu1.BART

Hyperparameters of the BART functions for the control and treated group. (Use ?BART::mc.wbart for a detailed explanation of their effects.)

Details

The CATE is estimated using two estimators:

  1. Estimate the response functions

    μ_0(x) = E[Y(0) | X = x]

    μ_1(x) = E[Y(1) | X = x]

    using the base leaner and denote the estimates as \hat μ_0 and \hat μ_1.

  2. Define the CATE estimate as

    τ(x) = \hat μ_1 - \hat μ_0.

Value

Object of class T_RF. It should be used with one of the following functions EstimateCATE, CateCI, and CateBIAS. The object has the following slots:

feature_train

A copy of feat.

tr_train

A copy of tr.

yobs_train

A copy of yobs.

m_0

An object of class forestry that is fitted with the observed outcomes of the control group as the dependent variable.

m_1

An object of class forestry that is fitted with the observed outcomes of the treated group as the dependent variable.

hyperparameter_list

List containting the hyperparameters of the three random forest algorithms used.

creator

Function call of T_RF. This is used for different bootstrap procedures.

References

See Also

Other metalearners: M-Learner, S-Learner, X-Learner

Examples

 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)

soerenkuenzel/causalToolbox documentation built on April 28, 2021, 5:19 a.m.