##################
# simulate data
expit <- function(x) exp(x) / (1 + exp(x))
theta1 <- c(4.7, 1.5, -0.8, 0.1, 0.1)
n <- 100
X1 <- runif(n, 0.1, 1.29)
X12 <- rbinom(n, 1, 0.4)
A1 <- rbinom(n, 1, expit(2*X1 - 1))
delta <- rbinom(n, 1, expit(3*X12 + 0.1))
logT <- theta1[1] + theta1[2]*X1[delta == 1] + theta1[3]*X12[delta == 1] +
theta1[4]*A1[delta == 1] + theta1[5]*A1[delta == 1]*X1[delta == 1] +
rnorm(sum(delta), sd = 0.3)
C <- rexp(n - sum(delta), rate = 1/300)
Y <- rep(NA, n)
Y[delta == 1] <- exp(logT)
Y[delta == 0] <- C
dataset <- data.frame(X1, X12, A1, delta, Y)
model <- DWSurv(time = list(~Y), blip.mod = list(~X1), treat.mod = list(A1~X1),
tf.mod = list(~X1 + X12), cens.mod = list(delta~X12), data = dataset, var.estim = "bootstrap",
boot.opt = "standard", B = 200)
confint(model, type = "percentile")
#################
Run the code above in your browser using DataLab