sampleN.NTID: Sample size estimation for BE decision via the FDA's method...

View source: R/samplesize_RSABE_NTID.R

sampleN.NTIDR Documentation

Sample size estimation for BE decision via the FDA's method for narrow therapeutic index drugs (NTIDs)


This function performs the sample size estimation for the BE decision for the FDA’s method for NTIDs based on simulations. The study design is the full replicate design 2x2x4 (TRTR|RTRT) or the 3-period replicate design with sequences TRT|RTR.


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



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


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


‘True’ or assumed T/R ratio.
Attention! Defaults here to 0.975 if not given explicitly. The value was chosen closer to 1 because the potency (contents) settings for NTIDs are tightened by the FDA.


Conventional lower ABE limit to be applied in the FDA procedure.
Defaults to 0.8 if not given explicitly.


Conventional upper ABE limit to be applied in the FDA procedure.
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 to be planned.
"2x2x4" is the full replicate with 2 sequences and 4 periods (TRTR|RTRT).
"2x2x3" is the full replicate with 2 sequences and 3 periods (TRT|RTR).
Defaults to design = "2x2x4".


Number of simulations to be performed to obtain the empirical power. Defaults to 100,000 = 1e+5.


Set this to a start value for the sample size if a previous run failed.
May be missing.


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


If TRUE (default) the function prints its results. If FALSE only the resulting dataframe will be returned.


If set to TRUE, the default, the steps during sample size search are shown. Moreover the details of the method settings are printed.


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


The linearized scaled ABE criterion is calculated according to the SAS code given in the FDA’s guidances. For deciding BE the study must pass that criterion, the conventional ABE test, and that the upper confidence limit of σwT/σwR &leq; 2.5.

The simulations are done via the distributional properties of the statistical quantities necessary for deciding BE based on this method.
Details can be found in a document Implementation_scaledABE_sims located in the /doc sub-directory of the package.

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


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 re-starting.


For some input combinations the sample size search may be very time consuming and will eventually even fail since the start values chosen may not really reasonable for them. This applies especially for theta0 values close to the implied scaled limits according to exp(&mnplus;1.053605 × swR).
In case of a failed sample size search you may restart with setting the argument nstart.
In case of theta0 values outside the implied scaled (tightened/widened) ABE limits no sample size estimation is possible and the function throws an error (f.i. CV = 0.04, theta0 = 0.95).


The design recommended by the FDA is the full replicate design "2x2x4".
The sample size estimation is done only for balanced studies since the break down of the total subject number in case of unbalanced sequence groups is not unique. Moreover the formulas used are only valid for balanced designs.
The FDA method is described for the ABE limits 0.8 ... 1.25 only. Setting theta1, theta2 to other values may not be reasonable and is not tested.
The results for the design "2x2x3" are to be considered as experimental since at present not thorougly tested.
The minimum sample size is 6, even if the power is higher than the intended targetpower.

The method is also required by China’s Center of Drug Evaluation.


D. Labes


Food and Drug Administration, Office of Generic Drugs (OGD). Draft Guidance on Warfarin Sodium. Recommended Dec 2012. download

Food and Drug Administration, Center for Drug Evaluation and Research (CDER). Draft Guidance for Industry. Bioequivalence Studies with Pharmacokinetic Endpoints for Drugs Submitted Under an ANDA. August 2021. download

Yu LX, Jiang W, Zhang X, Lionberger R, Makhlouf F, Schuirmann DJ, Muldowney L, Chen ML, Davit B, Conner D, Woodcock J. Novel bioequivalence approach for narrow therapeutic index drugs. Clin Pharmacol Ther. 2015;97(3):286–91. doi: 10.1002/cpt.28

Jiang W, Makhlouf F, Schuirmann DJ, Zhang X, Zheng N, Conner D, Yu LX, Lionberger R. A Bioequivalence Approach for Generic Narrow Therapeutic Index Drugs: Evaluation of the Reference-Scaled Approach and Variability Comparison Criterion. AAPS J. 2015;17(4):891–901. doi: 10.1208/s12248-015-9753-5

Endrényi L, Tóthfalusi L. Determination of Bioequivalence for Drugs with Narrow Therapeutic Index: Reduction of the Regulatory Burden. J Pharm Pharm Sci. 2013;16(5):676–82. open access

See Also

power.NTID and power.HVNTID, sampleN.HVNTID for NTIDs with high variability


sampleN.NTID(CV = 0.04,theta0 = 0.975)
# should give
# n=54 with an (empirical) power of 0.809590
# Test formulation with lower variability
sampleN.NTID(CV = c(0.04,0.06),theta0 = 0.975)
# should give
# n=20 with an (empirical) power of 0.0.814610
# alternative 3-period design
sampleN.NTID(CV = 0.04,theta0 = 0.975, design="2x2x3")
# should give
# n=86 with power = 0.80364

PowerTOST documentation built on March 18, 2022, 5:47 p.m.