Learn R Programming

PowerTOST (version 1.5-4)

sampleN.scABEL: Sample size estimation for BE decision via scaled (expanded) BE acceptance limits

Description

This function performs the sample size estimation via power calculations of the BE decision via scaled (expanded) BE acceptance limits, based on simulations.

Usage

sampleN.scABEL(alpha = 0.05, targetpower = 0.8, theta0, theta1, theta2,
               CV, design = c("2x3x3", "2x2x4", "2x2x3"), regulator,
               nsims = 1e+05, nstart, imax = 100, print = TRUE,
               details = TRUE, setseed = TRUE)

Value

Returns a data.frame with the input settings and sample size results.

The Sample size column contains the total sample size.

The nlast column contains the last n value. May be useful for restarting.

Arguments

alpha

Type I error probability. Per convention mostly set to 0.05.

targetpower

Power to achieve at least. Must be >0 and <1.
Typical values are 0.8 or 0.9.

theta0

‘True’ or assumed T/R ratio.
Defaults to 0.90 according to the two Lászlós if not given explicitly.

theta1

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.

theta2

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.

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

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 design="2x3x3". Details are given the section about Designs.

regulator

Regulatory settings for the widening of the BE acceptance limits.
May be given as character from the choices "EMA", "HC", "GCC", "FDA" 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.

nsims

Number of simulations to be performed to obtain the (empirical) power. The default value 100,000 = 1e+5 is usually sufficient. Consider to rise this value if theta0 <=0.85 or >=1.20. But see the warning section.

nstart

Set this to a start for the sample size search if a previous run failed.
After reworking the start n in version 1.1-05 rarely needed.

imax

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

print

If TRUE (default) the function prints its results. If FALSE only the result data.frame will be returned.

details

If set to TRUE (default), the steps during sample size search are shown.

setseed

Simulations are dependent on the starting point of the (pseudo) random number generator. To avoid differences in power for different runs a set.seed(123456) is issued if setseed = TRUE, the default.

Author

D. Labes

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
"2x3x3"TRR | RTR | RRT

Warning

The sample size estimation for extreme theta0 (<0.83 or >1.21) may be very time consuming and will eventually also fail since the start values chosen are not really reasonable in that ranges. This is especially true in the range around CV = 0.3 and regulatory constant according to FDA.
If you really need sample sizes in that range be prepared to restart the sample size estimation via the argument nstart.
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 get caught in the simulation error trap.

If results of power.scABEL are expected to be inaccurate (partial replicate design with unbalanced sequences and/or heteroscedasticity in the case of CVwT > CVwR, subject data via sampleN.scABEL.sdsims should be simulated instead. Very time consuming (easily 100times slower)! Subject data simulations are only supported for regulator="EMA" and regulator="GCC".

Details

The simulations are done via the distributional properties of the statistical quantities necessary for deciding BE based on ABEL (‘Average Bioequivalence with Expanded Limits’). For more details see a description in the /doc sub-directory of the package.

Function sampleN.scABEL() is based on power calculations via simulations using the distributional characteristics of the ‘key’ statistics obtained from the EMA recommended evaluation via ANOVA if regulator="EMA" or if the regulator component est_method is set to "ANOVA" if regulator is an object of class 'regSet'.
Otherwise, the simulations are based on the distributional characteristis of the ‘key’ statistics obtained from evaluation via intra-subject contrasts (ISC), as recommended by the FDA.

The estimated sample size gives always the total number of subjects (not subject/sequence -- like in some other software packages).

Function sampleN.scABEL2() is solely based on power calculations via simulation using the distributional characteristics of the ‘key’ statistics obtained from evaluation via intra-subject contrasts (ISC). This function is deprecated.

References

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

See Also

power.scABEL, sampleN.scABEL.sdsims, sampleN.RSABE, reg_const

Examples

Run this code
# using all the defaults:
# partial replicate design, targetpower=80%,
# true assumed ratio = 0.90, 1E+5 simulated studies
# ABE limits, PE constraint 0.8 - 1.25
# EMA regulatory settings
sampleN.scABEL(CV = 0.3)
# should result in a sample size n=54, power=0.8159

# Now with former (inofficial) ANVISA settings, CVswitch=40%
# (since 2016 ANVISA uses the same settings as EMA)
reg      <- reg_const("USER", r_const = 0.76, CVswitch = 0.4, CVcap = 0.5)
reg$name <- "Old ANVISA"
sampleN.scABEL(CV = 0.3, regulator = reg)
# should result in a sample size n=60, power=0.8101

# For the full replicate design, target power = 90%
# true assumed ratio = 0.9, FDA regulatory settings
# sims based on evalaution via ISC
sampleN.scABEL(CV = 0.4, targetpower = 0.9, design = "2x2x4",
               regulator = "FDA")
# should result in a sample size n=32, power=0.9125

# Fixed wider limits (0.7500 - 1.3333) for the GCC
sampleN.scABEL(CV = 0.4, targetpower = 0.9, design = "2x2x4",
               regulator = "GCC")
# should result in a sample size n=40, power=0.9039

Run the code above in your browser using DataLab