power.RSABE2L.sdsims: (Empirical) Power of BE Decision via Reference Scaled ABE

View source: R/power_RSABE2L_sdsims.R

power.RSABE2L.sdsimsR Documentation

(Empirical) Power of BE Decision via Reference Scaled ABE


These function performs the power calculation of the BE decision via the reference scaled ABE based on subject data simulations. Implemented are the methods ABEL, Hyslop and ‘exact’ as described in the references.
The estimation method of the key statistics needed to perform the RSABE decision is the usual ANOVA.


power.RSABE2L.sdsims(alpha = 0.05, theta1, theta2, theta0, CV, n, 
                     design = c("2x3x3", "2x2x4", "2x2x3"), design_dta = NULL,
                     SABE_test = "exact", regulator, nsims = 1e+05, 
                     details = FALSE, setseed = TRUE, progress)



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


Conventional lower ABE (Average Bioequivalence) 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).
Attention! In case of the "2x2x3" (TRT|RTR) design the order of sample sizes per sequence is important if given as 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 design="2x3x3". Details are given the section about Designs.


Alternatively to using the arguments design and n the design may be defined via a data.frame with columns subject, sequence, period and tmt. This feature is experimental in the sense that the data.frame is not checked for complying with the assumed structure.
If you use the argument design_dta you don’t need to specify the arguments design and n.
The default design_dta=NULL means that design and n are used for the internal construction of the design data.frame.


This argument specifies the test method to be used for the reference scaled ABE decision.
Default is the "exact" ‘ncTOST’ method of the two Laszlós. Other choices are "ABEL", "hyslop" and "fda". See Details.


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

If given as object of class 'regSet' the component est_method can not be "ISC".


Number of simulations to be performed to obtain the empirical power. Defaults to 100,000 = 1e+05.
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-RSABE) is the probability of a positive outcome of the SABE test.
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.


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.


Should a progressbar be shown? Defaults to TRUE if missing and nsims >5e5.


The methods rely on the analysis of log-transformed data, i.e., assumes a log-normal distribution on the original scale.

The data.frame with columns subject, sequence, period and tmt necessary for evalution of simulated subject data is constructed internally from the arguments design and n or may be given user defined via the argument design_dta. The last option is usefull if missing data have to be considered or if designs have to be evaluated which are not in the list of argument design.

The estimation method for obtaining the statistics necessary to perform the reference scaled ABE decision is the usual ANOVA with effects treatment, period, sequence and subject within sequence for the evaluation of all data and period, sequence and subject within sequence for the evaluation of the Reference formulation data only.

The SABE tests implemented are:

"exact" ‘exact’ based method of the two Laszlós (see references, called there ‘ncTOST’)
"ABEL" Average bioequivalence with expanding limits
"hyslop" BE decision via the linearized RSABE criterion and its upper 95% CI
"fda" Hyslop with an additional bias correction term as implemented in the SAS code of the
FDA’s Guidance on Progesterone.


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-RSABE) is the power of using the reference scaled ABE alone, and p(BE-pe) is the power of the criterion ‘point estimate 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


The function is relatively slow. The run-time for 1 Mio. simulations is between ~ 1 up to 6 minutes for n=12 or n=120 and 1 Mio. sim’s (see the call under examples) on a machine with an Intel core i7 processor.
Thus be patient and go for a cup of coffee if you use this function with higher sample sizes and aim for estimating the type 1 error!


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. An Exact Procedure for the Evaluation of Reference-Scaled Average Bioequivalence. AAPS J. 2016;18(2):476–89. doi: 10.1208/s12248-016-9873-6.

Tóthfalusi L, Endrényi L. Algorithms for evaluating reference scaled average bioequivalence: power, bias, and consumer risk. Stat Med. 2017;36(27):4378–4390. doi: 10.1002/sim.7440

See Also

power.RSABE, reg_const


# Not run due to timing policy of CRAN

# pure EMA settings without mixed procedure, cap on widening and PE constraint
# as in the reference from 2017
reg           <- reg_const("EMA")
reg$CVswitch  <- 0
reg$CVcap     <- Inf
reg$pe_constr <- FALSE
reg$name      <- "EMA pure"
power.RSABE2L.sds(CV = 0.4, n = 12, theta0 = exp(0.05),
                  design = "2x2x4", regulator = reg, nsims = 50000)
# should give:
# [1] 0.46504 (compared to 47.1% in the 2017 reference)

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