Simulate a multi-arm multi-stage design for binary responses using risk-difference Wald statistics with closed testing.
rdsim_multiarm(
M = 2,
kMax = 1,
criticalValues = NA,
futilityBounds = NULL,
riskDiffH0s = 0,
allocations = 1,
pis = NULL,
nullVariance = TRUE,
n = NA,
plannedSubjects = NA,
maxNumberOfIterations = 1000,
seed = 0,
nthreads = 0
)An S3 object of class "rdsim_multiarm" with these components:
overview: A list summarizing trial-level results and settings:
overallReject: Overall probability of rejecting the null
by trial end.
overallFutility: Overall probability of stopping for futility
by trial end.
rejectPerStage: Probability of rejecting the null for each
active arm at each stage.
futilityPerStage: Probability of futility stopping for each
active arm at each stage.
cumulativeRejection: Cumulative probability of rejection by
stage.
cumulativeFutility: Cumulative futility stopping probability
by stage.
numberOfEvents: Cumulative event counts by stage and arm.
numberOfSubjects: Cumulative enrollments by stage and arm.
expectedNumberOfEvents: Expected cumulative events at trial end.
expectedNumberOfSubjects: Expected cumulative enrollments at
trial end.
criticalValues: The input matrix of by-level critical values.
futilityBounds: The input futility boundaries for each stage.
riskDiffH0s: The input risk differences under \(H_0\).
nullVariance: Whether to use variance under \(H_0\).
numberOfIterations: Number of simulation iterations performed.
n: Planned total sample size.
allocations: The input allocation ratios.
responseRates: The input response rates for each arm.
plannedSubjects: The input planned cumulative sample size at
each look for the first active arm and the common control combined.
M: Number of active arms.
kMax: Number of sequential looks.
sumdata1: Data frame summarizing each iteration, stage, and
treatment group:
iterationNumber, stopStage, stageNumber,
treatmentGroup, accruals, events, phat.
For each stage the final row summarizes the overall study (all arms combined).
sumdata2: Data frame summarizing test statistics by iteration,
stage, and active arm:
iterationNumber, stopStage, stageNumber,
activeArm, totalAccruals, totalEvents,
riskDiff, vriskDiff, riskDiffZ,
reject, futility.
Number of active treatment arms.
Number of sequential looks.
Numeric matrix of dimension \(kMax \times M\) giving the by-look critical values for the closed testing procedure. The first column is used for the level-M test and the last column for the level-1 test.
Numeric vector of length \(kMax - 1\) giving the futility boundaries on the Wald-statistic scale for the first \(kMax - 1\) looks. At an interim look, the study stops for futility if all active treatment arms fall below the futility boundary. If omitted, no interim futility stopping is applied.
Scalar or numeric vector of length \(M\). Risk differences under \(H_0\) for each active arm versus the common control. Defaults to 0.
Integer or integer vector of length \(M + 1\). Number of subjects per arm within a randomization block. A single value implies equal allocation; defaults to 1. The first \(M\) elements refer to the active arms and the last element refers to the common control.
Numeric vector of length \(M + 1\). Each element corresponds to the response rate for a treatment arm. The first \(M\) elements refer to the active arms and the last element refers to the common control.
Whether to use the variance under the null or the empirical variance under the alternative.
Planned total sample size across all active arms and control.
Numeric vector of length \(kMax\) giving the planned cumulative sample size at each look for the first active arm and the common control combined.
Number of Monte Carlo replications. Defaults to 1000.
Random seed for reproducibility.
Number of threads for parallel simulation. Use 0 to accept the default RcppParallel behavior.
Kaifeng Lu, kaifenglu@gmail.com
(sim1 <- rdsim_multiarm(
M = 2,
kMax = 3,
criticalValues = matrix(c(3.880, 2.747, 2.275,
3.710, 2.511, 1.993), 3, 2),
futilityBounds = c(0.043, 1.194),
pis = c(0.25, 0.30, 0.20),
n = 486,
plannedSubjects = c(146, 292, 324),
maxNumberOfIterations = 10000,
seed = 314159,
nthreads = 1))
Run the code above in your browser using DataLab