Group Sequential Boundaries Using Spending Functions

Description

'bounds' determines group sequential boundaries for interim analyses of accumulating data in clinical trials using the Lan-DeMets alpha spending function method. These can be used as guidelines for early stopping of the trial.

Usage

1
2
bounds(t, t2 = t, iuse = 1, asf = NULL, alpha = 0.05,
       phi = rep(1, length(alpha)), ztrun = rep(8, length(alpha)))

Arguments

t

the vector of analysis times, which must be increasing and in (0,1].

t2

the second time scale, usually in terms of amount of accumulating information. By default, same as t.

iuse

a vector of the type of alpha spending function(s) to use for lower and upper bounds, respectively (in the two-sided case). Details of specification are given below.

asf

a list of one or two functions to be used as alpha spending function(s). Used with iuse=5 (See below).

alpha

a vector of type I errors. In two-sided situations, these correspond to the amount allocated to the lower and upper boundaries, respectively. The total alpha must be greater than 0 and less than or equal to 1.

phi

a vector of values used when iuse=3 or 4 (See below).

ztrun

a vector of values specifying where to truncate lower and upper boundaries, respectively. Default is c(-8,8) (or just 8 for one-sided), which is essentially no truncation.

Details

This is based on a Fortran program, 'ld98', by Reboussin, DeMets, Kim, and Lan. It has some advantages, like making use of probability distributions in R and the ability to specify any valid spending function without changing the program.

iuse values of 1 and 2 correspond to alpha spending functions which give O'Brien Fleming and Pocock type boundaries, respectively. A value of 3 is the power family. Here, the spending function is α t^{φ}, where φ must be greater than 0. A value of 4 is the Hwang-Shih-DeCani family, with spending function α (1-e^{-φ t})/(1-e^{-φ}), where phi cannot be 0.

iuse and alpha must have the same length. If alpha has length 2 and phi has length 1, the same value of phi will be used for the upper and the lower boundaries.

With iuse=5, the user will specify any alpha spending function as asf. Such a function asf() must be of class 'function' and must satisfy asf(0)=0 and asf(1)=1 and must be strictly increasing. Currently, this option cannot be used for one side of the boundary with one of the other options for the other side. In other words, the user may define one spending function for a one-sided boundary or two for a two-sided boundary, symmetric or asymmetric, but cannot define one spending function and select the other from iuse 1 through 4.

Value

'bounds' returns an object of 'class' '"bounds"'.

An object of class '"bounds"' is a list containing the following components:

bounds.type

the type of bounds: 1 is 'one-sided', 2 is 'two-sided symmetric', and 3 is 'two-sided asymmetric'.

spending.type

the type(s) of spending function. A descriptive version of the value(s) used for iuse

time

the original time scale.

time2

the second (information) time scale.

alpha

the alpha(s) used.

overall.alpha

if two-sided, the sum of the two alphas. If one-sided, just alpha.

lower.bounds

the vector of lower boundaries calculated. Should be ignored if one-sided.

upper.bounds

the vector of upper boundaries calculated.

exit.pr

the vector of cumulative exit probabilities at each analysis.

diff.pr

the vector of exit probabilities accumulated at each analysis.

Author(s)

Charlie Casper charlie.casper@hsc.utah.edu and Oscar A. Perez

References

Reboussin, D. M., DeMets, D. L., Kim, K. M., and Lan, K. K. G. (2000) Computations for group sequential boundaries using the Lan-DeMets spending function method. Controlled Clinical Trials, 21:190-207.

Fortran program 'ld98' by the same authors as above.

DeMets, D. L. and Lan, K. K. G. (1995) Recent Advances in Clinical Trial Design and Analysis, Thall, P. F. (ed.). Boston: Kluwer Academic Publishers.

Lan, K. K. G. and DeMets, D. L. (1983) Discrete sequential boundaries for clinical trials. Biometrika, 70:659-63.

See Also

Generic functions summary.bounds and plot.bounds.

drift for exit probabilities given boundaries or drift (effect) or confidence interval given power.

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
   ## From Reboussin, et al. (2000)

   t <- seq(0.2,1,length=5)
   obf.bd <- bounds(t,iuse=c(1,1),alpha=c(0.025,0.025))
   summary(obf.bd)
   plot(obf.bd)

   t <- c(0.2292,0.3333,0.4375,0.5833,0.7083,0.8333)
   t2 <- c(56,77,126,177,247,318)
   power.fam <- bounds(t,t2,iuse=c(3,3),alpha=c(0.025,0.025))
   summary(power.fam)