simulate,DualDesign-method | R Documentation |
Simulate outcomes from a dual-endpoint design
## S4 method for signature 'DualDesign' simulate( object, nsim = 1L, seed = NULL, trueTox, trueBiomarker, args = NULL, sigma2W, rho = 0, firstSeparate = FALSE, mcmcOptions = McmcOptions(), parallel = FALSE, nCores = min(parallel::detectCores(), 5), ... )
object |
the |
nsim |
the number of simulations (default: 1) |
seed |
see |
trueTox |
a function which takes as input a dose (vector) and returns the
true probability (vector) for toxicity. Additional arguments can be supplied
in |
trueBiomarker |
a function which takes as input a dose (vector) and
returns the true biomarker level (vector). Additional arguments can be
supplied in |
args |
data frame with arguments for the |
sigma2W |
variance for the biomarker measurements |
rho |
correlation between toxicity and biomarker measurements (default: 0) |
firstSeparate |
enroll the first patient separately from the rest of the cohort? (not default) If yes, the cohort will be closed if a DLT occurs in this patient. |
mcmcOptions |
object of class |
parallel |
should the simulation runs be parallelized across the clusters of the computer? (not default) |
nCores |
how many cores should be used for parallel computing? Defaults to the number of cores on the machine, maximum 5. |
... |
not used |
an object of class DualSimulations
# Define the dose-grid emptydata <- DataDual(doseGrid = c(1, 3, 5, 10, 15, 20, 25, 40, 50, 80, 100)) # Initialize the CRM model model <- DualEndpointRW(mu = c(0, 1), Sigma = matrix(c(1, 0, 0, 1), nrow=2), sigma2betaW = 0.01, sigma2W = c(a=0.1, b=0.1), useLogDose=TRUE, refDose=2, rho = c(a=1, b=1), smooth="RW1") # Choose the rule for selecting the next dose myNextBest <- NextBestDualEndpoint(target=c(0.9, 1), overdose=c(0.35, 1), maxOverdoseProb=0.25) # Choose the rule for the cohort-size mySize1 <- CohortSizeRange(intervals=c(0, 30), cohortSize=c(1, 3)) mySize2 <- CohortSizeDLT(DLTintervals=c(0, 1), cohortSize=c(1, 3)) mySize <- maxSize(mySize1, mySize2) # Choose the rule for stopping myStopping4 <- StoppingTargetBiomarker(target=c(0.9, 1), prob=0.5) myStopping <- myStopping4 | StoppingMinPatients(10) # Choose the rule for dose increments myIncrements <- IncrementsRelative(intervals=c(0, 20), increments=c(1, 0.33)) # Initialize the design design <- DualDesign(model = model, data = emptydata, nextBest = myNextBest, stopping = myStopping, increments = myIncrements, cohortSize = mySize, startingDose = 3) # define scenarios for the TRUE toxicity and efficacy profiles betaMod <- function (dose, e0, eMax, delta1, delta2, scal) { maxDens <- (delta1^delta1) * (delta2^delta2)/((delta1 + delta2)^(delta1 + delta2)) dose <- dose/scal e0 + eMax/maxDens * (dose^delta1) * (1 - dose)^delta2 } trueBiomarker <- function(dose) { betaMod(dose, e0=0.2, eMax=0.6, delta1=5, delta2=5 * 0.5 / 0.5, scal=100) } trueTox <- function(dose) { pnorm((dose-60)/10) } # Draw the TRUE profiles par(mfrow=c(1, 2)) curve(trueTox(x), from=0, to=80) curve(trueBiomarker(x), from=0, to=80) # Run the simulation on the desired design # We only generate 1 trial outcome here for illustration, for the actual study # this should be increased of course, similarly for the McmcOptions - # they also need to be increased. mySims <- simulate(design, trueTox=trueTox, trueBiomarker=trueBiomarker, sigma2W=0.01, rho=0, nsim=1, parallel=FALSE, seed=3, startingDose=6, mcmcOptions = McmcOptions(burnin=100, step=1, samples=300))
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.