Skip to contents

Group sequential design power using MaxCombo test under non-proportional hazards

Usage

gs_power_combo(
  enrollRates,
  failRates,
  fh_test,
  ratio = 1,
  binding = FALSE,
  upper = gs_b,
  upar = c(3, 2, 1),
  lower = gs_b,
  lpar = c(-1, 0, 1),
  algorithm = GenzBretz(maxpts = 1e+05, abseps = 1e-05),
  ...
)

Arguments

enrollRates

enrollment rates

failRates

failure and dropout rates

fh_test

a data frame to summarize the test in each analysis. Refer examples for its data structure.

ratio

Experimental:Control randomization ratio (not yet implemented)

binding

indicator of whether futility bound is binding; default of FALSE is recommended

upper

Function to compute upper bound

upar

Parameter passed to upper()

lower

Function to compute lower bound

lpar

Parameter passed to lower()

algorithm

an object of class GenzBretz, Miwa or TVPACK specifying both the algorithm to be used as well as the associated hyper parameters.

...

additional parameters transfer to mvtnorm::pmvnorm

Specification

The contents of this section are shown in PDF user manual only.

Examples

library(dplyr)
library(mvtnorm)
library(gsDesign)

enrollRates <- tibble::tibble(Stratum = "All", duration = 12, rate = 500/12)

failRates <- tibble::tibble(Stratum = "All",
                            duration = c(4, 100),
                            failRate = log(2) / 15,  # median survival 15 month
                            hr = c(1, .6),
                            dropoutRate = 0.001)

fh_test <- rbind( data.frame(rho = 0, gamma = 0, tau = -1,
                             test = 1,
                             Analysis = 1:3,
                             analysisTimes = c(12, 24, 36)),
                  data.frame(rho = c(0, 0.5), gamma = 0.5, tau = -1,
                             test = 2:3,
                             Analysis = 3, analysisTimes = 36)
)

# User defined bound
gs_power_combo(enrollRates, failRates, fh_test, upar = c(3,2,1), lpar = c(-1, 0, 1))
#>   Analysis Bound Time        N   Events  Z Probability Probability_Null
#> 1        1 Upper   12 500.0001 107.3943  3  0.01750147      0.001349898
#> 3        2 Upper   24 500.0001 246.2834  2  0.72610227      0.023307604
#> 5        3 Upper   36 500.0001 331.2910  1  0.96742568      0.195585465
#> 2        1 Lower   12 500.0001 107.3943 -1  0.02926711               NA
#> 4        2 Lower   24 500.0001 246.2834  0  0.03142375               NA
#> 6        3 Lower   36 500.0001 331.2910  1  0.03257732               NA

# Minimal Information Fraction derived bound
gs_power_combo(enrollRates, failRates, fh_test,
               upper = gs_spending_combo,
               upar  = list(sf = gsDesign::sfLDOF, total_spend = 0.025),
               lower = gs_spending_combo,
               lpar  = list(sf = gsDesign::sfLDOF, total_spend = 0.2))
#>   Analysis Bound Time        N   Events         Z  Probability Probability_Null
#> 1        1 Upper   12 500.0001 107.3943  6.175397 6.329275e-08     3.299865e-10
#> 3        2 Upper   24 500.0001 246.2834  2.798651 4.260145e-01     2.565830e-03
#> 5        3 Upper   36 500.0001 331.2910  2.097932 9.015802e-01     2.495060e-02
#> 2        1 Lower   12 500.0001 107.3943 -2.516527 3.269613e-04               NA
#> 4        2 Lower   24 500.0001 246.2834  1.237721 8.468664e-02               NA
#> 6        3 Lower   36 500.0001 331.2910  2.097932 9.842290e-02               NA