This function iteratively adjusts alpha for the BE decision via Average Bioequivalence with Expanding Limits (ABEL) based on simulations in order to maintain the consumer risk at the nominal level.
scABEL.ad(alpha = 0.05, theta0, theta1, theta2, CV,
design = c("2x3x3", "2x2x4", "2x2x3"), regulator,
n, alpha.pre = 0.05, imax = 100, tol, print = TRUE,
details = FALSE, setseed = TRUE, nsims = 1e+06,
sdsims = FALSE, progress)
Type I Error (TIE) probability (nominal level of the test). Per convention commonly set to 0.05.
‘True’ or assumed T/R ratio. Defaults to 0.90 according to the two L<U+00E1>szl<U+00F3>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==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]
.
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 the widening of the BE acceptance limits.
Choose from "EMA"
(default), "HC"
, or "FDA"
. This argument
may also be given in lower case.
Total sample size of the study or a vector of sample size / sequences.
If n
leads to an unbalanced design (i.e., is not a multiple of two
in the full replicate designs or not a multiple of three in the partial
replicate), the code tries to keep subjects / sequence as balanced as possible.
In evaluating a particular unbalanced study always give n
as a vector.
Only if design="2x2x3"
(TRT|RTR) the order of sample sizes
is important. n[1]
is for sequence TRT and n[2]
for sequence RTR.
If n
is missing, a sample size is estimated with target power 0.80 and pre-specified
alpha if defined. Otherwise, alpha is used.
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<U+2019>s
0.025 is not sufficient to preserve the Type I Error (e.g., the third example).
Not recommended if CVwR >= 0.45
due to poor power characteristics.
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
, the relative change of the consumer risk in percent is shown.
Additionally information about the impact on power (for specified theta0
and target power 0.80), runtime, and number of simulations (iterations)
are given. Defaults to FALSE
.
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).
Number of simulations to be performed to estimate the (empirical) TIE error and in each iteration of adjusting alpha. The default value 1,000,000 = 1E+6 should not be lowered.
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"
.
Set to TRUE
if a progress bar should be displayed. Ignored if sdsims=FALSE
.
Sends results to the console if argument print=TRUE
(default).
Returns a list with the input, adjusted alpha, and Type I Error (for nominal
and adjusted alpha) if argument print=FALSE
.
If no adjustment is necessary, NAs
will be returned for the respective
variables (alpha.adj
, TIE.adj
, rel.change
, pwr.adj
, rel.loss
).
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 |
See the Warning section of the function power.scABEL
concerning
the power value agreement to the one obtained by simulations via subject data.
The simulations are done via the distributional properties of the statistical
quantities necessary for assessing BE based on ABEL.
Simulations for 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<U+2019> and Health Canada<U+2019>s CVswitch
and
CVcap
:
scABEL(CV=0.3, reg="EMA")[["upper"]]; scABEL(CV=0.3, reg="HC")[["upper"]] [1] 1.25 [1] 1.25 scABEL(CV=0.5, reg="EMA")[["upper"]]; scABEL(CV=0.57382, reg="HC")[["upper"]] [1] 1.43191 [1] 1.5
Simulated studies are evaluated by ANOVA (Method A) as recommended in the
EMA<U+2019> 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.
The Type I Error in ABEL depends only on CVwR
and -- to a
minor degree -- the sample size. Algorithm:
The TIE is assessed based on alpha
(or alpha.pre
)
and compared to the nominal level of the test alpha
.
If no inflation of the TIE is found, the algorithm stops.
Otherwise, alpha is iteratively adjusted (i.e., alpha.adj <alpha
)
until no more relevant inflation of the TIE is detected (i.e.,
abs(TIE - alpha) <= tol
).
Wonnemann M, Fr<U+00F6>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. 10.1007/s11095-014-1450-z
Mu<U+00F1>oz J, Alcaide D, Oca<U+00F1>a J. Consumer<U+2019>s risk in the EMA and FDA regulatory approaches for bioequivalence in highly variable drugs. Stat Med. 2015;35(12):1933--43. 10.1002/sim.6834
Labes D, Sch<U+00FC>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. 10.1007/s11095-016-2006-1
T<U+00F3>thfalusi L, Endr<U+00E9>nyi L. Algorithms for Evaluating Reference Scaled Average Bioequivalence: Power, Bias, and Consumer Risk. Stat Med. 2017;36(27):4378--90. 10.1002/sim.7440
Molins E, Cobo E, Oca<U+00F1>a J. Two-Stage Designs Versus European Scaled Average Designs in Bioequivalence Studies for Highly Variable Drugs: Which to Choose? Stat Med. 2017;36(30):4777--88. 10.1002/sim.7452
European Medicines Agency, Committee for Medicinal Products for Human Use. Guideline on the Investigation of Bioequivalence. London, 20 January 2010. CPMP/EWP/QWP/1401/98 Rev. 1/ Corr **
European Medicines Agency, Committee for Medicinal Products for Human Use. Questions & Answers: positions on specific questions addressed to the Pharmacokinetics Working Party (PKWP). London, 19 November 2015. EMA/618604/2008 Rev. 13
Health Canada, Therapeutic Products Directorate. Policy on Bioequivalence Standards for Highly Variable Drug Products. Ottawa, 18 April 2016. 16-104293-140
sampleN.scABEL.ad
, power.scABEL
, power.scABEL.sdsims
, scABEL
# NOT RUN {
# Using all defaults:
# TRR|RTR|RRT, target power 80% for assumed ratio 0.90 (estimated sample size 54),
# EMA regulatory settings (ABE limits and PE constraint 0.80 - 1.25),
# 1E+6 simulated studies.
# Not run: due to timing policy of CRAN for examples
# }
# NOT RUN {
scABEL.ad(CV = 0.3)
# }
# NOT RUN {
# Should result in adjusted alpha 0.03389 (TIE 0.5000, TIE for nominal alpha 0.07189).
#
# As above but subject data simulations.
# }
# NOT RUN {
scABEL.ad(CV = 0.3, sdsims = TRUE)
# }
# NOT RUN {
# Should result in adjusted alpha 0.03336 (TIE 0.5000, TIE for nominal alpha 0.07237).
#
# TRT|RTR, heteroscedasticity, sample size 48 (unbalanced), subject data simulations.
# }
# NOT RUN {
scABEL.ad(CV = c(0.25, 0.3), design = "2x2x3", n = c(23, 25), sdsims = TRUE)
# }
# NOT RUN {
# Should result in adjusted alpha 0.02465 (TIE 0.5000, TIE for nominal alpha 0.09050).
#
# TRTR|RTRT, CV 0.35, sample size 33 (unbalanced).
# }
# NOT RUN {
scABEL.ad(CV = 0.35, design = "2x2x4", n = c(16, 17))
# }
# NOT RUN {
# Should result in adjusted alpha 0.03632 (TIE 0.5000, TIE for nominal alpha 0.06544).
# }
Run the code above in your browser using DataLab