power.tsd: Power calculation of adaptive 2-stage BE studies in a 2x2...

Description Usage Arguments Details Value Author(s) References See Also Examples

Description

This function calculates the ‘empiric’ power of 2-stage BE studies according to Potvin et al. via simulations. The Potvin methods are modified to include a futility criterion Nmax and to allow the sample size estimation step to be done with the point estimate (PE) and MSE (calculated from CV) of stage 1.

Usage

1
2
3
4
power.tsd(method = c("B", "C", "B0"), alpha0 = 0.05, alpha = c(0.0294, 0.0294), 
          n1, GMR, CV, targetpower = 0.8, pmethod = c("nct", "exact", "shifted"),
          usePE = FALSE, Nmax = Inf, min.n2 = 0, theta0, theta1, theta2,
          npct = c(0.05, 0.5, 0.95), nsims, setseed = TRUE, details = FALSE)

Arguments

method

Decision schemes according to Potvin et.al. (defaults to "B").
Potvin’s ‘Method D’ can be obtained by choosing "C" but setting alpha=c(0.028, 0.028).
Montague’s ‘Method D’ can be obtained by choosing "C" but setting alpha=c(0.028, 0.028) and GMR=0.9.
method="B0" uses the decision scheme of Zheng et al. MSDBE (modified sequential design for BE studies) which differs from B in case of different alphas w.r.t. power monitoring and BE decision in case of power >= target power.

alpha0

Alpha value for the first step(s) in Potvin "C", the power inspection and BE decision if power > targetpower. Defaults to 0.05.
Only observed if method="C".

alpha

Vector (two elements) of the nominal alphas for the two stages. Defaults to Pocock’s setting alpha=c(0.0294, 0.0294).
Common values together with other arguments are:
rep(0.0294, 2): Potvin et al. ‘Method B’
rep(0.0269, 2): Fulgsang ‘Method C/D’ (method="C", GMR=0.9, targetpower=0.9)
rep(0.0274, 2): Fuglsang ‘Method C/D’ (method="C", targetpower=0.9)
rep(0.0280, 2): Montague et al. ‘Method D’ (method="C", GMR=0.9)
rep(0.0284, 2): Fulgsang ‘Method B’ (GMR=0.9, targetpower=0.9)
rep(0.0304, 2): Kieser & Rauch
c(0.01, 0.04): Zheng et al. ‘MSDBE’ (method="B0")

n1

Sample size of stage 1.

GMR

Ratio T/R to be used in decision scheme (power calculations in stage 1 and sample size estimation for stage 2).

CV

Coefficient of variation of the intra-subject variability (use e.g., 0.3 for 30%).

targetpower

Power threshold in the power monitoring steps and power to achieve in the sample size estimation step.

pmethod

Power calculation method, also to be used in the sample size estimation for stage 2.
Implemented are "nct" (approximate calculations via non-central t-distribution, "exact" (exact calculations via Owen’s Q), and "shifted" (approximate calculation via shifted central t-distribution like in the paper of Potvin et al.
Defaults to "nct" as a reasonable compromise between speed and accuracy in the sample size estimation step.

usePE

If TRUE the sample size estimation step is done with MSE and PE of stage 1.
Defaults to FALSE i.e., the sample size is estimated with GMR and MSE (calculated from CV) of stage 1 analogous to Potvin et. al.
NB: The power inspection steps in the Potvin methods are always done with the GMR argument and MSE (CV) of stage 1.

Nmax

Futility criterion. If set to a finite value, all studies simulated in which a sample size >Nmax is obtained will be regarded as BE=FAIL.
Set this argument to Inf, the default, to work without that futility criterion.

min.n2

Minimum sample size of stage 2. Defaults to zero.
If the sample size estimation step gives N < n1+min.n2 the sample size for stage 2 will be forced to min.n2, i.e., the total sample size to n1+min.n2.

theta0

True ratio of T/R for simulating. Defaults to the GMR argument if missing.

theta1

Lower bioequivalence limit. Defaults to 0.8.

theta2

Upper bioequivalence limit. Defaults to 1.25.

npct

Percentiles to be used for the presentation of the distribution of n(total)=n1+n2.
Defaults to c(0.05, 0.5, 0.95) to obtain the 5% and 95% percentiles and the median.

nsims

Number of studies to simulate.
If missing, nsims is set to 1E+05 = 100,000 or to 1E+06 = 1 Mio if estimating the empiric Type I Error ('alpha'), i.e., with theta0 at the border or outside the acceptance range theta1 ... theta2.

setseed

Simulations are dependent on the starting point of the (pseudo) random number generator. To avoid differences in power for different runs a set.seed(1234567) is issued if setseed=TRUE, the default.
Set this argument to FALSE to view the variation in power between different runs.

details

If set to TRUE the function prints the results of time measurements of the simulation steps. Defaults to FALSE.

Details

The calculations follow in principle the simulations as described in Potvin et al.
The underlying subject data are assumed to be evaluated after log-transformation. But instead of simulating subject data, the statistics pe1, mse1 and pe2, SS2 are simulated via their associated distributions (normal and χ2 distributions).

Value

Returns an object of class "pwrtsd" with all the input arguments and results as components.
The class "pwrtsd"" has an S3 print method.
The results are in the components:

pBE

Fraction of studies found BE.

pBE_s1

Fraction of studies found BE in stage 1.

pct_s2

Percentage of studies continuing to stage 2.

nmean

Mean of n(total), aka average total sample size (ASN).

nrange

Range (min, max) of n(total).

nperc

Vector of percentiles of the distribution of n(total).

ntable

Object of class "table" summarizing the discrete distribution of n(total) via its distinct values and counts of occurences of these values.
This component is only given back if usePE==FALSE or otherwise if is.finite(Nmax), i.e., a futility criterion is used.

Author(s)

D. Labes

References

Potvin D, DiLiberti CE, Hauck WW, Parr AF, Schuirmann DJ, Smith RA. Sequential design approaches for bioequivalence studies with crossover designs.
Pharm Stat. 2008; 7(4):245–62. doi: 10.1002/pst.294

Montague TH, Potvin D, DiLiberti CE, Hauck WW, Parr AF, Schuirmann DJ. Additional results for ‘Sequential design approaches for bioequivalence studies with crossover designs’.
Pharm Stat. 2011; 11(1):8–13. doi: 10.1002/pst.483

Fuglsang A. Controlling type I errors for two-stage bioequivalence study designs.
Clin Res Reg Aff. 2011; 28(4):100–5. doi: 10.3109/10601333.2011.631547

Fuglsang A. Sequential Bioequivalence Trial Designs with Increased Power and Controlled Type I Error Rates.
AAPS J. 2013; 15(3):659–61. doi: 10.1208/s12248-013-9475-5

Fuglsang A. Futility Rules in Bioequivalence Trials with Sequential Designs.
AAPS J. 2014; 16(1):79–82. doi: 10.1208/s12248-013-9540-0

Schütz H. Two-stage designs in bioequivalence trials.
Eur J Clin Pharmacol. 2015; 71(3):271–81. doi: 10.1007/s00228-015-1806-2

Kieser M, Rauch G. Two-stage designs for cross-over bioequivalence trials.
Stat Med. 2015; 34(16):2403–16. doi: 10.1002/sim.6487

Zheng Ch, Zhao L, Wang J. Modifications of sequential designs in bioequivalence trials.
Pharm Stat. 2015; 14(3):180–8. doi: 10.1002/pst.1672

See Also

power.tsd.p for analogous calculations for 2-group parallel design.
power.tsd.fC for analogous calculations with futility check based on point estimate of stage 1.

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
# using all the defaults and 24 subjects in stage 1, CV of 25%
power.tsd(n1=24, CV=0.25)
# computation time ~ 1 sec
#
# as above, but save results for further use
res <- power.tsd(n1=24, CV=0.25)
## Not run: 
# representation of the discrete distribution of n(total)
# via plot method of object with class "table" which creates a
# 'needle' plot
plot(res$ntable/sum(res$ntable), ylab="Density",
     xlab=expression("n"[total]), las=1,
     main=expression("Distribution of n"[total]))
#
# If you prefer a histogram instead (IMHO, not the preferred plot):
# reconstruct the ntotal values from the ntable
ntot <- rep.int(as.integer(names(res$ntable)),
                times=as.integer(res$ntable))
# annotated histogram
hist(ntot, freq=FALSE, breaks=res$nrange[2]-res$nrange[1],
     xlab=expression("n"[total]), las=1,
     main=expression("Histogram of n"[total]))
abline(v=c(res$nmean, res$nperc[["50%"]]), lty=c(1, 3))
legend("topright", box.lty=0, legend=c("mean", "median"),
       lty=c(1, 3), cex=0.9)
## End(Not run)

Example output

TSD with 2x2 crossover 
Method B: alpha (s1/s2) = 0.0294 0.0294 
Target power in power monitoring and sample size est. = 0.8
Power calculation via non-central t approx. 
CV1 and GMR = 0.95 in sample size est. used
No futility criterion
BE acceptance range = 0.8 ... 1.25

CV = 0.25; n(stage 1) = 24; GMR = 0.95

1e+05 sims at theta0 = 0.95 (p(BE) = 'power').
p(BE)    = 0.84244
p(BE) s1 = 0.63203
Studies in stage 2 = 33.56%

Distribution of n(total)
- mean (range) = 29 (24 ... 86)
- percentiles
 5% 50% 95% 
 24  24  48 

Power2Stage documentation built on Nov. 21, 2021, 1:07 a.m.