SIM_phase_I_II {crm12Comb} | R Documentation |
Single simulation of phase I/II adaptive design for drug combinations based on CRM design
Description
This function is to realize the simulations of whole process of combined phase I and phase II design for drug combinations with early stopping rules and flexible user-defined model or prior distribution, returning operating characters for performace evaluations and comparisons.
Usage
SIM_phase_I_II(nsim, Nmax, DoseComb, input_doseComb_forMat,
input_type_forMat, input_Nphase,
input_DLT_skeleton, input_efficacy_skeleton,
input_DLT_thresh=0.3, input_efficacy_thresh=0.3,
input_M_prob=NULL, input_K_prob=NULL,
input_cohortsize=1, input_corr=0,
input_early_stopping_safety_thresh=0.33,
input_early_stopping_futility_thresh=0.2,
input_model="empiric", input_para_prior="normal",
input_beta_mean=0, input_beta_sd=1,
input_intcpt_lgst1=3,
input_beta_shape=1, input_beta_inverse_scale=1,
input_theta_mean=0, input_theta_sd=1,
input_theta_intcpt_lgst1=3,
input_theta_shape=1, input_theta_inverse_scale=1,
input_alpha_mean=3, input_alpha_sd=1,
input_alpha_shape=1, input_alpha_inverse_scale=1,
input_alphaT_mean=3, input_alphaT_sd=1,
input_alphaT_shape=1, input_alphaT_inverse_scale=1,
random_seed=42)
Arguments
nsim |
Number of simulation trials. |
Nmax |
Number of maximum enrolled patients for each trial. |
DoseComb |
A matrix with rows of length equaling number of dose combinations and columns of length equaling number of drugs for pre-defined true toxicity and true efficacy probabilities corresponding to each dose combinations. |
input_doseComb_forMat |
For 2 drugs, either a matrix with columns for all combinations and rows for two drugs when input_type_forMat is "comb", or a vector of length 2 indicating the number of levels of each drug when input_type_forMat is "matrix" should be input. For more than 2 drugs, a list of all possible orderings should be input when input_type_forMat is "self". |
input_type_forMat |
A character string to indicate the input type of dose combinations. The type_forMat is either "comb" for inputting all tested dose combinations for 2 drugs, "matrix" for entering number of levels of two drugs so that a matrix of combinations can be constructed, or "self" for more than 3 drugs with directly input of all possible orderings. |
input_Nphase |
Number of patients for determination of randomization phase (current number of patients less than Nphase) or maximization phase (current number of patients larger than or equal to Nphase). |
input_DLT_skeleton |
A vector with same length of dose combinations for toxicity skeleton for each dose combination. |
input_efficacy_skeleton |
A vector with same length of dose combinations for efficacy skeleton for each dose combination. |
input_DLT_thresh |
DLT threshold to define acceptable set. |
input_efficacy_thresh |
Efficacy threshold to define target combinations. |
input_M_prob |
A vector with same length of possible toxicity orderings denoting prior probabilities of toxicity orderings (sum is 1). |
input_K_prob |
A vector with same length of possible efficacy orderings denoting prior probabilities of efficacy orderings (sum is 1). |
input_cohortsize |
Number of patients in each cohort. |
input_corr |
Association parameter for efficacy and toxicity, where 0 means toxicity and efficacy is independent. |
input_early_stopping_safety_thresh |
Safety threshold for early stopping condition. |
input_early_stopping_futility_thresh |
Futility threshold for early stopping condition. |
input_model |
A character string to specify the model used, must be one of "empiric", "tanh", "logistic" or "logistic2". |
input_para_prior |
A character string to specify the prior distribution used for parameters, must be one of "normal" or "gamma" (when input_model is either "empiric" or "logistic" or "logistic2") or "exponential" (when input_model is "tanh"). |
input_beta_mean |
The mean of parameter used when input_para_prior="exponential" or "normal", otherwise will be ignored. |
input_beta_sd |
The standard deviation of parameter used when input_para_prior="normal", otherwise will be ignored. |
input_intcpt_lgst1 |
A constant value of intercept from a one-parameter logistic model only used when input_model="logistic" (suggested value is 3), otherwise will be ignored. |
input_beta_shape |
The shape parameter used when input_para_prior="gamma", otherwise will be ignored. |
input_beta_inverse_scale |
The scale parameter used when input_para_prior="gamma", otherwise will be ignoredL. |
input_theta_mean |
The mean of parameter used when input_para_prior="exponential" or "normal", otherwise will be ignored. |
input_theta_sd |
The standard deviation of parameter used when input_para_prior="normal", otherwise will be ignored. |
input_theta_intcpt_lgst1 |
A constant value of intercept from a one-parameter logistic model only used when input_model="logistic" (default value is 3), otherwise will be ignored. |
input_theta_shape |
The shape parameter used when input_para_prior="gamma", otherwise will be ignored. |
input_theta_inverse_scale |
The scale parameter used when input_para_prior="gamma", otherwise will be ignored. |
input_alpha_mean |
The mean of intercept parameter of two-parameter logistic model only used when model="logistic2" and input_para_prior="normal", otherwise will be ignored. |
input_alpha_sd |
The standard deviation of intercept parameter of two-parameter logistic model only used when input_model="logistic2" and input_para_prior="normal", otherwise will be ignored. |
input_alpha_shape |
The shape parameter of intercept parameter from a two-parameter logistic model only used when input_model="logistic2" and input_para_prior="gamma", otherwise will be ignored. |
input_alpha_inverse_scale |
The scale parameter of intercept parameter from a two-parameter logistic model only used when input_model="logistic2" and input_para_prior="gamma", otherwise will be ignored. |
input_alphaT_mean |
The mean of intercept parameter of two-parameter logistic model only used when model="logistic2" and input_para_prior="normal", otherwise will be ignored. |
input_alphaT_sd |
The standard deviation of intercept parameter of two-parameter logistic model only used when input_model="logistic2" and input_para_prior="normal", otherwise will be ignored. |
input_alphaT_shape |
The shape parameter of intercept parameter from a two-parameter logistic model only used when input_model="logistic2" and input_para_prior="gamma", otherwise will be ignored. |
input_alphaT_inverse_scale |
The scale parameter of intercept parameter from a two-parameter logistic model only used when input_model="logistic2" and input_para_prior="gamma", otherwise will be ignored. |
random_seed |
An integer for the start seed to generate random numbers, default is 42. |
Details
This function is to realize the whole process of combined phase I and phase II adaptive design for drug combinations based on CRM amonng number of simulation trials. For each trial, basic steps include starting the trial for first patient or cohor of patients allocation, toxicity and efficacy estimations by current data, adaptive randomization or maximization phase for next patient or cohort of patients allocation, updating current data of patients enrollment, determining early stoppings for safety or fuility, and selecting optimal dose combination (ODC) after reaching maximum sample size or stopping early.
Value
A list of operating characteristics is returned containing the following components:
prob_safe |
Probability of simulation trials with ODC identified as safe/ineffective combinations. |
prob_target |
Probability of simulation trials with ODC identified as target combinations. |
prob_toxic |
Probability of simulation trials with ODC identified as toxic combinations. |
mean_SS |
Average number of patients enrolled. |
mean_ODC |
Average proportion of patients allocated to target ODS(s). |
prob_stop_safety |
Probability of simulation trials stopping early for safety. |
prob_stop_futility |
Probability of simulation trials stopping early for futility. |
mean_DLT |
Average observed DLT rate. |
mean_ORR |
Average observed response rate. |
Npatient |
A vector of number of patients enrolled for all simulation trials. |
ODC |
A vector of ODC for all simulation trials. |
prop_ODC |
A list of vectors storing dose levels for each patients allocation. |
datALL |
A list of data frames storing data of (doselevel, toxicity, efficacy) for each patient. |
References
Wages, N. A., & Conaway, M. R. (2014). Phase I/II adaptive design for drug combination oncology trials. Statistics in medicine, 33(12), 1990-2003. doi:10.1002/sim.6097
See Also
priorSkeletons
, get_ordering
, toxicity_est
, efficacy_est
, rBin2Corr
, binom.test
Examples
# input the scenario with pre-defined true toxicity and efficacy probabilities
scenario <- matrix(c(0.02, 0.05,
0.04, 0.10,
0.08, 0.15,
0.12, 0.32,
0.06, 0.10,
0.10, 0.15,
0.14, 0.25,
0.20, 0.35,
0.12, 0.18,
0.16, 0.22,
0.22, 0.35,
0.25, 0.40,
0.20, 0.24,
0.24, 0.35,
0.35, 0.45,
0.40, 0.50), ncol=2, byrow = TRUE)
# generate skeletons
DLT_skeleton <- priorSkeletons(updelta=0.025, target=0.3, npos=10, ndose=16,
model = "empiric", prior = "normal", beta_mean=0)
Efficacy_skeleton <- priorSkeletons(updelta=0.025, target=0.5, npos=10, ndose=16,
model = "empiric", prior = "normal", beta_mean=0)
# simulate 1 trial under the same model and prior distribution
simRes <- SIM_phase_I_II(nsim=1, Nmax=40, DoseComb=scenario, input_doseComb_forMat=c(4,4),
input_type_forMat="matrix", input_Nphase=20,
input_DLT_skeleton=DLT_skeleton,
input_efficacy_skeleton=Efficacy_skeleton,
input_DLT_thresh=0.3, input_efficacy_thresh=0.3,
input_cohortsize=1, input_corr=0,
input_early_stopping_safety_thresh=0.33,
input_early_stopping_futility_thresh=0.2,
input_model="empiric", input_para_prior="normal",
input_beta_mean=0, input_beta_sd=1,
input_theta_mean=0, input_theta_sd=1)