Description Usage Arguments Examples
Assume we have binary treatment options for two sequential stages with a fixed time duration between them. This means for each subject in the target population if the censored survival time or the timetoevent is beyond the timepoint of the second treatment.
This function evaluates a given dynamic treatment regime and returns the estimated marginal quantile response.
We assume the space of twostage treatment regimes is a cartesian product of two singlestage linear treatment regime space.
The user facing function that applies this function is IPWE_Qopt_DTR_IndCen
.
1 2 3 4  est_quant_TwoStg_ipwe(n, beta, sign_beta1.stg1, sign_beta1.stg2, txVec1,
txVec2_na_omit, s_Diff_Time, nvars.stg1, nvars.stg2, p.data1, p.data2,
censor_y, delta, ELG, w_di_vec, tau, check_complete = TRUE,
Penalty.level = 0)

n 
the sample size 
beta 
the vector of coefficients indexing a twostage treatment regime 
sign_beta1.stg1 
Is sign of the coefficient for the first nonintercept
variable for the first stage known? Default is NULL, meaning user does not have contraint on
the sign;
FALSE if the coefficient for the first continuous variable
is fixed to be 
sign_beta1.stg2 
Default is NULL. Similar to 
txVec1 
the vector of treatment received at the first stage 
txVec2_na_omit 
the vector of second stage treatment for patients who indeed second stage treatment 
s_Diff_Time 
the length of time between the first stage treatment and the second stage treatment 
nvars.stg1 
number of coeffients for the decision rule of the first stage 
nvars.stg2 
number of coeffients for the decision rule of the second stage 
p.data1 
the design matrix to be used for decision in stage one 
p.data2 
the design matrix to be used for decision in stage two 
censor_y 
Numeric vector. The censored survival times from all observed data, i.e. 
delta 
Numeric vector. The censoring indicators from all observed data. We use 1 for uncensored, 0 for censored. 
ELG 
the boolean vector of whether patients get the second stage treatment 
w_di_vec 
the inverse probability weight for two stage experiments 
tau 
a value between 0 and 1. This is the quantile of interest. 
check_complete 
logical. Since this value estimation method is purely
nonparametric, we need at least one unit in collected data such that the observed
treatment assignment is the same what the regime parameter suggests. If 
Penalty.level 
the level that determines which objective function to use.

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 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58  ##########################################################################
# Note: the preprocessing steps prior to calling est_quant_TwoStg_ipwe() #
# are wrapped up in IPWE_Qopt_DTR_IndCen(). #
# w_di_vec is the inverse probability weight for two stage experiments #
# We recommend users to use function IPWE_Qopt_DTR_IndCen() directly. #
# Below is a simple customized calculation of the weight that only works #
# for this example #
##########################################################################
library(survival)
# Simulate data
n=200
s_Diff_Time = 1
D < simJLSDdata(n, case="a")
# give regime classes
regimeClass.stg1 < as.formula(a0~x0)
regimeClass.stg2 < as.formula(a1~x1)
# extract columns that matches each stage's treatment regime formula
p.data1 < model.matrix(regimeClass.stg1, D)
# p.data2 would only contain observations with nonnull value.
p.data2 < model.matrix(regimeClass.stg2, D)
txVec1 < D[, "a0"]
# get nonena second stage treatment levels in data
txVec2 < D[, "a1"]
txVec2_na_omit < txVec2[which(!is.na(txVec2))]
# Eligibility flag
ELG < (D$censor_y > s_Diff_Time)
# Build weights
D$deltaC < 1  D$delta
survfit_all < survfit(Surv(censor_y, event = deltaC)~1, data=D)
survest < stepfun(survfit_all$time, c(1, survfit_all$surv))
D$ghat < survest(D$censor_y)
g_s_Diff_Time < survest(s_Diff_Time)
D$w_di_vec < rep(999, n)
for(i in 1:n){
if (!ELG[i]) {
D$w_di_vec[i] < 0.5 * D$ghat[i]} else {
D$w_di_vec[i] < 0.5* D$ghat[i] * 0.5
}
}
qhat < est_quant_TwoStg_ipwe(n=n, beta=c(2.5,2.8),
sign_beta1.stg1 = FALSE, sign_beta1.stg2=FALSE,
txVec1=txVec1, txVec2_na_omit=txVec2_na_omit, s_Diff_Time=1,
nvars.stg1=2, nvars.stg2=2,
p.data1=p.data1,
p.data2=p.data2,
censor_y=D$censor_y,
delta=D$delta,
ELG=ELG, w_di_vec=D$w_di_vec,
tau=0.3)

Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.