CFOeff.next {CFO} | R Documentation |
Determination of the dose level for next cohort in the calibration-free odds (CFO) design for phase I/II trials
Description
In the CFO design for phase I/II trials, the function is used to determine the dose movement based on the toxicity outcomes and efficacy outcomes of the enrolled cohorts.
Usage
CFOeff.next(target, txs, tys, tns, currdose,
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)
Arguments
target |
the target DLT rate. |
txs |
the cumulative counts of efficacy outcomes at all dose levels. |
tys |
the cumulative counts of DLTs observed at all dose levels. |
tns |
the cumulative counts of patients treated at all dose levels. |
currdose |
the current dose level. |
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. |
Details
The CFO design for phase I/II trials will determine admissible set A_n
through the dose escalation rules for the MTD. The current dose is set as
d_n
. If the decision is to de-escalate the dose, the set A_n
will be \{1,\dots,d_n-1\}
. If the decision is to stay at the
current dose, then the admissible set A_n
will be \{1,\dots,d_n\}
. If the decision is to escalate the dose, then A_n
will be
\{1,\dots,d_n+1\}
. The dose level d_{n+1}
for the next cohort will be selected from A_n
by using the rule:
d_{n+1} = argmax_{k\in A_n}Pr(q_k = max_{j\in A_n}\{q_j\}| D_n)
where D_n
and q_k
are the current data and the
efficacy probability for dose level k
.
Value
The CFOeff.next()
function returns a list object comprising the following elements:
target: the target DLT rate.
txs: the cumulative counts of efficacy outcomes at all dose levels.
tys: the cumulative counts of DLTs observed at all dose levels.
tns: the cumulative counts of patients treated at all dose levels.
decision: the decision in the CFO design, where
de-escalation
,stay
, andescalation
represent the movement directions of the dose level,stop_for_tox
indicates stopping the experiment because the lowest dose level is overly toxic andstop_for_low_eff
indicates that all dose level in the admissible set shows low efficacy.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)
, for doses in admissible set, wherep_k
,x_k
, andm_k
are the dose-limiting toxicity (DLT) rate, the numbers of observed DLTs, and the numbers of patients at dose levelk
.effprob: the empirical probability of
Pr(q_k=max_{j\in A_n}\{q_j\}|D_n)
for doses in admissible set, whereq_k
is efficacy probability at dose levelk
.A_n
is the admissible set determined through the dose escalation rules for the MTD andD_n
is the current cumulative dataset.admset: the admissible set
A_n
. The dose level for the next cohort will be selected fromA_n
.class: the phase of the trial.
Author(s)
Jialu Fang, Wenliang Wang, Ninghao Zhang, 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.
Examples
txs = c(3, 1, 7, 11, 26); tys = c(0, 0, 0, 0, 6); tns = c(6, 3, 12, 17, 36)
target <- 0.4
decision <- CFOeff.next(target,txs,tys,tns,currdose = 3, mineff = 0.3)
summary(decision)
#early stop for overly toxic
txs = c(13, 11, 7, 11, 26); tys = c(25, 18, 12, 17, 26); tns = c(36, 23, 22, 27, 36)
target <- 0.4
decision <- CFOeff.next(target,txs,tys,tns,currdose = 1, mineff = 0.3)
summary(decision)
#early stop for low efficacy
txs = c(0, 0, 0, 0, 0); tys = c(2, 1, 1, 1, 6); tns = c(36, 23, 22, 27, 36)
target <- 0.4
decision <- CFOeff.next(target,txs,tys,tns,currdose = 1, mineff = 0.3)
summary(decision)