exact: A wrapper function supporting exact simulation of...

Description Usage Arguments Details References Examples

View source: R/exact.R

Description

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.

Usage

1
exact(selector_factory)

Arguments

selector_factory

An object of type three_plus_three_selector_factory, with allow_deescalation = TRUE.

Details

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
   d
c   D1 D2 D3 D4
  1  0  1  2 NA
  2 NA  0 NA NA

represents the path in a 4-dose 3+3 trial, where the following events occur:

  1. Initial cohort at d=1 results 0/3

  2. Escalation to d=2 results 1/3

  3. Additional cohort at d=2 results 0/3 for net 1/6 at this dose

  4. 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.

References

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

Examples

 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)

precautionary documentation built on Aug. 9, 2021, 9:14 a.m.