gs_design_wlr: Group sequential design using weighted log-rank test under...

View source: R/gs_design_wlr.R

gs_design_wlrR Documentation

Group sequential design using weighted log-rank test under non-proportional hazards

Description

Group sequential design using weighted log-rank test under non-proportional hazards

Usage

gs_design_wlr(
  enrollRates = tibble(Stratum = "All", duration = c(2, 2, 10), rate = c(3, 6, 9)),
  failRates = tibble(Stratum = "All", duration = c(3, 100), failRate = log(2)/c(9, 18),
    hr = c(0.9, 0.6), dropoutRate = rep(0.001, 2)),
  weight = wlr_weight_fh,
  approx = "asymptotic",
  alpha = 0.025,
  beta = 0.1,
  ratio = 1,
  IF = NULL,
  info_scale = c(0, 1, 2),
  analysisTimes = 36,
  binding = FALSE,
  upper = gs_b,
  upar = gsDesign(k = 3, test.type = 1, n.I = c(0.25, 0.75, 1), sfu = sfLDOF, sfupar =
    NULL)$upper$bound,
  lower = gs_b,
  lpar = c(qnorm(0.1), -Inf, -Inf),
  test_upper = TRUE,
  test_lower = TRUE,
  h1_spending = TRUE,
  r = 18,
  tol = 1e-06
)

Arguments

enrollRates

enrollment rates

failRates

failure and dropout rates

weight

weight of weighted log rank test

  • "1"= unweighted,

  • "n"= Gehan-Breslow,

  • "sqrtN"= Tarone-Ware,

  • "FH_p[a]_q[b]"= Fleming-Harrington with p=a and q=b

approx

approximate estimation method for Z statistics

  • "event driven" = only work under proportional hazard model with log rank test

  • "asymptotic"

alpha

One-sided Type I error

beta

Type II error

ratio

Experimental:Control randomization ratio (not yet implemented)

IF

Targeted information fraction at each analysis

info_scale

the information scale for calculation

analysisTimes

Minimum time of analysis

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()

test_upper

indicator of which analyses should include an upper (efficacy) bound; single value of TRUE (default) indicates all analyses; otherwise, a logical vector of the same length as info should indicate which analyses will have an efficacy bound

test_lower

indicator of which analyses should include an lower bound; single value of TRUE (default) indicates all analyses; single value FALSE indicated no lower bound; otherwise, a logical vector of the same length as info should indicate which analyses will have a lower bound

h1_spending

Indicator that lower bound to be set by spending under alternate hypothesis (input failRates) if spending is used for lower bound

r

Integer, at least 2; default of 18 recommended by Jennison and Turnbull

tol

Tolerance parameter for boundary convergence (on Z-scale)

Specification

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

Examples

library(dplyr)
library(mvtnorm)
library(gsDesign)
library(tibble)
library(gsDesign2)

# set enrollment rates
enrollRates <- tibble(Stratum = "All", duration = 12, rate = 500/12)

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

# -------------------------#
#       example 1          #
# ------------------------ #
# Boundary is fixed 
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)

gs_design_wlr(
  enrollRates = enrollRates, 
  failRates = failRates,
  ratio = 1, 
  alpha = 0.025, beta = 0.2,
  weight = function(x, arm0, arm1){wlr_weight_fh(x, arm0, arm1, rho = 0, gamma = 0.5)},
  upper = gs_b,
  upar = x$upper$bound,
  lower = gs_b,
  lpar = x$lower$bound,
  analysisTimes = c(12, 24, 36))

# -------------------------#
#       example 2          #
# ------------------------ #
# Boundary derived by spending function
gs_design_wlr(
  enrollRates = enrollRates, 
  failRates = failRates,
  ratio = 1, 
  alpha = 0.025, beta = 0.2,
  weight = function(x, arm0, arm1){wlr_weight_fh(x, arm0, arm1, rho = 0, gamma = 0.5)},
  upper = gs_spending_bound,
  upar = list(sf = gsDesign::sfLDOF, total_spend = 0.025),
  lower = gs_spending_bound,
  lpar = list(sf = gsDesign::sfLDOF, total_spend = 0.2),
  analysisTimes = c(12, 24, 36))


keaven/gsDesign2 documentation built on Oct. 13, 2022, 8:42 p.m.