Description Usage Arguments Details Value Note Author(s) References See Also Examples
The functions sfLogistic()
, sfNormal()
, sfExtremeValue()
, sfExtremeValue2()
, sfCauchy()
,
and sfBetaDist()
are all 2-parameter spending function families.
These provide increased flexibility in some situations where the flexibility of a one-parameter spending function
family is not sufficient.
These functions all allow fitting of two points on a cumulative spending function curve; in this case, four parameters
are specified indicating an x and a y coordinate for each of 2 points.
Normally each of these functions will be passed to gsDesign()
in the parameter
sfu
for the upper bound or
sfl
for the lower bound to specify a spending function family for a design.
In this case, the user does not need to know the calling sequence.
The calling sequence is useful, however, when the user wishes to plot a spending function as demonstrated in the examples; note, however, that an automatic alpha- and beta-spending function plot is also available.
1 2 3 4 5 6 | sfLogistic(alpha, t, param)
sfNormal(alpha, t, param)
sfExtremeValue(alpha, t, param)
sfExtremeValue2(alpha, t, param)
sfCauchy(alpha, t, param)
sfBetaDist(alpha, t, param)
|
alpha |
Real value > 0 and no more than 1. Normally,
|
t |
A vector of points with increasing values from 0 to 1, inclusive. Values of the proportion of sample size or information for which the spending function will be computed. |
param |
In the two-parameter specification,
|
sfBetaDist(alpha,t,param)
is simply alpha
times the incomplete beta cumulative distribution
function with parameters
a and b passed in param
evaluated at values passed in t
.
The other spending functions take the form
f(t;alpha,a,b)=alpha F(a+bF^{-1}(t))
where F() is a cumulative distribution function with values > 0 on the real line (logistic for sfLogistic()
,
normal for sfNormal()
, extreme value for sfExtremeValue()
and Cauchy for sfCauchy()
) and
F^{-1}() is its inverse.
For the logistic spending function this simplifies to
f(t;α,a,b)=α (1-(1+e^a(t/(1-t))^b)^{-1}).
For the extreme value distribution with
F(x)=\exp(-\exp(-x))
this simplifies to
f(t;α,a,b)=α \exp(-e^a (-\ln t)^b).
Since the extreme value distribution is not symmetric, there is also a version
where the standard distribution is flipped about 0. This is reflected in sfExtremeValue2()
where
F(x)=1-\exp(-\exp(x)).
An object of type spendfn
. See Spending function overview
for further details.
The manual is not linked to this help file, but is available in library/gsdesign/doc/gsDesignManual.pdf in the directory where R is installed.
Keaven Anderson keaven\_anderson@merck.
Jennison C and Turnbull BW (2000), Group Sequential Methods with Applications to Clinical Trials. Boca Raton: Chapman and Hall.
Spending function overview, gsDesign
, gsDesign package overview
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 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | # design a 4-analysis trial using a Kim-DeMets spending function
# for both lower and upper bounds
x<-gsDesign(k=4, sfu=sfPower, sfupar=3, sfl=sfPower, sflpar=1.5)
# print the design
x
# plot the alpha- and beta-spending functions
plot(x, plottype=5)
# start by showing how to fit two points with sfLogistic
# plot the spending function using many points to obtain a smooth curve
# note that curve fits the points x=.1, y=.01 and x=.4, y=.1
# specified in the 3rd parameter of sfLogistic
t <- 0:100/100
plot(t, sfLogistic(1, t, c(.1, .4, .01, .1))$spend,
xlab="Proportion of final sample size",
ylab="Cumulative Type I error spending",
main="Logistic Spending Function Examples",
type="l", cex.main=.9)
lines(t, sfLogistic(1, t, c(.01, .1, .1, .4))$spend, lty=2)
# now just give a=0 and b=1 as 3rd parameters for sfLogistic
lines(t, sfLogistic(1, t, c(0, 1))$spend, lty=3)
# try a couple with unconventional shapes again using
# the xy form in the 3rd parameter
lines(t, sfLogistic(1, t, c(.4, .6, .1, .7))$spend, lty=4)
lines(t, sfLogistic(1, t, c(.1, .7, .4, .6))$spend, lty=5)
legend(x=c(.0, .475), y=c(.76, 1.03), lty=1:5,
legend=c("Fit (.1, 01) and (.4, .1)", "Fit (.01, .1) and (.1, .4)",
"a=0, b=1", "Fit (.4, .1) and (.6, .7)",
"Fit (.1, .4) and (.7, .6)"))
# set up a function to plot comparsons of all
# 2-parameter spending functions
plotsf <- function(alpha, t, param)
{
plot(t, sfCauchy(alpha, t, param)$spend,
xlab="Proportion of enrollment",
ylab="Cumulative spending", type="l", lty=2)
lines(t, sfExtremeValue(alpha, t, param)$spend, lty=5)
lines(t, sfLogistic(alpha, t, param)$spend, lty=1)
lines(t, sfNormal(alpha, t, param)$spend, lty=3)
lines(t, sfExtremeValue2(alpha, t, param)$spend, lty=6, col=2)
lines(t, sfBetaDist(alpha, t, param)$spend, lty=7, col=3)
legend(x=c(.05, .475), y=.025*c(.55, .9),
lty=c(1, 2, 3, 5, 6, 7),
col=c(1, 1, 1, 1, 2, 3),
legend=c("Logistic", "Cauchy", "Normal", "Extreme value",
"Extreme value 2", "Beta distribution"))
}
# do comparison for a design with conservative early spending
# note that Cauchy spending function is quite different
# from the others
param <- c(.25, .5, .05, .1)
plotsf(.025, t, param)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.