ASSISTDesign
objects are used to design, simulate and analyze
adaptive group sequential clinical trial with three stages. For details refer to the paper
Adaptive Choice of Patient Subgroup for Comparing Two Treatments
by Tze Leung Lai and Philip W. Lavori and Olivia Yueh-Wen Liao. Contemporary Clinical Trials,
Vol. 39, No. 2, pp 191-200 (2014).
new()
Create a new ASSISTDesign
instance using the parameters specified.
ASSISTDesign$new(
designParameters,
trialParameters,
discreteData = FALSE,
boundaries
)
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
boundaries
decision boundaries to use for interim looks, a named vector of btilde
, b
and c
values
a new AssistDesign
object
getDesignParameters()
return the designParameters field
ASSISTDesign$getDesignParameters()
getTrialParameters()
return the trialParameters field
ASSISTDesign$getTrialParameters()
getBoundaries()
return the boundaries field
ASSISTDesign$getBoundaries()
setBoundaries()
Set the boundaries field
ASSISTDesign$setBoundaries(value)
value
a named vector of btilde
, b
and c
values
computeCriticalValues()
Compute the critical boundary values \(\tilde{b}\), \(b\) and \(c\) for futility, efficacy and final efficacy decisions. This is time consuming so cache where possible.
ASSISTDesign$computeCriticalValues()
a named vector of critical values with names btilde
, b
, and c
as in the paper
explore()
Explore the design using the specified number of simulations and random number seed and other parameters.
ASSISTDesign$explore(
numberOfSimulations = 5000,
rngSeed = 12345,
trueParameters = self$getDesignParameters(),
recordStats = TRUE,
showProgress = TRUE,
fixedSampleSize = FALSE,
saveRawData = FALSE
)
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
fixedSampleSize
a bollean flag indicating that patients lost after a futile overall look are not made up, default FALSE
.
saveRawData
a flag (default FALSE
) to indicate if raw data has to be saved
a list of results
performInterimLook()
Perform an interim look on trial data
ASSISTDesign$performInterimLook(
trialData,
stage,
recordStats = FALSE,
fixedSampleSize = FALSE
)
trialData
trial data frame
stage
the trial stage
recordStats
a boolean flag to record all statistics
fixedSampleSize
a flag to use a fixed sample size to account for loss to follow up
the trial history
analyze()
Analyze the exploration data from trial
ASSISTDesign$analyze(trialExploration)
trialExploration
the result of a call to explore()
to simulate the design
Return a list of summary quantities
summary()
Print the operating characteristics of the design using the analysis data
ASSISTDesign$summary(analysis)
analysis
the analysis result from the analyze()
call
clone()
The objects of this class are cloneable with this method.
ASSISTDesign$clone(deep = FALSE)
deep
Whether to make a deep clone.
LLL.SETTINGS
for an explanation of trial parameters
if (FALSE) {
data(LLL.SETTINGS)
prevalence <- LLL.SETTINGS$prevalences$table1
scenario <- LLL.SETTINGS$scenarios$S0
designParameters <- list(prevalence = prevalence,
mean = scenario$mean,
sd = scenario$sd)
designA <- ASSISTDesign$new(trialParameters = LLL.SETTINGS$trialParameters,
designParameters = designParameters)
print(designA)
result <- designA$explore(showProgress = interactive())
analysis <- designA$analyze(result)
designA$summary(analysis)
}
Run the code above in your browser using DataLab