Here, we present the calculations for the initial design of the DEFUSE3 trial based on [@Lai2014191] and [@Lai201593]. The trial parameters are fixed as follows.
NOTE The number of simulations has been drastically reduced in this vignette in order to avoid taxing CRAN servers. The full_doc
sources contain the complete sources and output; see files in the directory
system.file("full_doc", package="ASSISTant")
library(ASSISTant)
##Fix randomization vector N, errors, eps
trialParameters <- list(N = c(200, 340, 476), type1Error = 0.025,
eps = 1/2, type2Error = 0.1)
The design parameters are the following for various scenarios.
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))
)
defuse3 <- DEFUSE3Design$new(trialParameters = trialParameters,
numberOfSimulations = 100,
designParameters = designParameters$nul0, showProgress = FALSE)
print(defuse3)
## Design Parameters:
## List of 4
## $ prevalence: num [1:6] 0.167 0.167 0.167 0.167 0.167 ...
## $ mean : num [1:2, 1:6] 0 0 0 0 0 0 0 0 0 0 ...
## $ sd : num [1:2, 1:6] 1 1 1 1 1 1 1 1 1 1 ...
## $ J : int 6
## Trial Parameters:
## List of 5
## $ N : num [1:3] 200 340 476
## $ type1Error: num 0.025
## $ eps : num 0.5
## $ type2Error: num 0.1
## $ effectSize: num 0.107
## Boundaries:
## Named num [1:3] -1.88 2.63 2.61
## - attr(*, "names")= chr [1:3] "btilde" "b" "c"
## Data Generating function:
## function (prevalence = rep(1/6, 6), N, mean = matrix(0, 2, 6),
## sd = matrix(1, 2, 6))
## {
## if (N == 0) {
## data.frame(subGroup = integer(0), trt = integer(0), score = numeric(0))
## }
## else {
## subGroup <- sample(seq_along(prevalence), N, replace = TRUE,
## prob = prevalence)
## trt <- sample(c(0L, 1L), N, replace = TRUE)
## rankin <- unlist(Map(function(i, j) rnorm(n = 1, mean = mean[i,
## j], sd = sd[i, j]), trt + 1, subGroup))
## data.frame(subGroup = subGroup, trt = trt, score = rankin)
## }
## }
## <environment: 0x7fd45ff08748>
result <- defuse3$explore(numberOfSimulations = 50, showProgress = FALSE)
analysis <- defuse3$analyze(result)
print(defuse3$summary(analysis))
## P(Reject H0_ITT) = 0.000000; P(Reject H0_subgp) = 0.000000; P(Reject H0) = 0.000000
## P(Early stop for efficacy [futility]) = 0.000000 [0.760000]
## Mean [SD] Randomized N = 336.240000 [98.565747]
##
## Stage at exit (proportion)
##
## 1 2 3
## 0.26 0.50 0.24
##
## Mean [SD] Lost N = 112.120000 [71.814568]
## Mean [SD] Analyzed N = 224.120000 [79.321264]
##
## Chance of each subpopulation rejected
## numeric(0)
##
## Counts by futility stage and subgroup choice
##
## 1 2 3 4 5
## 1 8 5 8 2 13
## 2 3 1 3 2 4
## 3 0 0 0 1 0
##
## Mean loss by futility stage and subgroup
## 1 2 3 4 5
## 1 167.2500 134.2 101.1250 62.5 32.15385
## 2 292.6667 223.0 171.3333 113.0 58.75000
## 3 NA NA NA 169.0 NA
##
## SD loss by futility stage and subgroup
## 1 2 3 4 5
## 1 5.548488 6.978539 5.139136 0.7071068 7.935639
## 2 4.618802 NA 9.865766 8.4852814 3.685557
## 3 NA NA NA NA NA
## 1 2 3 4 5
## 1 5.548488 6.978539 5.139136 0.7071068 7.935639
## 2 4.618802 NA 9.865766 8.4852814 3.685557
## 3 NA NA NA NA NA
result <- defuse3$explore(numberOfSimulations = 50, trueParameters = designParameters$alt1,
showProgress = FALSE)
analysis <- defuse3$analyze(result)
print(defuse3$summary(analysis))
## P(Reject H0_ITT) = 0.300000; P(Reject H0_subgp) = 0.580000; P(Reject H0) = 0.880000
## P(Early stop for efficacy [futility]) = 0.540000 [0.040000]
## Mean [SD] Randomized N = 380.320000 [93.101972]
##
## Stage at exit (proportion)
##
## 1 2 3
## 0.12 0.46 0.42
##
## Mean [SD] Lost N = 123.060000 [110.534030]
## Mean [SD] Analyzed N = 257.260000 [111.417181]
##
## Chance of each subpopulation rejected
##
## 1 2 3 4 6
## 0.12 0.12 0.32 0.02 0.30
##
## Counts by futility stage and subgroup choice
##
## 0 1 2 3 4 5
## 0 15 0 0 0 0 0
## 1 0 4 0 10 0 1
## 2 0 0 6 3 1 1
## 3 0 2 1 4 1 1
##
## Mean loss by futility stage and subgroup
## 0 1 2 3 4 5
## 0 0 NA NA NA NA NA
## 1 NA 163.0 NA 101.60 NA 30
## 2 NA NA 230.5 182.00 113 54
## 3 NA 408.5 322.0 245.25 162 77
##
## SD loss by futility stage and subgroup
## 0 1 2 3 4 5
## 0 0 NA NA NA NA NA
## 1 NA 6.9761498 NA 6.785606 NA NA
## 2 NA NA 7.556454 14.730920 NA NA
## 3 NA 0.7071068 NA 6.994045 NA NA
## 0 1 2 3 4 5
## 0 0 NA NA NA NA NA
## 1 NA 6.9761498 NA 6.785606 NA NA
## 2 NA NA 7.556454 14.730920 NA NA
## 3 NA 0.7071068 NA 6.994045 NA NA
result <- defuse3$explore(numberOfSimulations = 50, trueParameters = designParameters$alt2,
showProgress = FALSE)
analysis <- defuse3$analyze(result)
print(defuse3$summary(analysis))
## P(Reject H0_ITT) = 0.180000; P(Reject H0_subgp) = 0.740000; P(Reject H0) = 0.920000
## P(Early stop for efficacy [futility]) = 0.640000 [0.000000]
## Mean [SD] Randomized N = 369.360000 [93.353347]
##
## Stage at exit (proportion)
##
## 1 2 3
## 0.14 0.50 0.36
##
## Mean [SD] Lost N = 158.700000 [100.267448]
## Mean [SD] Analyzed N = 210.660000 [90.674032]
##
## Chance of each subpopulation rejected
##
## 1 2 3 4 6
## 0.08 0.58 0.06 0.02 0.18
##
## Counts by futility stage and subgroup choice
##
## 0 1 2 3 4 5
## 0 9 0 0 0 0 0
## 1 0 2 16 1 0 0
## 2 0 2 10 2 0 1
## 3 0 1 4 1 1 0
##
## Mean loss by futility stage and subgroup
## 0 1 2 3 4 5
## 0 0 NA NA NA NA NA
## 1 NA 168.5 134.5 104 NA NA
## 2 NA 287.5 226.6 181 NA 75
## 3 NA 404.0 316.5 229 165 NA
##
## SD loss by futility stage and subgroup
## 0 1 2 3 4 5
## 0 0 NA NA NA NA NA
## 1 NA 0.7071068 7.080490 NA NA NA
## 2 NA 2.1213203 6.363088 4.242641 NA NA
## 3 NA NA 8.544004 NA NA NA
## 0 1 2 3 4 5
## 0 0 NA NA NA NA NA
## 1 NA 0.7071068 7.080490 NA NA NA
## 2 NA 2.1213203 6.363088 4.242641 NA NA
## 3 NA NA 8.544004 NA NA NA
result <- defuse3$explore(numberOfSimulations = 50, trueParameters = designParameters$alt3,
showProgress = FALSE)
analysis <- defuse3$analyze(result)
print(defuse3$summary(analysis))
## P(Reject H0_ITT) = 0.860000; P(Reject H0_subgp) = 0.080000; P(Reject H0) = 0.940000
## P(Early stop for efficacy [futility]) = 0.700000 [0.000000]
## Mean [SD] Randomized N = 330.400000 [112.995575]
##
## Stage at exit (proportion)
##
## 1 2 3
## 0.36 0.34 0.30
##
## Mean [SD] Lost N = 17.200000 [44.723185]
## Mean [SD] Analyzed N = 313.200000 [108.781001]
##
## Chance of each subpopulation rejected
##
## 1 2 3 4 6
## 0.02 0.02 0.02 0.02 0.86
##
## Counts by futility stage and subgroup choice
##
## 0 1 2 3 4 5
## 0 43 0 0 0 0 0
## 1 0 1 1 1 0 0
## 3 0 0 0 0 2 2
##
## Mean loss by futility stage and subgroup
## 0 1 2 3 4 5
## 0 0 NA NA NA NA NA
## 1 NA 158 129 105 NA NA
## 3 NA NA NA NA 153.5 80.5
##
## SD loss by futility stage and subgroup
## 0 1 2 3 4 5
## 0 0 NA NA NA NA NA
## 1 NA NA NA NA NA NA
## 3 NA NA NA NA 9.192388 0.7071068
## 0 1 2 3 4 5
## 0 0 NA NA NA NA NA
## 1 NA NA NA NA NA NA
## 3 NA NA NA NA 9.192388 0.7071068
result <- defuse3$explore(numberOfSimulations = 50, trueParameters = designParameters$alt4,
showProgress = FALSE)
analysis <- defuse3$analyze(result)
print(defuse3$summary(analysis))
## P(Reject H0_ITT) = 0.660000; P(Reject H0_subgp) = 0.100000; P(Reject H0) = 0.760000
## P(Early stop for efficacy [futility]) = 0.540000 [0.020000]
## Mean [SD] Randomized N = 363.440000 [113.770295]
##
## Stage at exit (proportion)
##
## 1 2 3
## 0.26 0.30 0.44
##
## Mean [SD] Lost N = 42.860000 [72.049589]
## Mean [SD] Analyzed N = 320.580000 [98.622159]
##
## Chance of each subpopulation rejected
##
## 1 3 5 6
## 0.02 0.04 0.04 0.66
##
## Counts by futility stage and subgroup choice
##
## 0 1 2 3 4 5
## 0 33 0 0 0 0 0
## 1 0 1 1 1 1 2
## 2 0 0 1 1 0 1
## 3 0 0 0 2 3 3
##
## Mean loss by futility stage and subgroup
## 0 1 2 3 4 5
## 0 0 NA NA NA NA NA
## 1 NA 176 131 87 77 26
## 2 NA NA 217 175 NA 46
## 3 NA NA NA 237 153 83
##
## SD loss by futility stage and subgroup
## 0 1 2 3 4 5
## 0 0 NA NA NA NA NA
## 1 NA NA NA NA NA 5.656854
## 2 NA NA NA NA NA NA
## 3 NA NA NA 8.485281 5.291503 1.732051
## 0 1 2 3 4 5
## 0 0 NA NA NA NA NA
## 1 NA NA NA NA NA 5.656854
## 2 NA NA NA NA NA NA
## 3 NA NA NA 8.485281 5.291503 1.732051
result <- defuse3$explore(numberOfSimulations = 50, trueParameters = designParameters$alt5,
showProgress = FALSE)
analysis <- defuse3$analyze(result)
print(defuse3$summary(analysis))
## P(Reject H0_ITT) = 0.240000; P(Reject H0_subgp) = 0.580000; P(Reject H0) = 0.820000
## P(Early stop for efficacy [futility]) = 0.460000 [0.060000]
## Mean [SD] Randomized N = 399.680000 [78.897878]
##
## Stage at exit (proportion)
##
## 1 2 3
## 0.04 0.48 0.48
##
## Mean [SD] Lost N = 128.660000 [97.466396]
## Mean [SD] Analyzed N = 271.020000 [95.784088]
##
## Chance of each subpopulation rejected
##
## 1 2 3 5 6
## 0.24 0.20 0.12 0.02 0.24
##
## Counts by futility stage and subgroup choice
##
## 0 1 2 3 4 5
## 0 12 0 0 0 0 0
## 1 0 8 7 3 0 2
## 2 0 4 1 4 0 1
## 3 0 0 2 2 2 2
##
## Mean loss by futility stage and subgroup
## 0 1 2 3 4 5
## 0 0 NA NA NA NA NA
## 1 NA 167.625 132.5714 94.66667 NA 42.0
## 2 NA 284.250 225.0000 175.75000 NA 64.0
## 3 NA NA 326.5000 247.50000 178 81.5
##
## SD loss by futility stage and subgroup
## 0 1 2 3 4 5
## 0 0 NA NA NA NA NA
## 1 NA 4.627171 7.4578179 4.725816 NA 7.071068
## 2 NA 6.751543 NA 8.732125 NA NA
## 3 NA NA 0.7071068 12.020815 1.414214 2.121320
## 0 1 2 3 4 5
## 0 0 NA NA NA NA NA
## 1 NA 4.627171 7.4578179 4.725816 NA 7.071068
## 2 NA 6.751543 NA 8.732125 NA NA
## 3 NA NA 0.7071068 12.020815 1.414214 2.121320
result <- defuse3$explore(numberOfSimulations = 50, trueParameters = designParameters$alt6,
showProgress = FALSE)
analysis <- defuse3$analyze(result)
print(defuse3$summary(analysis))
## P(Reject H0_ITT) = 0.620000; P(Reject H0_subgp) = 0.360000; P(Reject H0) = 0.980000
## P(Early stop for efficacy [futility]) = 0.540000 [0.000000]
## Mean [SD] Randomized N = 366.160000 [114.819354]
##
## Stage at exit (proportion)
##
## 1 2 3
## 0.26 0.28 0.46
##
## Mean [SD] Lost N = 81.300000 [118.578528]
## Mean [SD] Analyzed N = 284.860000 [109.446662]
##
## Chance of each subpopulation rejected
##
## 1 2 3 4 5 6
## 0.08 0.08 0.12 0.06 0.02 0.62
##
## Counts by futility stage and subgroup choice
##
## 0 1 2 3 4 5
## 0 31 0 0 0 0 0
## 1 0 2 0 1 1 1
## 2 0 1 2 0 0 0
## 3 0 1 2 6 2 0
##
## Mean loss by futility stage and subgroup
## 0 1 2 3 4 5
## 0 0 NA NA NA NA NA
## 1 NA 163.5 NA 97 70.0 37
## 2 NA 286.0 231.5 NA NA NA
## 3 NA 410.0 325.0 234 160.5 NA
##
## SD loss by futility stage and subgroup
## 0 1 2 3 4 5
## 0 0 NA NA NA NA NA
## 1 NA 17.67767 NA NA NA NA
## 2 NA NA 12.02082 NA NA NA
## 3 NA NA 14.14214 15.97498 2.12132 NA
## 0 1 2 3 4 5
## 0 0 NA NA NA NA NA
## 1 NA 17.67767 NA NA NA NA
## 2 NA NA 12.02082 NA NA NA
## 3 NA NA 14.14214 15.97498 2.12132 NA