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.
sampleN.scABEL.ad(alpha = 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)
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
.
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 = 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
.
H. Schütz
Although some designs are more ‘popular’ than others, sample size estimations are valid for all of the following designs:
"2x2x4" | TRTR | RTRT |
TRRT | RTTR | |
TTRR | RRTT | |
"2x2x3" | TRT | RTR |
TRR | RTT | |
"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.
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 scABEL.ad
.
The estimated sample size gives always the total number of subjects (not subject/sequence -- like in some other software packages).
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. tools:::Rd_expr_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. tools:::Rd_expr_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. tools:::Rd_expr_doi("10.1007/s11095-016-2006-1")
scABEL.ad
, 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)
# \donttest{
sampleN.scABEL.ad(CV = 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:
# \donttest{
sampleN.scABEL.ad(CV = 0.3, details = TRUE)# }
#
# TRTR|RTRT, target power 90%, pre-specified alpha 0.025
# \donttest{
sampleN.scABEL.ad(CV = 0.3, targetpower = 0.9, design = "2x2x4", alpha.pre = 0.025)# }
# should result in n 60, power 0.9021; pre-specified alpha justified.
Run the code above in your browser using DataLab