The Lan-Demets method of Boundary Construction

Share:

Description

The function LanDemets is used in calls to the functions GrpSeqBnds and PwrGSD as a possible setting for the arguments EfficacyBoundary and FutilityBoundary, in specification of the method whereby efficacy and or futility boundaries are to be constructed. The Lan-Demets method is one of four currently availiable choices, the others being SC (stochastic curtailment), Haybittle and user specified.

Usage

1
LanDemets(alpha, spending, from = NULL, to = NULL)

Arguments

alpha

If LanDemets is used to specify the EfficacyBoundary then the argument alpha is the total probability of type I error. If LanDemets is used to specify the FutilityBoundary then the argument alpha is the total probability of type II error.

spending

Specify the alpha spending function. Set this to ObrienFleming, Pow(rho=<x>), or Pocock. See help files for these spending functions.

from

WARNING EXPERIMENTAL: you can actually construct boundaries via a hybrid of the 3 boundary construction methods, LanDemets, SC, and 'user specified'. When using a hybrid boundry, set the argument EfficacyBoundary or FutilityBoundary respectively, to a list with components LanDemets, SC, or user specified numbers. In the former two cases, from and to are used in LanDemets and also in SC to stipulate how many interim analyses they are in effect. See the help for GrpSeqBnds and PwrGSD

to

See above.

Details

The cornerstone of the Lan-Demets method is that the amount of alpha (type I or II error probability) that is "spent" at a given interim analysis is determined via a user specified "spending function". A spending function is a monotone increasing mapping on (0,1) with range (0,alpha). The 'alpha' spent at a given analysis is determined by the increment in the values of the spending function at the current and at the most recent information fractions.

Value

An object of class boundary.construction.method which is really a list with the following components. The print method displays the original call.

type

Gives the boundary construction method type, which is the character string "LanDemets"

alpha

The numeric value passed to the argument 'alpha' which is the total probability of type I (efficacy) or type II (futility) error.

spending

The spending function that was passed to the argument 'spending'. Note that this will be of class 'name' for 'ObrienFleming' and 'Pocock', but will be of class 'function' for 'Pow'

from

The numeric value passed to the argument 'from'. See above.

to

The numeric value passed to the argument 'to'. See above.

call

returns the call

Note

The print method returns the call by default

Author(s)

Grant Izmirlian

References

see references under PwrGSD

See Also

SC, ObrienFleming, Pow, Pocock, GrpSeqBnds, and PwrGSD

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
## example 1: what is the result of calling a Boundary Construction Method function
    ## A call to 'LanDemets' just returns the call
    LanDemets(alpha=0.05, spending=ObrienFleming)
    
    ## It does arguement checking...this results in an error
    ## Not run: 
      LanDemets(alpha=0.05)
    
## End(Not run)
    
    ## but really its value is a list with the a component containing
    ## the boundary method type, "LanDemts", and components for each
    ## of the arguments.
    names(LanDemets(alpha=0.05, spending=ObrienFleming))

    LanDemets(alpha=0.05, spending=ObrienFleming)$type
    LanDemets(alpha=0.05, spending=ObrienFleming)$alpha
    LanDemets(alpha=0.05, spending=ObrienFleming)$spending
    class(LanDemets(alpha=0.05, spending=ObrienFleming)$spending)
    LanDemets(alpha=0.05, spending=Pow(2))$spending
    class(LanDemets(alpha=0.05, spending=Pow(2))$spending)
    LanDemets(alpha=0.05, spending=ObrienFleming)$call

## example 2: ...But the intended purpose of the spending functions its
    ## intended purpose is in constructing calls to 'GrpSeqBnds' and to 'PwrGSD':
     

    frac <- c(0.07614902,0.1135391,0.168252,0.2336901,0.3186155,
              0.4164776,0.5352199,0.670739,0.8246061,1)
    drift <- c(0.3836636,0.5117394,0.6918584,0.8657705,1.091984,
               1.311094,1.538582,1.818346,2.081775,2.345386)

    test <- GrpSeqBnds(frac=frac, EfficacyBoundary=LanDemets(alpha=0.05, spending=ObrienFleming),
                       FutilityBoundary=LanDemets(alpha=0.10, spending=Pocock),
                       drift=drift)

Want to suggest features or report bugs for rdrr.io? Use the GitHub issue tracker.