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)
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.
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.
Although some designs are more ‘popular’ than others, power calculations are valid for all of the following designs:
"2x2x4" | TRTR | RTRT |
TRRT | RTTR | |
TTRR | RRTT | |
"2x2x3" | TRT | RTR |
TRR | RTT | |
"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
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.
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. tools:::Rd_expr_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. tools:::Rd_expr_doi("10.1002/sim.6834")
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
Run the code above in your browser using DataLab