DEFUSE3Design: The DEFUSE3 design

DEFUSE3DesignR Documentation

The DEFUSE3 design

Description

DEFUSE3Design is a slight variant of the the adaptive clinical trial design of Lai, Lavori and Liao. Simulation is used to compute the expected maximum sample size and the boundary for early futility is adjusted to account as well.

Super class

ASSISTant::ASSISTDesign -> DEFUSE3Design

Methods

Public methods

Inherited methods

Method getOriginalBoundaries()

Return the original boundaries for the design

Usage
DEFUSE3Design$getOriginalBoundaries()
Returns

a named vector of values for b, btilde and c


Method new()

Create a DEFUSE3Design object

Usage
DEFUSE3Design$new(
  designParameters,
  trialParameters,
  discreteData = FALSE,
  numberOfSimulations = 5000,
  rngSeed = 54321,
  showProgress = TRUE,
  trueParameters = NULL,
  boundaries
)
Arguments
designParameters

parameters of the experimental design. Must contain apropriate distributions to sample from, if discreteData = TRUE

trialParameters

the trial parameters, such as sample size etc.

discreteData

a flag indicating that a discrete distribution is to be used for the Rankin scores

numberOfSimulations

the number of simulations to use, default 5000

rngSeed

the random number generator seed

showProgress

a boolean flag to show progress (default TRUE)

trueParameters

a list of true parameter values reflecting the state of nature

boundaries

decision boundaries to use for interim looks, a named vector of btilde, b and c values

Returns

a new AssistDesign object


Method adjustCriticalValues()

Adjust critical values to account for sample size loss due to futility

Usage
DEFUSE3Design$adjustCriticalValues(numberOfSimulations, rngSeed, showProgress)
Arguments
numberOfSimulations

the number of simulations to use

rngSeed

the random number generator seed

showProgress

a boolean flag for showing progress

Returns

the adjusted boundaries


Method explore()

Explore the design using the specified number of simulations and random number seed and other parameters.

Usage
DEFUSE3Design$explore(
  numberOfSimulations = 5000,
  rngSeed = 12345,
  trueParameters = self$getDesignParameters(),
  recordStats = TRUE,
  showProgress = TRUE,
  saveRawData = FALSE
)
Arguments
numberOfSimulations

default number of simulations is 5000

rngSeed

default seed is 12345

trueParameters

the state of nature, by default the value of self$getDesignParameters() as would be the case for a Type I error calculation. If changed, would yield power.

recordStats

a boolean flag (default TRUE) to record statistics

showProgress

a boolean flag to show progress, default TRUE

saveRawData

a flag (default FALSE) to indicate if raw data has to be saved

Returns

a list of results


Method performInterimLook()

Perform an interim look for futility

Usage
DEFUSE3Design$performInterimLook(trialData, stage, recordStats = FALSE)
Arguments
trialData

trial data frame

stage

the trial stage

recordStats

a boolean flag to record all statistics

Returns

the trial history


Method clone()

The objects of this class are cloneable with this method.

Usage
DEFUSE3Design$clone(deep = FALSE)
Arguments
deep

Whether to make a deep clone.

See Also

ASSISTDesign which is a superclass of this object

Examples

trialParameters <- list(N = c(200, 340, 476), type1Error = 0.025,
                        eps = 1/2, type2Error = 0.1)
designParameters <- list(
   nul0 = list(prevalence = rep(1/6, 6), mean = matrix(0, 2, 6),
               sd = matrix(1, 2, 6)),
   alt1 = list(prevalence = rep(1/6, 6), mean = rbind(rep(0, 6),
               c(0.5, 0.4, 0.3, 0, 0, 0)),
               sd = matrix(1, 2, 6)),
   alt2 = list(prevalence = rep(1/6, 6), mean = rbind(rep(0, 6),
               c(0.5, 0.5, 0, 0, 0, 0)),
               sd = matrix(1,2, 6)),
   alt3 = list(prevalence = rep(1/6, 6), mean = rbind(rep(0, 6), rep(0.36, 6)),
               sd = matrix(1,2, 6)),
   alt4 = list(prevalence = rep(1/6, 6), mean = rbind(rep(0, 6), rep(0.30, 6)),
               sd = matrix(1,2, 6)),
   alt5 = list(prevalence = rep(1/6, 6), mean = rbind(rep(0, 6),
               c(0.4, 0.3, 0.2, 0, 0, 0)),
               sd = matrix(1,2, 6)),
   alt6 = list(prevalence = rep(1/6, 6), mean = rbind(rep(0, 6),
               c(0.5, 0.5, 0.3, 0.3, 0.1, 0.1)),
               sd = matrix(1,2, 6)))

## Not run: 
## A realistic design uses 5000 simulations or more!
defuse3 <- DEFUSE3Design$new(trialParameters = trialParameters,
                             numberOfSimulations = 25,
                             designParameters = designParameters$nul0,
                             showProgress = FALSE)
print(defuse3)
result <- defuse3$explore(showProgress = interactive())
analysis <- defuse3$analyze(result)
print(defuse3$summary(analysis))

## End(Not run)
## For full examples, try:
## browseURL(system.file("full_doc/defuse3.html", package="ASSISTant"))


ASSISTant documentation built on Dec. 2, 2022, 5:12 p.m.