rdsim_multiarm: Risk Difference Simulation for Multi-Arm Multi-Stage Design

View source: R/rdsim_multiarm.R

rdsim_multiarmR Documentation

Risk Difference Simulation for Multi-Arm Multi-Stage Design

Description

Simulate a multi-arm multi-stage design for binary responses using risk-difference Wald statistics with closed testing.

Usage

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
)

Arguments

M

Number of active treatment arms.

kMax

Number of sequential looks.

criticalValues

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.

futilityBounds

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.

riskDiffH0s

Scalar or numeric vector of length M. Risk differences under H_0 for each active arm versus the common control. Defaults to 0.

allocations

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.

pis

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.

nullVariance

Whether to use the variance under the null or the empirical variance under the alternative.

n

Planned total sample size across all active arms and control.

plannedSubjects

Numeric vector of length kMax giving the planned cumulative sample size at each look for the first active arm and the common control combined.

maxNumberOfIterations

Number of Monte Carlo replications. Defaults to 1000.

seed

Random seed for reproducibility.

nthreads

Number of threads for parallel simulation. Use 0 to accept the default RcppParallel behavior.

Value

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.

Author(s)

Kaifeng Lu, kaifenglu@gmail.com

Examples

(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))


lrstat documentation built on Aug. 25, 2026, 5:07 p.m.