Design Sequential Binary Boundary

Share:

Description

There are several functions that create binary sequential boundaries. The function designAb allows great flexibility in creating user defined boundaries. The functions designOBF and designOBFpower create boudaries of the O-Brien-Fleming type, extending those boundaries to allow looks after every observation. The former (designOBF) uses a user defined maximum number of observations (Nmax), while the latter (designOBFpower) uses the power argument to try to find a design with a smaller maximum that achieves the desired power. The functions designFixed and designFixedpower are analogous for fixed sample designs. The function designSimon uses the ph2simon from the clinfun package to create boundaries using Simon's (1989) two-stage design.

Usage

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
designAb(Nk, a = NULL, b = NULL, theta0 = NULL, 
    tsalpha = NULL, alternative = "two.sided", 
    conf.level = 0.95, binding = "both")

designOBF(Nmax,theta0 = 0.5,  k = Inf,  tsalpha = NULL,
    alternative = "two.sided", conf.level = 0.95, 
    binding = "both")
designOBFpower(theta0 = 0.5, theta1=.6,  k=Inf,
    power=.9, tsalpha = NULL, alternative = "two.sided",
    conf.level = 0.95, binding = "both", allNgreater=FALSE,
    checkmax=10, maxNmax=2*ss)

designFixed(Nmax, theta0 = 0.5, tsalpha = NULL, 
    alternative = "two.sided", conf.level = 0.95)
designFixedpower(theta0 = 0.5, theta1 = 0.6, power = 0.8,
    maxNmax = Inf, tsalpha = NULL, alternative = NULL,
    conf.level = 0.95, allNgreater = FALSE)

designSimon(theta0, theta1, alpha = 0.05, beta = 0.2, 
    type = c("optimal", "minimax"))

Arguments

Nk

vector of unique N values where there is stopping

a

numeric vector with length(a)=length(Nk)-1, stop if number of successes out of Nk[i] is less than or equal to a[i] (see details)

b

numeric vector with length(a)=length(Nk)-1, stop if number of successes out of Nk[i] is greater than or equal to b[i] (see details)

Nmax

maximum number of observations for the design

maxNmax

maximum number for Nmax (see details)

k

number of looks at the data, Inf denotes looking after each observation

theta0

probability of success under the null

tsalpha

vector of length 2 with nominal significance levels for each side, if not NULL overrides conf.level and alternative (see getTSalpha)

conf.level

confidence level, ignored if tsalpha is not NULL

alternative

character, alternative hypothesis, either 'less', 'greater' or 'two.sided'

binding

character, which sides are binding: 'both', 'upper', or 'lower'

theta1

probability of success under alternative for power calculations

power

nominal power, boundary strives to have power under the alternative at least equal to power

allNgreater

logical, if TRUE max(N) will be at least as large as the fixed sample size for which all greater N have power>power

checkmax

integer, on the iteration checkmax, check that Nmax has power at least power

alpha

one sided alpha level for test theta>theta0

beta

1-power, for theta1

type

character, type of 2-stage design, either 'optimal' or 'minimax'

Details

The tsalpha, alternative, and conf.level are input into the getTSalpha function to output a tsalpha vector. The tsalpha vector allows the nominal error to be different on each side. For details see getTSalpha.

For designAb, when you do not want to stop on the lower or upper boundary at any value of Nk, the associated value of a (lower) or b (upper) should be NA.

The designOBF function calculates a boundary that stops whenever the B-value (Lan and Wittes, 1988) is larger than one cutoff value or smaller than a different cutoff value. The cutoff values are chosen so that the probability of spending alpha on the appropriate side is almost all spent while still rejecting at at least one end value of the boundary.

The function designOBFpower repeatedly calls designOBF and finds the design that gives sufficient power under a given alternative. Specifically, by setting Nmax to Nmaxi in designOBF, where Nmaxi is increased by 1 at each iteration. The initial Nmaxi is either the first N that gives a large enough power in the fixed sample size design (allNgreater==FALSE) or the first N such that all larger N will give enough power for fixed samples (allNgreater==TRUE). On the (checkmax)th iteration, check that the power will be large enough when Nmaxi equals Nmax (from designOBFpower call). So if you set checkmax=1 then you will check the largest value of Nmax first, but this may be inefficient since larger values of Nmax in the obf call are slower.

See Kirk and Fay (2014) for an introductory paper about exact binary sequential tests using the binseqtest package.

Value

a object of class boundEst

References

Kirk, J, and Fay, MP (2014). An Introduction to Practical Sequential Inferences via Single Arm Binary Response Studies Using the binseqtest R Package. (to appear in American Statistician).

Lan, KKG, and Wittes, J (1988). The B-Value: A Tool for Monitoring Data. Biometrics 44:579-585.

Simon R. (1989). Optimal Two-Stage Designs for Phase II Clinical Trials. Controlled Clinical Trials 10, 1-10.