Group sequential design power using MaxCombo test under non-proportional hazards
Source:R/gs_power_combo.R
gs_power_combo.Rd
Group sequential design power using MaxCombo test under non-proportional hazards
Usage
gs_power_combo(
enrollRates = tibble(Stratum = "All", duration = 12, rate = 500/12),
failRates = tibble(Stratum = "All", duration = c(4, 100), failRate = log(2)/15, hr =
c(1, 0.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)),
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
orTVPACK
specifying both the algorithm to be used as well as the associated hyper parameters.- ...
additional parameters transfer to
mvtnorm::pmvnorm
Examples
library(dplyr)
library(mvtnorm)
library(gsDesign)
library(gsDesign2)
library(tibble)
enrollRates <- tibble(
Stratum = "All",
duration = 12,
rate = 500/12)
failRates <- 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)
)
# -------------------------#
# example 1 #
# ------------------------ #
# 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))
#> The AHR reported in the `analysis` table is under the log-rank test.
#> $enrollRates
#> # A tibble: 1 × 3
#> Stratum duration rate
#> <chr> <dbl> <dbl>
#> 1 All 12 41.7
#>
#> $failRates
#> # A tibble: 2 × 5
#> Stratum duration failRate hr dropoutRate
#> <chr> <dbl> <dbl> <dbl> <dbl>
#> 1 All 4 0.0462 1 0.001
#> 2 All 100 0.0462 0.6 0.001
#>
#> $bounds
#> Analysis Bound Probability Probability0 Z Nominal p
#> 1 1 Upper 6.329275e-08 3.299865e-10 6.175397 3.299865e-10
#> 2 1 Lower 3.269613e-04 0.000000e+00 -2.516527 9.940741e-01
#> 3 2 Upper 4.260145e-01 2.565830e-03 2.798651 2.565830e-03
#> 4 2 Lower 8.468664e-02 0.000000e+00 1.237721 1.079098e-01
#> 5 3 Upper 9.015546e-01 2.487760e-02 2.098528 1.792927e-02
#> 6 3 Lower 9.844810e-02 0.000000e+00 2.098528 1.792927e-02
#>
#> $analysis
#> Analysis Time N Events EF AHR
#> 1 1 12 500.0001 107.3943 0.3241690 0.8418858
#> 2 2 24 500.0001 246.2834 0.7434051 0.7164215
#> 3 3 36 500.0001 331.2910 1.0000000 0.6831740
#>
#> attr(,"class")
#> [1] "combo" "gs_design" "list"