gs_design_combo {gsDesign2} | R Documentation |
Group sequential design using MaxCombo test under non-proportional hazards
Description
Group sequential design using MaxCombo test under non-proportional hazards
Usage
gs_design_combo(
enroll_rate = define_enroll_rate(duration = 12, rate = 500/12),
fail_rate = define_fail_rate(duration = c(4, 100), fail_rate = log(2)/15, hr = c(1,
0.6), dropout_rate = 0.001),
fh_test = rbind(data.frame(rho = 0, gamma = 0, tau = -1, test = 1, analysis = 1:3,
analysis_time = c(12, 24, 36)), data.frame(rho = c(0, 0.5), gamma = 0.5, tau = -1,
test = 2:3, analysis = 3, analysis_time = 36)),
ratio = 1,
alpha = 0.025,
beta = 0.2,
binding = FALSE,
upper = gs_b,
upar = c(3, 2, 1),
lower = gs_b,
lpar = c(-1, 0, 1),
algorithm = mvtnorm::GenzBretz(maxpts = 1e+05, abseps = 1e-05),
n_upper_bound = 1000,
...
)
Arguments
enroll_rate |
Enrollment rates. |
fail_rate |
Failure and dropout rates. |
fh_test |
A data frame to summarize the test in each analysis. See 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 |
upper |
Function to compute upper bound. |
upar |
Parameters passed to |
lower |
Function to compute lower bound. |
lpar |
Parameters passed to |
algorithm |
an object of class |
n_upper_bound |
A numeric value of upper limit of sample size. |
... |
Additional parameters passed to mvtnorm::pmvnorm. |
Value
A list with input parameters, enrollment rate, analysis, and bound.
Examples
# The example is slow to run
library(dplyr)
library(mvtnorm)
library(gsDesign)
enroll_rate <- define_enroll_rate(
duration = 12,
rate = 500 / 12
)
fail_rate <- define_fail_rate(
duration = c(4, 100),
fail_rate = log(2) / 15, # median survival 15 month
hr = c(1, .6),
dropout_rate = 0.001
)
fh_test <- rbind(
data.frame(
rho = 0, gamma = 0, tau = -1,
test = 1, analysis = 1:3, analysis_time = c(12, 24, 36)
),
data.frame(
rho = c(0, 0.5), gamma = 0.5, tau = -1,
test = 2:3, analysis = 3, analysis_time = 36
)
)
x <- gsSurv(
k = 3,
test.type = 4,
alpha = 0.025,
beta = 0.2,
astar = 0,
timing = 1,
sfu = sfLDOF,
sfupar = 0,
sfl = sfLDOF,
sflpar = 0,
lambdaC = 0.1,
hr = 0.6,
hr0 = 1,
eta = 0.01,
gamma = 10,
R = 12,
S = NULL,
T = 36,
minfup = 24,
ratio = 1
)
# Example 1 ----
# User-defined boundary
gs_design_combo(
enroll_rate,
fail_rate,
fh_test,
alpha = 0.025, beta = 0.2,
ratio = 1,
binding = FALSE,
upar = x$upper$bound,
lpar = x$lower$bound
)
# Example 2 ----
# Boundary derived by spending function
gs_design_combo(
enroll_rate,
fail_rate,
fh_test,
alpha = 0.025,
beta = 0.2,
ratio = 1,
binding = FALSE,
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
)