power.tsd.ssr {Power2Stage} | R Documentation |
Power of 2-stage BE studies in 2x2 crossover designs with interim sample size re-estimation
Description
This function calculates the ‘empiric’ power (via simulations) of 2-stage BE studies with interim sample size re-estimation (i.e., but no BE decision after stage 1). The sample size re-estimation can be done blinded or unblinded.
Usage
power.tsd.ssr(alpha = 0.05, n1, GMR, CV, targetpower = 0.8,
pmethod = c("nct", "exact", "shifted", "ls"), blind = FALSE,
usePE = FALSE, min.n = 0, max.n = Inf, theta0, theta1, theta2,
npct = c(0.05, 0.5, 0.95), nsims, setseed = TRUE, details = FALSE)
Arguments
alpha |
Nominal type I error. Has to be adjusted in case of inflation of the Type I Error. |
n1 |
Sample size of stage 1. |
GMR |
Ratio T/R to be used in the sample size re-estimation. |
CV |
Coefficient of variation of the intra-subject variability
(use e.g., 0.3 for 30%). |
targetpower |
Power to achieve in the sample size estimation step. |
pmethod |
Power calculation method to be used in the sample size re-estimation for
stage 2. |
blind |
If |
usePE |
If |
min.n |
If |
max.n |
If |
theta0 |
Assumed ratio of geometric means (T/R) for simulations. If missing, defaults
to |
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
|
nsims |
Number of studies to simulate. |
setseed |
Simulations are dependent on the starting point of the (pseudo) random number
generator. To avoid differences in power for different runs a
|
details |
If set to |
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 class "pwrtsd"
with all the input arguments and results
as components.
The class class "pwrtsd"
has a S3 print method.
The results are in the components:
pBE |
Fraction of studies found BE. |
pct_s2 |
Percentage of studies continuing to stage 2. |
nmean |
Mean of n(total). |
nrange |
Range (min, max) of n(total). |
nperc |
Percentiles of the distribution of n(total). |
ntable |
Object of class |
Note
The computation time is in the magnitude of a few seconds for 100,000 sim’s
on my machine (Intel core i7 2.5 GHz, 12GB RAM) if the non-central t
approximation is used. Thus be a bit patient if you simulate for the Tpye I Error
'alpha' with 1 Mio sim’s.
Using the crude pmethod="ls"
on the other hand results in a nearly immediate
sample size re-estimation.
Author(s)
D. Labes
References
Golkowski D, Friede T, Kieser M. Blinded sample size re-estimation in crossover bioequivalence trials.
Pharm Stat. 2014; 13(3):157–62. doi: 10.1002/pst.1617
Jones B, Kenward MG. Design and Analysis of Cross-Over Trials.
Boca Raton: CRC Press; 3rd edition 2014. Chapter 12.
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
See Also
power.tsd
for 2-stage studies with interim BE decision.
Examples
# Not run to comply with CRAN policy about examples' run-time;
# minimum number of sim's should be 1E5 for 'power', 1E6 sim's for 'alpha'
## Not run:
power.tsd.ssr(alpha=0.05, n1=10, GMR=1, CV=0.239, targetpower=0.9,
pmethod="ls", blind=TRUE, theta0=1.25)
# should give an alpha-inflation 0.072359 (run time <5 seconds)
# repeated with noncentral t-approximation
power.tsd.ssr(alpha=0.05, n1=10, GMR=1, CV=0.239, targetpower=0.9,
pmethod="nct", blind=TRUE, theta0=1.25)
# should give an alpha-inflation 0.069789 (run time ~20 seconds)
#
# adjusted alpha to control the Type I Error, noncentral t-approx.
power.tsd.ssr(alpha=0.03505, n1=10, GMR=1, CV=0.239, targetpower=0.9,
pmethod="nct", blind=TRUE, theta0=1.25)
# should control the TIE with 0.049877
## End(Not run)