CFOeff.simu | R Documentation |
In the CFO design for phase I/II trials, the function is used to conduct one single simulation and find the optimal biological dose (OBD).
CFOeff.simu(target, p.true, pE.true, ncohort=10, init.level=1, cohortsize=3,
prior.para = list(alp.prior = target, bet.prior = 1 - target,
alp.prior.eff = 0.5, bet.prior.eff = 0.5),
cutoff.eli = 0.95, early.stop = 0.95,
effearly.stop = 0.9, mineff, seed = NULL)
target |
the target DLT rate. |
p.true |
the true DLT rates under the different dose levels. |
pE.true |
the true efficacy rates under the different dose levels. |
ncohort |
the total number of cohorts. |
init.level |
the dose level assigned to the first cohort. The default value of |
cohortsize |
the number of patients of each cohort. |
prior.para |
the prior parameters for two beta distributions, where set as |
cutoff.eli |
the cutoff to eliminate overly toxic doses for safety. We recommend
the default value of |
early.stop |
the threshold value for early stopping due to overly toxic. The default value |
effearly.stop |
the threshold value for early stopping due to low efficacy. The trial would be terminated
early if |
mineff |
the lowest acceptable efficacy rate. |
seed |
an integer to be set as the seed of the random number generator for reproducible results. The default value is set to |
The CFOeff.simu
function returns a list object comprising the following components:
OBD: the selected OBD. OBD = 99
indicates that the simulation is terminated due to early stopping.
target: the target DLT rate.
npatients: the total number of patients allocated to all dose levels.
neff: the total number of efficacy outcomes for all dose levels.
ntox: the total number of DLTs observed for all dose levels.
pE.true: the true efficacy rates under the different dose levels.
p.true: the true DLT rates under the different dose levels.
cohortdose: a vector including the dose level assigned to each cohort.
ptoxic: the percentage of subjects assigned to dose levels with a DLT rate greater than the target.
patientDLT: a vector including the DLT outcome observed for each patient.
patienteff: a vector including the efficacy outcome observed for each patient.
over.doses: a vector indicating whether each dose is overdosed or not (1 for yes).
under.eff: a vector indicating whether the efficacy of each dose is lower than acceptable efficacy rate (1 for yes).
correct: a binary indicator of whether the recommended dose level matches the correct OBD (1 for yes). The correct OBD is the dose level in the admissible set with the upper bound being the correct MTD, which has the highest true efficacy probability.
OBDprob: the probability that each dose level would be selected as OBD. The probability indicates that q_k
corresponds
to dose level k
being the highest in the admissible set. q_k
is efficacy probability correspond to dose level k here.
sumDLT: the total number of DLT observed.
sumeff: the total number of efficacy outcome observed.
earlystop: a binary indicator of whether the trial is early stopped (1 for yes).
stopreason: the reason for earlystop. overly_toxic
represents the trial was terminated
beacuse all tested doses were overly toxic. low_efficacy
represents the trial was terminated
because all tested doses show low efficacy.
class: the phase of the trial.
The CFOeff.simu
function is designed to conduct a single CFO simulation for phase I/II trials. The dose elimination rule is the
same as the case in phase I (refer to the function CFO.simu
). As for early stopping rule, compared to the case of phase I, the rule
in this case further considers the efficacy data to terminate the trial early if none of the admissible dose levels show adequate
efficacious effect.
Jialu Fang, Ninghao Zhang, Wenliang Wang, and Guosheng Yin
Jin H, Yin G (2022). CFO: Calibration-free odds design for phase I/II clinical trials.
Statistical Methods in Medical Research, 31(6), 1051-1066.
target <- 0.30; mineff <- 0.30; cohortsize = 3; ncohort = 20; init.level = 1
prior.para = list(alp.prior = target, bet.prior = 1 - target,
alp.prior.eff = 0.5, bet.prior.eff = 0.5)
p.true=c(0.05, 0.07, 0.1, 0.12, 0.16)
pE.true=c(0.35, 0.45, 0.5, 0.55, 0.75)
result <- CFOeff.simu(target, p.true, pE.true, ncohort, init.level, cohortsize,
prior.para, mineff = mineff, seed = 1)
summary(result)
plot(result)
### overly toxic
target <- 0.30; mineff <- 0.30; cohortsize = 3; ncohort = 20; init.level = 1
prior.para = list(alp.prior = target, bet.prior = 1 - target,
alp.prior.eff = 0.5, bet.prior.eff = 0.5)
p.true=c(0.55, 0.57, 0.61, 0.62, 0.66)
pE.true=c(0.35, 0.45, 0.5, 0.55, 0.75)
result <- CFOeff.simu(target, p.true, pE.true, ncohort, init.level, cohortsize,
prior.para, mineff = mineff, seed = 1)
summary(result)
plot(result)
### low efficacy
target <- 0.30; mineff <- 0.30; cohortsize = 3; ncohort = 20; init.level = 1
prior.para = list(alp.prior = target, bet.prior = 1 - target,
alp.prior.eff = 0.5, bet.prior.eff = 0.5)
p.true=c(0.05, 0.07, 0.1, 0.12, 0.16)
pE.true=c(0.001, 0.003, 0.004, 0.005, 0.006)
result <- CFOeff.simu(target, p.true, pE.true, ncohort, init.level, cohortsize,
prior.para, mineff = mineff, seed = 1)
summary(result)
plot(result)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.