power.RSABE: (Empirical) Power for BE decision via linearized scaled ABE...

View source: R/power_RSABE.R

power.RSABER Documentation

(Empirical) Power for BE decision via linearized scaled ABE criterion


This function performs the power calculation of the BE decision via linearized scaled ABE criterion by simulations as recommended by the FDA.


power.RSABE(alpha = 0.05, theta1, theta2, theta0, CV, n, 
            design = c("2x3x3", "2x2x4", "2x2x3"), regulator,
            nsims = 1e+05, details = FALSE, setseed=TRUE)



Type I error probability, significance level. Conventionally mostly set to 0.05.


Conventional lower ABE limit to be applied in the mixed procedure if CVsWR <= CVswitch. Also lower limit for the point estimate constraint.
Defaults to 0.8 if not given explicitly.


Conventional upper ABE limit to be applied in the mixed procedure if CVsWR <= CVswitch. Also upper limit for the point estimate constraint.
Defaults to 1.25 if not given explicitly.


‘True’ or assumed T/R ratio.
Defaults to 0.90 according to the two Lászlós if not given explicitly.


Intra-subject coefficient(s) of variation as ratio (not percent).

  • If given as a scalar (length(CV)==1) the same CV of Test and Reference is assumed (homoscedasticity, CVwT==CVwR).

  • If given as a vector (length(CV)==2), i.e., assuming heteroscedasticity, the CV of the Test must be given in CV[1] and the one of the Reference in the CV[2].


Number of subjects under study.
May be given as vector. In that case it is assumed that n contains the number of subjects in the sequence groups.

If n is given as single number (total sample size) and this number is not divisible by the number of sequences of the design an unbalanced design is assumed. A corresponding message is thrown showing the numbers of subjects in sequence groups used.
Attention! In case of the "2x2x3" (TRT|RTR) design the order of sample sizes / sequence is important if given as a vector. n[1] is for sequence group 'TRT' and n[2] is for sequence group 'RTR'.


Design of the study.
"2x3x3" is the partial replicate design.
"2x2x4" is a full replicate design with 2 sequences and 4 periods.
"2x2x3" is a full replicate design with 2 sequences and 3 periods.
Defaults to "2x3x3". Details are given the section about Designs.


Regulatory settings for RSABE.
May be given as character from the choices "EMA" or "FDA" or as an object of class 'regSet' (see reg_const).
Defaults to regulator="FDA" if missing.
This argument may be given also in lower case if given as character.

Also the linearized scaled ABE criterion is usually calculated with the FDA constant r_const=log(1.25)/0.25 you can override this behavior to use the EMA setting r_const=0.76 to avoid the discontinuity at CV=30% and be more stringent.


Number of simulations to be performed to obtain the empirical power. Defaults to 100,000 = 1e+5.
If simulations are aimed for empirical alpha nsims=1e+06 is recommended.


If set to TRUE the computational time is shown as well as the components for the BE decision.
p(BE-sABEc) is the probability that the 95% CI of the ABE criterion is <0.
p(BE-PE) is the probability that the point estimate is within theta1 ... theta2.
p(BE-ABE) is the simulated probability for the conventional ABE test given for comparision purposes.


Simulations are dependent on the starting point of the (pseudo) random number generator. To avoid differences in power for different runs a set.seed() is issued if setseed=TRUE, the default.


The linearized scaled ABE criterion is calculated according to the SAS code given in the FDA’s progesterone guidance.
The simulations are done via the distributional properties of the statistical quantities necessary for deciding BE based on scaled ABE criterion.
Details can be found in a document Implementation_scaledABE_simsVx.yy.pdf located in the /doc sub-directory of the package.
If a CVcap is defined for the regulator, the BE decision is based on the inclusion of the CI in the capped widened acceptance limits in case of CVwR > CVcap. This resembles method ‘Howe-EMA’ in Muñoz et al. and is the standard behavior now if regulator="EMA" is choosen.


Returns the value of the (empirical) power if argument details=FALSE.
Returns a named vector if argument details=TRUE.
p(BE) is the power, p(BE-sABEc) is the power of the scaled ABE criterion alone and p(BE-pe) is the power of the criterion ‘point estimat within acceptance range’ alone.
p(BE-ABE) is the power of the conventional ABE test given for comparative purposes.


Although some designs are more ‘popular’ than others, power calculations are valid for all of the following designs:

"2x2x4" TRTR | RTRT
"2x2x3" TRT | RTR
"2x3x3" TRR | RTR | RRT


In case of the design "2x2x3"" heteroscedasticity (i.e., CVwT != CVwR) may lead to poor agreement of the power values compared to those calculated via the ‘classical’ way of subject data simulations if the design is unbalanced in respect to the number of subjects in the sequence groups. Therefore, the function issues a warning for that cases.


D. Labes


Food and Drug Administration, Office of Generic Drugs (OGD). Draft Guidance on Progesterone. Recommended Apr 2010. Revised Feb 2011. download

Tóthfalusi, L, Endrényi, L. Sample Sizes for Designing Bioequivalence Studies for Highly Variable Drugs. J Pharm Pharmaceut Sci. 2011;15(1):73–84. open access

Tóthfalusi L, Endrényi L, García Arieta A. Evaluation of Bioequivalence for Highly Variable Drugs with Scaled Average Bioequivalence. Clin Pharmacokin. 2009;48(11):725–43. doi: 10.2165/11318040-000000000-00000

Muñoz J, Alcaide D, Ocaña J. Consumer’s risk in the EMA and FDA regulatory approaches for bioequivalence in highly variable drugs. Stat Med. 2015;35(12):1933–43. doi: 10.1002/sim.6834

See Also

sampleN.RSABE, power.scABEL


# using all the defaults:
# design="2x3x3" = partial replicate
# ABE limits, PE constraint 0.8-1.25
# true ratio = 0.90, 1E+5 simulations
power.RSABE(CV = 0.4, n = 36)
# should give
# [1] 0.83634
# to explore the simulation error due to the state of the
# random number generator
power.RSABE(CV = 0.4, n = 36, setseed = FALSE)
# will give something like
# [1] 0.83725
# explore pure RSABE (without mixed method, without pe constraint)
rs           <- reg_const("FDA")
rs$CVswitch  <- 0
rs$pe_constr <- FALSE
power.RSABE(CV = 0.4, n = 36, regulator = rs)
# should give
# [1] 0.84644

PowerTOST documentation built on March 18, 2022, 5:47 p.m.