The Lan-Demets method of Boundary Construction
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
(efficacy only) and user specified.
LanDemets(alpha, spending, from = NULL, to = NULL)
alpha |
If |
spending |
Specify the alpha spending function. Set this to
|
from |
WARNING EXPERIMENTAL: you can actually construct boundaries via a
hybrid of the 3 boundary construction methods, |
to |
See above. |
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.
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 |
The print method returns the call by default
Grant Izmirlian
see references under PwrGSD
SC
, ObrienFleming
,
Pow
, Pocock
, GrpSeqBnds
, and
PwrGSD
## 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 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)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.