In the CFO design for phase I trials, the function is used to determine the dose movement based on the toxicity outcomes of the enrolled cohorts.
CFO.next(target, cys, cns, currdose,
prior.para = list(alp.prior = target, bet.prior = 1 - target),
cutoff.eli = 0.95, early.stop = 0.95)The CFO.next() function returns a list object comprising the following elements:
target: the target DLT rate.
cys: the cumulative counts of DLTs observed at the left, current, and right dose levels.
cns: the cumulative counts of patients treated at the left, current, and right dose levels.
decision: the decision in the CFO design, where left, stay, and right represent the
movement directions, and stop indicates stopping the experiment.
currdose: the current dose level.
nextdose: the recommended dose level for the next cohort. nextdose = 99 indicates that the trial is
terminated due to early stopping.
overtox: the situation regarding which positions experience over-toxicity. The dose level indicated
by overtox and all the dose levels above experience over-toxicity. overtox = NA signifies that
the occurrence of over-toxicity did not happen.
toxprob: the expected toxicity probability, \(Pr(p_k > \phi | x_k, m_k)\), at the left, current, and
right dose levels, where \(p_k\), \(x_k\), and \(m_k\) is the dose-limiting toxicity (DLT) rate, the
numbers of observed DLTs, and the numbers of patients at dose level \(k\). NA indicates that there
are no patients at the corresponding dose level.
the target DLT rate.
the cumulative numbers of DLTs observed at the left, current, and right dose levels.
the cumulative numbers of patients treated at the left, current, and right dose levels.
the current dose level.
the prior parameters for a beta distribution, where set as list(alp.prior = target, bet.prior = 1 - target)
by default, alp.prior and bet.prior represent the parameters of the prior distribution for
the true DLT rate at any dose level. This prior distribution is specified as Beta(alpha.prior, beta.prior).
the cutoff to eliminate overly toxic doses for safety. We recommend
the default value of cutoff.eli = 0.95 for general use.
the threshold value for early stopping. The default value early.stop = 0.95
generally works well.
Jialu Fang, Ninghao Zhang, Wenliang Wang, and Guosheng Yin
The CFO design determines the dose level for the next cohort by assessing evidence from the current dose level and its adjacent levels. This evaluation is based on odds ratios denoted as \(O_k\), where \(k = L, C, R\) represents left, current (central), and right dose levels. Additionally, we define \(\overline{O}_k = 1/O_k\). The ratio \(O_C / \overline{O}_{L}\) indicates the inclination for de-escalation, while \(\overline{O}_C / O_R\) quantifies the tendency for escalation. Threshold values \(\gamma_L\) and \(\gamma_R\) are chosen to minimize the probability of making incorrect decisions. The decision process is summarized in Table 1 of Jin and Yin (2022). The early stopping and dose elimination rules are implemented to ensure patient safety. If the data suggest excessive toxicity at the current dose level, we exclude that dose level and those higher levels. If the lowest dose level is overly toxic, the trial will be terminated according to the early stopping rule.
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.
## determine the dose level for the next cohort of new patients
cys <- c(0, 1, 0); cns <- c(3, 6, 0)
decision <- CFO.next(target=0.2, cys=cys, cns=cns, currdose=3)
summary(decision)
cys <- c(NA, 3, 0); cns <- c(NA, 3, 0)
decision <- CFO.next(target=0.2, cys=cys, cns=cns, currdose=1)
summary(decision)
cys <- c(0, 3, NA); cns <- c(3, 3, NA)
decision <- CFO.next(target=0.2, cys=cys, cns=cns, currdose=7)
summary(decision)
Run the code above in your browser using DataLab