*! version 1.0 14 May 2018

Title

des_gs -- Design a group sequential single-arm trial for a single binary endpoint

Syntax

des_gs
[,
options]

Main
j(#) The maximal number of stages to allow. Defaults to 2.

pi0(#) The (undesirable) response probability used in the definition of the null hypothesis. Defaults to 0.1.

pi1(#) The (desirable) response probability at which the trial is powered. Defaults to 0.3.

alpha(#) The desired maximal type-I error-rate. Defaults to 0.05.

beta(#) The desired maximal type-II error-rate. Defaults to 0.2.

nmin(#) The minimal total sample size to allow in considered designs. Defaults to 1.

nmax(#) The maximal total sample size to allow in considered designs. Defaults to 30.

futility(#) An integer indicating whether early stopping for futility should be allowed (futility = 1). Defaults to 1.

efficacy(#) An integer indicating whether early stopping for efficacy should be allowed (efficacy = 1). Defaults to 0.

optimality(string) The choice of optimal design criteria. Must be one of null_ess, alt_ess, null_med, alt_med, or minimax. Internally defaults to null_ess.

equal_n(#) An integer indicating that the sample size of each stage should be equal (equal = 1). Default value is 0.

ensign(#) An integer indicating that the design of Ensign et al. (1994) should be mimicked, and the first stage futility boundary forced to be 0 (ensign = 1). Defaults to 0.

summary(#) An integer indicating whether a summary of the function's progress should be printed (summary = 1) to the console. Defaults to 0.

plot Indicates that the stopping boundaries of the identified optimal design should be plotted.

* Additional options to use during plotting.

Description

Determines group sequential single-arm clinical trial designs for a single binary
primary endpoint. In particular, this allows Simon's two-stage designs (Simon,
1989) to be identified.

des_gs supports the determination of a variety of (optimised) group sequential
single-arm clinical trial designs for a single binary primary endpoint. For all
supported designs, the following hypotheses are tested for the response
probability pi

H0 : pi <= pi0, H1 : pi > pi0.

In each instance, the optimal design is required to meet the following operating
characteristics

P(pi0) <= alpha, P(pi1) <= 1 - \beta,

where P(pi) is the probability of rejecting H0 when the true response probability
is pi. Moreover, pi1 must satisfy pi0 < pi1.

A group sequential single-arm design for a single binary endpoint, with a maximum
of J allowed stages (specifying J through the argument j) is then indexed by three
vectors: a = (a_1,...,a_J), r = (r_1,...,r_J), and n = (n_1,...,n_J).

With these vectors, and denoting the number of responses after m patients have
been observed by s(m), the stopping rules for the trial are then as follows

- For j = 1, ...,J - 1
- If s(N_j) <= a_j, then stop the trial and do not reject H0.
- Else if s(N_j) >= r_j, then stop the trial and reject H0.
- Else if a_j < s(N_j) < r_j, then continute to stage j + 1.
- For j = J
- If s(N_j) <= a_j, then do not reject H0.
- Else if s(N_j) >= r_j, then reject H0.

Here, N_j = n_1 + ... + n_j.

The purpose of this function is then to optimise a, r, and n, accounting for the
chosen restrictions placed on these vectors, and the chosen optimality criteria.

The arguments nmin, nmax, and equal_n allow restrictions to be placed on n.
Precisely, nmin and nmax set an inclusive range of allowed N_J. While, if set to
1, equal_n enforces n_1 = ... = n_J.

The arguments futility, efficacy, and ensign allow restrictions to be placed on a
and r. If futility is not set to 1, early stopping for futility (to not reject H0)
is prevented by enforcing a_1 = ... = a_ = -infty. Similarly, if efficacy is
not set to 1, early stopping for efficacy (to reject H0) is prevented by enforcing
r_1 = ... = r_ = infty. Finally, if set to 1, ensign enforces the
restriction that a_1 = 0, as suggested in Ensign et al. (1994) for 3-stage
designs.

Note that to ensure a decision is made about H0, this function enforces a_J + 1 =
r_J.

To describe the supported optimality criteria, denote the expected sample size and
median required sample size when the true response probability is pi by ESS(pi)
and Med(pi) respectively.

Then, the following optimality criteria are currently supported:

- minimax: The design which minimises N_J.
- null_ess: The design which minimises ESS(pi0).
- alt_ess: The design which minimises ESS(pi1).
- null_med: The design which minimises Med(pi0).
- alt_med: The design which minimises Med(pi1).

Note that when J <= 3, the optimal design is determined by an exhaustive search.
This means that vast speed improvements can be made by carefully choosing the
values of nmin and nmax. In contrast, if J > 3, simulated annealing is employed to
stochastically search for the optimal design, as proposed by Chen and Lee (2013).

Options

Main

j(#) The maximal number of stages to allow. Defaults to 2.

pi0(#) The (undesirable) response probability used in the definition of the
null hypothesis. Defaults to 0.1.

pi1(#) The (desirable) response probability at which the trial is powered.
Defaults to 0.3.

alpha(#) The desired maximal type-I error-rate. Defaults to 0.05.

beta(#) The desired maximal type-II error-rate. Defaults to 0.2.

nmin(#) The minimal total sample size to allow in considered designs.
Defaults to 1.

nmax(#) The maximal total sample size to allow in considered designs.
Defaults to 30.

futility(#) An integer indicating whether early stopping for futility
should be allowed (futility = 1). Defaults to 1.

efficacy(#) An integer indicating whether early stopping for efficacy
should be allowed (efficacy = 1). Defaults to 0.

optimality(string) The choice of optimal design criteria. Must be one of
null_ess, alt_ess, null_med, alt_med, or minimax. Internally defaults to null_ess.

equal_n(#) An integer indicating that the sample size of each stage should
be equal (equal = 1). Default value is 0.

ensign(#) An integer indicating that the design of Ensign et al. (1994)
should be mimicked, and the first stage futility boundary forced to be 0 (ensign =
1). Defaults to 0.

summary(#) An integer indicating whether a summary of the function's
progress should be printed (summary = 1) to the console. Defaults to 0.

plot Indicates that the stopping boundaries of the identified optimal
design should be plotted.

* Additional options to use during plotting.

Examples

des_gs

des_gs, alpha(0.1)

Author

Michael J. Grayling, MRC Biostatistics Unit, Cambridge.

Email mjg211@cam.ac.uk

See Also

Related commands:

opchar_gs (if installed)
est_gs (if installed)
ci_gs (if installed)
pval_gs (if installed)