CFO.oc {CFO} | R Documentation |
Generate operating characteristics of sigle-drug trials in multiple simulations
Description
This function is used to perform multiple simulations for single-drug trials and obtain relevant operating characteristics.
Usage
CFO.oc(nsimu = 5000, design, target, p.true, init.level = 1, ncohort, cohortsize,
assess.window = NA, tte.para = NA, accrual.rate = NA, accrual.dist = NA,
prior.para = list(alp.prior = target, bet.prior = 1 - target),
cutoff.eli = 0.95, early.stop = 0.95, seeds = NULL)
Arguments
nsimu |
the total number of trials to be simulated. The default value is 5000. |
design |
option for selecting different designs, which can be set as |
target |
the target DLT rate. |
p.true |
the true DLT rates under the different dose levels. |
init.level |
the dose level assigned to the first cohort. The default value |
ncohort |
the total number of cohorts. |
cohortsize |
the number of patients of each cohort. |
assess.window |
the maximal assessment window size. |
tte.para |
the parameter related with the distribution of the time to DLT events. The time to DLT is sampled from a Weibull
distribution, with |
accrual.rate |
the accrual rate, i.e., the number of patients accrued per unit time. |
accrual.dist |
the distribution of the arrival times of patients. When |
prior.para |
the prior parameters for a beta distribution, 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. The default value |
seeds |
A vector of random seeds for each simulation, for example, |
Value
The CFO.oc()
function returns basic setup of ($simu.setup) and the operating
characteristics of the design:
p.true: the true DLT rates under the different dose levels.
selpercent: the selection percentage at each dose level.
npatients: the averaged number of patients treated at each dose level in one simulation.
ntox: the averaged number of toxicity observed at each dose level in one simulation.
MTDsel: the percentage of correct selection of the MTD.
MTDallo: the percentage of patients allocated to the MTD.
oversel: the percentage of selecting a dose above the MTD.
overallo: the percentage of allocating patients at dose levels above the MTD.
averDLT: the percentage of the patients suffering DLT.
averdur: the average trial duration if trials with late-onset toxicities.
percentstop: the percentage of early stopping without selecting the MTD.
simu.setup: the parameters for the simulation set-up.
Note
The operating characteristics are generated by simulating multiple single-drug trials under the
pre-specified true toxicity probabilities of the investigational doses. The choice of which design to execute
is determined by setting the design
argument. Some time-related arguments (assess.window
, accrual.rate
,
tte.para
, and accrual.dist
) need to be set as values only when running a design that can handle late-onset
toxicities; otherwise, they default to NA
.
Additionally, in the example, we set nsimu = 5
for testing time considerations. In reality, nsimu
is typically set to 5000 to ensure the accuracy of the results.
Author(s)
Jialu Fang, Wenliang Wang, and Guosheng Yin
References
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.
Jin H, Yin G (2023). Time‐to‐event calibration‐free odds design: A robust efficient design for
phase I trials with late‐onset outcomes. Pharmaceutical Statistics. 22(5), 773–783.
Yin G, Zheng S, Xu J (2013). Fractional dose-finding methods with late-onset toxicity in
phase I clinical trials. Journal of Biopharmaceutical Statistics, 23(4), 856-870.
Fang J, Yin G (2024). Fractional accumulative calibration‐free odds (f‐aCFO) design for delayed toxicity
in phase I clinical trials. Statistics in Medicine.
Examples
## setting
nsimu <- 5; target <- 0.2; ncohort <- 10; cohortsize <- 3; init.level <- 1
p.true <- c(0.01, 0.07, 0.20, 0.35, 0.50, 0.65, 0.80)
prior.para = list(alp.prior = target, bet.prior = 1 - target)
assess.window <- 3; accrual.rate <- 2; tte.para <- 0.5; accrual.dist <- 'unif'
## get the operating characteristics for 5 simulations using the f-aCFO design
faCFOoc <- CFO.oc (nsimu, design='f-aCFO', target, p.true, init.level, ncohort, cohortsize,
assess.window, tte.para, accrual.rate, accrual.dist, seeds = 1:nsimu)
summary(faCFOoc)
plot(faCFOoc)
# This test may take longer than 5 seconds to run
# It is provided for illustration purposes only
# Users can run this code directly
## get the operating characteristics for 5 simulations using the CFO design
CFOoc <- CFO.oc (nsimu, design = 'CFO', target, p.true, init.level, ncohort, cohortsize,
assess.window = NA, tte.para = NA, accrual.rate = NA, accrual.dist = NA, seeds = 1:nsimu)
summary(CFOoc)
plot(CFOoc)
## get the operating characteristics for 5 simulations using the aCFO design
aCFOoc <- CFO.oc (nsimu, design = 'aCFO', target, p.true, init.level, ncohort, cohortsize,
assess.window = NA, tte.para = NA, accrual.rate = NA, accrual.dist = NA, seeds = 1:nsimu)
summary(aCFOoc)
plot(aCFOoc)
## get the operating characteristics for 5 simulations using the TITE-CFO design
TITECFOoc <- CFO.oc (nsimu, design = 'TITE-CFO', target, p.true, init.level, ncohort, cohortsize,
assess.window, tte.para, accrual.rate, accrual.dist, seeds = 1:nsimu)
summary(TITECFOoc)
plot(TITECFOoc)
## get the operating characteristics for 5 simulations using the TITE-aCFO design
TITEaCFOoc <- CFO.oc (nsimu, design = 'TITE-aCFO', target, p.true, init.level, ncohort, cohortsize,
assess.window, tte.para, accrual.rate, accrual.dist, seeds = 1:nsimu)
summary(TITEaCFOoc)
plot(TITEaCFOoc)
## get the operating characteristics for 5 simulations using the fCFO design
fCFOoc <- CFO.oc (nsimu, design = 'fCFO', target, p.true, init.level, ncohort, cohortsize,
assess.window, tte.para, accrual.rate, accrual.dist, seeds = 1:nsimu)
summary(fCFOoc)
plot(fCFOoc)
## get the operating characteristics for 5 simulations using the bCFO design
bCFOoc <- CFO.oc (nsimu, design = 'bCFO', target, p.true, init.level, ncohort, cohortsize,
assess.window, tte.para, accrual.rate, accrual.dist, seeds = 1:nsimu)
summary(bCFOoc)
plot(bCFOoc)
## get the operating characteristics for 5 simulations using the b-aCFO design
baCFOoc <- CFO.oc (nsimu, design = 'b-aCFO', target, p.true, init.level, ncohort, cohortsize,
assess.window, tte.para, accrual.rate, accrual.dist, seeds = 1:nsimu)
summary(baCFOoc)
plot(baCFOoc)