Skip to contents

[Experimental]

DesignOrdinal is the class for rule-based ordinal designs. The difference between this class and its parent RuleDesignOrdinal class is that the DesignOrdinal class contains additional model, stopping, increments and pl_cohort_size slots.

Usage

DesignOrdinal(
  model,
  stopping,
  increments,
  pl_cohort_size = CohortSizeOrdinal(1L, CohortSizeConst(0L)),
  ...
)

.DefaultDesignOrdinal()

Arguments

model

(LogisticLogNormalOrdinal)
see slot definition.

stopping

(StoppingOrdinal)
see slot definition.

increments

(IncrementsOrdinal)
see slot definition.

pl_cohort_size

(CohortSizeOrdinal)
see slot definition.

...

Arguments passed on to RuleDesignOrdinal

next_best

(NextBestOrdinal)
see slot definition.

cohort_size

(CohortSizeOrdinal)
see slot definition.

data

(DataOrdinal)
see slot definition.

starting_dose

(number)
see slot definition.

Slots

model

(LogisticLogNormalOrdinal)
the model to be used.

stopping

(StoppingOrdinal)
stopping rule(s) for the trial.

increments

(IncrementsOrdinal)
how to control increments between dose levels.

pl_cohort_size

(CohortSizeOrdinal)
rules for the cohort sizes for placebo, if any planned (defaults to constant 0 placebo patients).

Note

Typically, end users will not use the .DefaultDesignOrdinal() function.

Examples

my_size1 <- CohortSizeRange(
  intervals = c(0, 30),
  cohort_size = c(1, 3)
)
my_size2 <- CohortSizeDLT(
  intervals = c(0, 1),
  cohort_size = c(1, 3)
)
my_size <- CohortSizeOrdinal(1L, maxSize(my_size1, my_size2))

my_stopping1 <- StoppingMinCohorts(nCohorts = 3)
my_stopping2 <- StoppingTargetProb(
  target = c(0.2, 0.35),
  prob = 0.5
)
my_stopping3 <- StoppingMinPatients(nPatients = 20)
my_stopping <- StoppingOrdinal(1L, (my_stopping1 & my_stopping2) | my_stopping3)

# Initialize the design.
design <- DesignOrdinal(
  model = LogisticLogNormalOrdinal(
    mean = c(-3, -4, 1),
    cov = diag(c(3, 4, 1)),
    ref_dose = 50
  ),
  next_best = NextBestOrdinal(
    1L,
    NextBestNCRM(
      target = c(0.2, 0.35),
      overdose = c(0.35, 1),
      max_overdose_prob = 0.25
    )
  ),
  stopping = my_stopping,
  increments = IncrementsOrdinal(
    1L,
    IncrementsRelative(
      intervals = c(0, 20),
      increments = c(1, 0.33)
    )
  ),
  cohort_size = my_size,
  data = DataOrdinal(
    doseGrid = c(1, 3, 5, 10, 15, 20, 25, 40, 50, 80, 100),
    yCategories = c("No tox" = 0L, "Sub-tox AE" = 1L, "DLT" = 2L)
  ),
  starting_dose = 3
)