Group sequential design using MaxCombo test under non-proportional hazards
Source:R/gs_design_combo.R
gs_design_combo.Rd
Group sequential design using MaxCombo test under non-proportional hazards
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)
- alpha
One-sided Type I error
- beta
Type II error
- 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
orTVPACK
specifying both the algorithm to be used as well as the associated hyper parameters.- n_upper_bound
a numeric value of upper limit of sample size
- ...
additional parameters transfer to
mvtnorm::pmvnorm
Examples
if (FALSE) {
# The example is slow to run
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)
)
x <- gsDesign::gsSurv( k = 3 , test.type = 4 , alpha = 0.025 ,
beta = 0.2 , astar = 0 , timing = c( 1 ) ,
sfu = sfLDOF , sfupar = c( 0 ) , sfl = sfLDOF ,
sflpar = c( 0 ) , lambdaC = c( 0.1 ) ,
hr = 0.6 , hr0 = 1 , eta = 0.01 ,
gamma = c( 10 ) ,
R = c( 12 ) , S = NULL ,
T = 36 , minfup = 24 , ratio = 1 )
# User defined boundary
gs_design_combo(enrollRates,
failRates,
fh_test,
alpha = 0.025,
beta = 0.2,
ratio = 1,
binding = FALSE, # test.type = 4 non-binding futility bound
upar = x$upper$bound,
lpar = x$lower$bound)
# Boundary derived by spending function
gs_design_combo(enrollRates,
failRates,
fh_test,
alpha = 0.025,
beta = 0.2,
ratio = 1,
binding = FALSE, # test.type = 4 non-binding futility bound
upper = gs_spending_combo,
upar = list(sf = gsDesign::sfLDOF, total_spend = 0.025), # alpha spending
lower = gs_spending_combo,
lpar = list(sf = gsDesign::sfLDOF, total_spend = 0.2), # beta spending
)
}