# 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 |

### 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 |

`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 |

`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 |

`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 |

`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 |