Estimating conditional average treatment effects (CATEs) for survival outcomes using X-learner with random survival for nuisance outcomes (implemented via the grf package) and penalized regression Lasso for CATEs (implemented via the glmnet package). The CATE is defined as tau(X) = p(Y(1) > t0 | X = x) - p(Y(0) > t0 | X = x), where Y(1) and Y(0) are counterfactual survival times under the treated and controlled arms, respectively.

surv_xl_grf_lasso(
  X,
  Y,
  W,
  D,
  t0,
  W.hat = NULL,
  cen.fit = "Kaplan-Meier",
  k.folds = 10,
  new.args.grf.nuisance = list()
)

Arguments

X

The baseline covariates

Y

The follow-up time

W

The treatment variable (0 or 1)

D

The event indicator

t0

The prediction time of interest

W.hat

The propensity score

cen.fit

The choice of model fitting for censoring

k.folds

The number of folds for estimating nuisance parameters via cross-fitting

new.args.grf.nuisance

Input arguments for a grf model that estimates nuisance parameters

Value

A surv_xl_grf_lasso object

Examples

# \donttest{
n <- 1000; p <- 25
t0 <- 0.2
Y.max <- 2
X <- matrix(rnorm(n * p), n, p)
W <- rbinom(n, 1, 0.5)
numeratorT <- -log(runif(n))
T <- (numeratorT / exp(1 * X[ ,1, drop = FALSE] + (-0.5 - 1 * X[ ,2, drop = FALSE]) * W)) ^ 2
failure.time <- pmin(T, Y.max)
numeratorC <- -log(runif(n))
censor.time <- (numeratorC / (4 ^ 2)) ^ (1 / 2)
Y <- pmin(failure.time, censor.time)
D <- as.integer(failure.time <= censor.time)
n.test <- 500
X.test <- matrix(rnorm(n.test * p), n.test, p)

surv.xl.grf.lasso.fit <- surv_xl_grf_lasso(X, Y, W, D, t0, W.hat = 0.5)
cate <- predict(surv.xl.grf.lasso.fit)
cate.test <- predict(surv.xl.grf.lasso.fit, X.test)
# }