The Bayesian Optimal Interval (BOIN) design was introduced by Liu and Yuan (2015). It is one of a series of dose-finding trial designs that works by partitioning the probability of toxicity into a set of intervals. These designs make dose-selection decisions that are determined by the interval in which the probability of toxicity for the current dose is believed to reside.
BOIN seeks a dose with probability of toxicity close to some pre-specified target level, pT. Let the probability of toxicity at dose i be pi. The entire range of possible values for pi can be broken up into the following intervals:
Let πUI, i, πEI, i and πOI, i be the a-priori probabilities that the rate of toxicity associated with dose i belongs to the intervals UI, EI and OI. By definition, πUI, i + πEI, i + πOI, i = 1. The authors advocate $\pi_{UI,i} = \pi_{EI,i} = \pi_{OI,i} = \frac{1}{3}$.
Let ni be the number of patients that have been treated at dose i, yielding xi toxicity events. The so-called local BOIN variant (i.e. that advocated by Liu and Yuan (2015)) defines:
$$ \lambda_{1i} = \frac{\log{\left( \frac{1 - \phi_1}{1 - p_T} \right)} + \frac{1}{n_i} \log{\left( \frac{\pi_{UI,i}}{\pi_{EI,i}} \right)} }{ \log{\left( \frac{p_T (1 - \phi_1)}{\phi_1 (1 - p_T)} \right)} }$$
$$ \lambda_{2i} = \frac{\log{\left( \frac{1 - p_T}{1 - \phi_2} \right)} + \frac{1}{n_i} \log{\left( \frac{\pi_{EI,i}}{\pi_{OI,i}} \right)} }{ \log{\left( \frac{ \phi_2(1 - p_T)}{p_T (1 - \phi_2)} \right)} }$$
where ϕ1 and ϕ2 are model parameters. The authors advocate ϕ1 ∈ [0.5pT, 0.7pT] and ϕ2 ∈ [1.3pT, 1.5pT]. As defaults, they recommend ϕ1 = 0.6pT and ϕ2 = 1.4pT.
Having observed toxicity rate p̂i = xi/ni at the current dose i, the logical action depends on the interval in which p̂i resides. If p̂i < λ1i, then the current dose is likely an underdose, so our desire should be to escalate dose to i + 1. In contrast, if p̂i > λ2i, then the current dose is likely an overdose and we will want to de-escalate dose to i − 1 for the next patient. If λ1i < p̂i < λ2i, then the current dose is deemed sufficiently close to pT and we will want to stay at dose-level i.
The authors advocate a stopping rule to protect against repeated administration of a dose that is evidently excessively toxic. The proposed rule is similar to that used in TPI and mTPI. Using a Beta(1, 1) prior, dose i is deemed inadmissible for being excessively toxic if
Pr(pi > pT|xi, ni) > ξ,
for a certainty threshold, ξ, with ξ = 0.95 being suggested. If a dose is excluded by this rule, it should not be recommended by the model. Irrespective the values of λ1i and λ1i, the design will recommend to stay at dose i rather than escalate to a dose previously identified as being inadmissible. Furthermore, the design will advocate stopping if the lowest dose is inferred to be inadmissible.
See Liu and Yuan (2015) and Yuan and Liu (2018) for full details.
escalation
To demonstrate the method, let us reproduce the dose selection sequence in a trial of five doses targeting pT = 0.3, described in Yuan and Liu (2018).
Opting to take the defaults, ϕ1 = 0.6pT = 0.18 and ϕ2 = 1.4pT = 0.42, we create an object to fit the model using:
This is short-hand for
The text in the paper describes that outcomes ‘1NNN’ were observed in the first cohort:
leading to advice to escalate:
The next cohort also saw three non-toxicity events, leading to advice:
In the third cohort, two patients had toxicity, leading to advice:
The relatively low sample size at dose 3 means that the dose has not yet been rendered inadmissible:
We can reproduce some of the advice above using dose-paths to
exhaustively calculate all possible future model advice. For example,
after observing 1NNN
in the first cohort, we can reproduce
the advice to escalate further after seeing 2NNN
and then
de-escalate after seeing 3NTT
using:
cohort_sizes <- c(3, 3)
paths <- model %>% get_dose_paths(cohort_sizes = cohort_sizes,
previous_outcomes = '1NNN', next_dose = 2)
graph_paths(paths)
Thus, we can trace the path 1NNN 2NNN 3NNT
, along with
every other possible path in two cohorts of three after having observed
1NNN
.
For more information on working with dose-paths, refer to the dose-paths vignette.
Liu and Yuan (2015) present in their
Table 4 some simulated operating characteristics. We can use the
simulate_trials
function to reproduce the findings.
Their example concerns a clinical trial of six doses that targets 25%
toxicity. We specify the model
object to reflect this. They
also elect to limit the trial to a sample size of n = 36:
Their scenario 1 investigates the true probability vector:
For the sake of speed, we will run just fifty iterations:
In real life, however, we would naturally run many thousands of iterations.
Running the simulation:
we see that from this small sample size, the probability that each dose is recommended is similar to that reported:
and so is the expected number of patients treated at each dose level:
For more information on running dose-finding simulations, refer to the simulation vignette.