Description Usage Arguments Details References Examples
Implemented currently only for the (most?) common variant of the 3+3 design, which requires that at least 6 patients be treated at a dose before it may be declared as ‘the’ MTD.
1 | exact(selector_factory)
|
selector_factory |
An object of type
|
In any given realization of a 3+3 design, each of the D prespecified doses will enroll 0, 1 or 2 cohorts, each with 3 patients. Each cohort will result in a tally of 0–3 dose-limiting toxicities (DLTs), and these may be recorded in a 2 x D matrix. Moreover, the 3+3 dose-escalation rules allow for only one path through any such matrix. For example, the matrix
1 2 3 4 |
represents the path in a 4-dose 3+3 trial, where the following events occur:
Initial cohort at d=1 results 0/3
Escalation to d=2 results 1/3
Additional cohort at d=2 results 0/3 for net 1/6 at this dose
Escalation to d=3 results 2/3; MTD declared as d=1.
(Indeed, as you may verify at the R prompt, the above matrix is the 262nd of 442
such paths enumerated comprehensively in the 2 x 4 x 442
array precautionary:::T[[4]]
.)
As detailed in Norris 2020c (below), these matrices may be used to construct simple
matrix computations that altogether eliminate the need for discrete-event simulation
of the 3+3 design. For each D = 2,...,8, the precautionary
package has
pretabulated a J x 2D matrix precautionary:::U[[D]]
and
J-vector precautionary:::b[[D]]
such that the J-vector π
of path probabilities is given by:
log(π) = b + U [log(p), log(q)]',
where p is the D-vector of DLT probabilities at the prespecified doses, and q := 1-p is its complement. See Eq. (4) of Norris (2020c).
For details on the enumeration itself, please see the Prolog code in directory
exec/
of the installed package.
Norris DC. What Were They Thinking? Pharmacologic priors implicit in a choice of 3+3 dose-escalation design. arXiv:2012.05301 [stat.ME]. December 2020. https://arxiv.org/abs/2012.05301
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | # Run an exact version of the simulation from FDA-proactive vignette
design <- get_three_plus_three(
num_doses = 6
, allow_deescalate = TRUE)
old <- options(
dose_levels = c(2, 6, 20, 60, 180, 400)
, ordinalizer = function(MTDi, r0 = 1.5)
MTDi * r0 ^ c(Gr1=-2, Gr2=-1, Gr3=0, Gr4=1, Gr5=2)
)
mtdi_gen <- hyper_mtdi_lognormal(CV = 0.5
,median_mtd = 180
,median_sdlog = 0.6
,units="ng/kg/week")
exact(design) %>% simulate_trials(
num_sims = 1000
, true_prob_tox = mtdi_gen) -> EXACT
summary(EXACT)$safety
if (interactive()) { # runs too long for CRAN servers
# Compare with discrete-event-simulation trials
design %>% simulate_trials(
num_sims = 1000
, true_prob_tox = mtdi_gen) -> DISCRETE
summary(DISCRETE)$safety[,]
# Note the larger MCSEs in this latter simulation, reflecting combined noise
# from hyperprior sampling and the nested discrete-event trial simulations.
# The MCSE of the former simulation is purely from the hyperprior sampling,
# since the nested trial simulation is carried out by an exact computation.
}
options(old)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.