Function to estimate the two-stage quantile-optimal dynamic treatment regime for censored data: the independent censoring Case
Function to estimate the two-stage quantile-optimal dynamic treatment regime for censored data: the independent censoring Case
This function inplements the estimator of two-stage quantile-optimal treatment regime with censored outcome by inverse probability of weighting, which is proposed in Chapter 3 of if(!exists(".Rdpack.currefs")) .Rdpack.currefs <-new.env();Rdpack::insert_citeOnly(keys="zhou2018quantile",package="QTOCen",cached_env=.Rdpack.currefs) . We assume the censoring is independent of everything else, including the treatment covariates, and potential outcomes.
Specifically, we do grid search on the sign of the coefficient for the first non-intercept variables in stage 1 and stage 2 and apply genetic algorithm on the remaining coeffients simultaneously. So if stage one has d1 covariates excluding the intercept, stage two has d2, the resulting coefficient has dimension d1+d2+2.
data: a data.frame, containing variables in the moPropen and RegimeClass and also the response variables, namely censor_y as the censored response, and delta as the censoring indicator.
tau: a value between 0 and 1. This is the quantile of interest.
regimeClass.stg1: a formula specifying the class of treatment regimes for the first stage. For details of the general formulation of a linear treatment regime see regimeClass in IPWE_Qopt_IndCen.
regimeClass.stg2: a formula specifying the class of treatment regimes for the second stage
s_Diff_Time: Numeric. The fixed length of time between the first stage treatment and the second stage treatment
moPropen1: the first stage propensity score model. Default is "BinaryRandom".
moPropen2: the second stage propensity score model. Default is "BinaryRandom".
sign_beta1.stg1: Is sign of the coefficient for the first non-intercept 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 -1; TRUE if 1. We can make the search space discrete because we employ ∣β1∣=1 scale normalizaion.
sign_beta1.stg2: Default is NULL. Similar to sign_beta1.stg1.
Penalty.level: 0: stop if the marginal quantiles cannot be further optimized; 1: continue the search among treatment regimes with with same value for the TR with the smallest intended proportion of treatment.
s.tol: tolerance level for the GA algorithm. This is input for parameter solution.tolerance
in function rgenoud::genoud.
it.num: the maximum GA iteration number
max: logical. TRUE if the goal is maximization of the quantile. FALSE is the goal is minimization of the quantile.
Domains1: This is optional. If not NULL, please provide the two-column matrix for the searching range of coeffients in stage one. The coefficient taking value of positive/negative one should not be included.
Domains2: This is optional. If not NULL, please provide the two-column matrix for the searching range of coeffients in stage two. The coefficient taking value of positive/negative one should not be included.
cluster: default is FALSE, meaning do not use parallel computing for the genetic algorithm(GA).
p_level: choose between 0,1,2,3 to indicate different levels of output from the genetic function. Specifically, 0 (minimal printing), 1 (normal), 2 (detailed), and 3 (debug).
pop.size: an integer with the default set to be 3000. This is roughly the number individuals for the first generation in the genetic algorithm (rgenoud::genoud).
Details
In our setting, if a subject was censored or had experienced the event of interest before s_Diff_Time units of time had elapsed after the first stage of treatment, s/he would not be eligible to receive a second stage treatment.