PowerTOST (version 1.4-9)

sampleN.scABEL.ad: Sample size estimation for ABEL and iteratively adjusted alpha

Description

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.

Usage

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)

Arguments

alpha

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

targetpower

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.

theta0

‘True’ or assumed T/R ratio. Defaults to 0.90 according to the two Laszl<U+00F3>s if not given explicitly.

theta1

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.

theta2

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.

CV

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

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.

regulator

Regulatory settings for the widening of the BE acceptance limits. Choose from "EMA" (default) or "HC". This argument may be given also in lower case.

nstart

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.

nsims

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.

imax

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

tol

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

print

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

details

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.

alpha.pre

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. Not recommended if CVwR >= 0.45 due to poor power characteristics.

setseed

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).

sdsims

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".

progress

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

Value

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.

Designs

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

Warning

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.

Details

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>s 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>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.

References

T<U+00F3>thfalusi L, Endr<U+00E9>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<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

See Also

scABEL.ad, sampleN.scABEL, power.scABEL, scABEL

Examples

Run this code
# NOT RUN {
# --- 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)
# }
# NOT RUN {
sampleN.scABEL.ad(CV = 0.3)
# }
# NOT RUN {
# should result in n 60, power 0.8022.
# Note: Without adjustment by sampleN.scABEL(): n 54, power 0.8159
# Easier to show the details:
# }
# NOT RUN {
sampleN.scABEL.ad(CV = 0.3, details = TRUE)
# }
# NOT RUN {
#
# TRTR|RTRT, target power 90%, pre-specified alpha 0.025
# }
# NOT RUN {
sampleN.scABEL.ad(CV = 0.3, targetpower = 0.9, design = "2x2x4", alpha.pre = 0.025)
# }
# NOT RUN {
# should result in n 60, power 0.9021; pre-specified alpha justified.
# }

Run the code above in your browser using DataLab