Sample size estimation for ABEL and iteratively adjusted...

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

View source: R/


This function performs a sample size estimation for the BE decision via Average Bioequivalenc with Expanding Limits (ABEL) based on simulations. Simultaneously alpha is iteratively adjusted in order to maintain the consumer risk at the nominal level.


5 = 0.05, targetpower = 0.8, theta0, theta1, theta2,
                  CV, design = c("2x3x3", "2x2x4", "2x2x3"), regulator,
                  nstart = NA, nsims = 1e+06, imax = 100, tol, print = TRUE,
                  details = FALSE, alpha.pre = 0.05, setseed = TRUE,
                  sdsims = FALSE, progress)



Type I error (TIE) probability (nominal level of the test). Per convention commonly set to 0.05.


Power to achieve at least. Must be >0 and <1. Typical values are 0.80 to 0.90 (i.e., 80% to 90%). Defaults to 0.80 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.


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


Conventional upper ABE limit to be applied in the mixed procedure if CVwR==CVswitch. Also upper limit for the point estimate constraint. Defaults to 1.25 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&nbsp= CVwR).

  • If given as a vector (length(CV)==2) – assuming heteroscedasticity –
    the CV of Test must be given in the first element and the one of Reference in the second.


Design of the study to be planned.
"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 the widening of the BE acceptance limits. Choose from "EMA" (default), "HC", or "GCC". This argument may be given also in lower case.


Best “guess” sample size. If not given (default), simulations start with the sample size estimated for alpha (or alpha.pre, if given), theta0, and targetpower.
Can also be set to start the sample size search if a previous run failed.
According to regulatory requirements must be >=12 for the EMA and >=24 for ANVISA.


Number of simulations to be performed to estimate the (empirical) TIE and in each iteration of adjusting alpha. The default value 1,000,000 = 1E+6 should not be lowered.


Maximum number of steps in sample size search. Defaults to 100.


Desired accuracy (convergence tolerance). Defaults to 1E-6.


If TRUE (default), the function sends its results to the console.


If TRUE (default), the steps during sample size search are shown. Additionally information about the impact on power by adjusting alpha and change of study costs due to the increased sample size is given.


Pre-specified alpha (optional). Must be <=alpha. ABEL will be performed at level alpha.pre and the TIE assessed at level alpha.
Less powerful than adjusting alpha but an alternative in the critical region of maximum inflation of the TIE. In certain scenarios Bonferroni’s 0.025 is not sufficient to preserve the Type I Error.
Not recommended if CVwR ≥ 0.45 due to poor power characteristics.


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


If FALSE (default) power is estimated by the respective ‘key’ statistics. Recommended for speed reasons.
Set to TRUE if results of power.scABEL are expected to be inaccurate (partial replicate design with unbalanced sequences and/or heteroscedasticity where CVwT > CVwR) and subject data via power.scABEL.sdsims should be simulated instead. Very time consuming (easily 100times slower)! Subject data simulations are only supported for regulator="EMA" and regulator="GCC".


Set to TRUE if a progress bar should be displayed. Defaults to FALSE.
Ignored if sdsims=FALSE.


The simulations are done via the distributional properties of the statistical quantities necessary for assessing BE based on ABEL. Simulations of the TIE are performed at the upper (expanded) limit U of the acceptance range. Due to the symmetry around 1 results are valid for the lower (expanded) limit L as well.
U at the EMA’s and Health Canada’s CVcap, the GCC’s for any CVwR > 0.30:

scABEL(CV=0.5, reg="EMA")[["upper"]]
[1] 1.43191
scABEL(CV=0.57382, reg="HC")[["upper"]]
[1] 1.5
scABEL(CV=0.31, reg="GCC")[["upper"]]
[1] 1.333333

Simulated studies are evaluated by ANOVA (Method A) as recommended in the EMA’s Q&A-document and by intra-subject contrasts if regulator="HC". Health Canada requires a mixed effects model which cannot be implemented in R. However, intra-subjects contrasts are a sufficiently close approximation.

If an inflation of the TIE is expected (i.e., >alpha), alpha is iteratively adjusted until at least the target power is reached and the consumer risk is maintained (<=alpha). For details about the algorithm see the respective section of

The estimated sample size gives always the total number of subjects (not subject/sequence – like in some other software packages).


Returns a data.frame with the input and results for adjusted alpha, type I error, sample size, and achieved power.
The Sample size column contains the total sample size. If no adjustment is necessary, NA will be returned in the alpha.adj column and other results are identical to the ones obtained by sampleN.scABEL.


Although some designs are more ‘popular’ than others, sample size estimations are valid for all of the following designs:

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


The sample size estimation for extreme theta0 (<0.83 or >1.21) may be time consuming and will eventually also fail since the start values chosen are not really reasonable in that ranges.
If you really need sample sizes in that range be prepared to restart the sample size estimation with nstart above the last one before failure.
Since the dependence of power from n is very flat in the mentioned region you may also consider to adapt the number of simulations not to tap in the simulation error trap.

See also the Warning section of the function power.scABEL concerning the power value agreement to those obtained from simulations via subject data.

For the GCC and CVwR ≤ 0.30 simulations will be time consuming and may result in large sample sizes.


We are doing the sample size estimation only for balanced designs since the break down of the total subject number in case of unbalanced sequences is not unique. Moreover the formulas used are only for balanced designs.


H. Schütz


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

Wonnemann M, Frömke C, Koch A. Inflation of the Type I Error: Investigations on Regulatory Recommendations for Bioequivalence of Highly Variable Drugs. Pharm Res. 2015;32(1):135–43. doi: 10.1007/s11095-014-1450-z

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

Labes D, Schütz H. Inflation of Type I Error in the Evaluation of Scaled Average Bioequivalence, and a Method for its Control. Pharm Res. 2016;33(11):2805–14. doi: 10.1007/s11095-016-2006-1

See Also, sampleN.scABEL, power.scABEL, scABEL


# --- Not run due to timing policy of CRAN for examples
# each may run some ten seconds or more
# using all the defaults:
# TRR|RTR|RRT, target power 80%, assumed ratio 0.90, 1E+6 simulated studies,
# EMA regulatory settings (ABE limits, PE constraint 0.8 - 1.25) = 0.3)
# should result in n 60, power 0.8022.
# Note: Without adjustment by sampleN.scABEL(): n 54, power 0.8159
# Easier to show the details: = 0.3, details = TRUE)
# TRTR|RTRT, target power 90%, pre-specified alpha 0.025 = 0.3, targetpower = 0.9, design = "2x2x4", alpha.pre = 0.025)
# should result in n 60, power 0.9021; pre-specified alpha justified.

PowerTOST documentation built on Jan. 18, 2021, 5:07 p.m.