PowerTOST 1.5-2.9000 on GitHub [RSABE / ABEL]
I updated the development version 1.5.2.9000 of
PowerTOST
on GitHub (it’s not on CRAN yet). If you want to give it a try:install.packages("remotes")
remotes::install_github("Detlew/PowerTOST")
Some examples in the following. Business as usual (ABE):
sampleN.TOST(CV = 0.29, theta0 = 0.9, design = "2x2x4")
+++++++++++ Equivalence test - TOST +++++++++++
Sample size estimation
-----------------------------------------------
Study design: 2x2x4 (4 period full replicate)
log-transformed data (multiplicative model)
alpha = 0.05, target power = 0.8
BE margins = 0.8 ... 1.25
True ratio = 0.9, CV = 0.29
Sample size (total)
n power
38 0.814460
Note that we are close to the switching CVwR 30%. What about ABEL?
sampleN.scABEL(CV = 0.29, theta0 = 0.9, design = "2x2x4",
regulator = "EMA", details = FALSE)
+++++++++++ scaled (widened) ABEL +++++++++++
Sample size estimation
(simulation based on ANOVA evaluation)
---------------------------------------------
Study design: 2x2x4 (4 period full replicate)
log-transformed data (multiplicative model)
1e+05 studies for each step simulated.
alpha = 0.05, target power = 0.8
CVw(T) = 0.29; CVw(R) = 0.29
True ratio = 0.9
ABE limits / PE constraint = 0.8 ... 1.25
Regulatory settings: EMA
Sample size
n power
34 0.8095
Using the new argument
regulator = "GCC"
.sampleN.scABEL(CV = 0.29, theta0 = 0.9, design = "2x2x4",
regulator = "GCC", details = FALSE)
+++++++++++ scaled (widened) ABEL +++++++++++
Sample size estimation
(simulation based on ANOVA evaluation)
---------------------------------------------
Study design: 2x2x4 (4 period full replicate)
log-transformed data (multiplicative model)
1e+05 studies for each step simulated.
alpha = 0.05, target power = 0.8
CVw(T) = 0.29; CVw(R) = 0.29
True ratio = 0.9
ABE limits / PE constraint = 0.8 ... 1.25
Regulatory settings: GCC
Sample size
n power
28 0.8014
power.scABEL(CV = 0.29, theta0 = 1.25, design = "2x2x4",
n = 28, regulator = "GCC")
[1] 0.14573
Iteratively adjust α:
scABEL.ad(CV = 0.29, theta0 =0.9, design = "2x2x4",
n = 28, regulator = "GCC")
+++++++++++ scaled (widened) ABEL ++++++++++++
iteratively adjusted alpha
(simulations based on ANOVA evaluation)
----------------------------------------------
Study design: 2x2x4 (4 period full replicate)
log-transformed data (multiplicative model)
1,000,000 studies in each iteration simulated.
CVwR 0.29, CVwT 0.29, n(i) 14|14 (N 28)
Nominal alpha : 0.05
True ratio : 0.9000
Regulatory settings : GCC (ABE)
Switching CVwR : 0.3
BE limits : 0.8000 ... 1.2500
PE constraints : 0.8000 ... 1.2500
Empiric TIE for alpha 0.0500 : 0.14573
Power for theta0 0.9000 : 0.801
Iteratively adjusted alpha : 0.01102
Empiric TIE for adjusted alpha: 0.05000
Power for theta0 0.9000 : 0.602
Increase the sample size to maintain power (show progress of iterations):
sampleN.scABEL.ad(CV = 0.29, theta0 = 0.9, design = "2x2x4",
regulator = "GCC", progress = TRUE, details = TRUE)
+++++++++++ scaled (widened) ABEL ++++++++++++
Sample size estimation
for iteratively adjusted alpha
(simulations based on ANOVA evaluation)
----------------------------------------------
Study design: 2x2x4 (4 period full replicate)
log-transformed data (multiplicative model)
1,000,000 studies in each iteration simulated.
Assumed CVwR 0.29, CVwT 0.29
Nominal alpha : 0.05
True ratio : 0.9000
Target power : 0.8
Regulatory settings: GCC (ABE)
Switching CVwR : 0.3
BE limits : 0.8000 ... 1.2500
PE constraints : 0.8000 ... 1.2500
Progress of each iteration:
n 28, nomin. alpha: 0.05000 (power 0.8014), TIE: 0.1457
Sample size search and iteratively adjusting alpha
n 28, adj. alpha: 0.01102 (power 0.6016), rel. impact on power: -24.94%
n 48, adj. alpha: 0.00488 (power 0.7372)
n 46, adj. alpha: 0.00529 (power 0.7274)
n 48, adj. alpha: 0.00488 (power 0.7372)
n 50, adj. alpha: 0.00452 (power 0.7461)
n 52, adj. alpha: 0.00419 (power 0.7550)
n 54, adj. alpha: 0.00389 (power 0.7629)
n 56, adj. alpha: 0.00359 (power 0.7703)
n 58, adj. alpha: 0.00333 (power 0.7787)
n 60, adj. alpha: 0.00312 (power 0.7850)
n 62, adj. alpha: 0.00289 (power 0.7924)
n 64, adj. alpha: 0.00268 (power 0.7989)
n 66, adj. alpha: 0.00251 (power 0.8058), TIE: 0.05000
Compared to nominal alpha's sample size increase of 135.7% (~study costs).
Runtime : 79 seconds
Simulations: 97,500,000
Inspect the plots of this post again. If the true CVwR > 30% it might misclassified as well but this time towards the conventional limits and the TIE is not inflated. Hence, we get the same sample size by
sampleN.scABEL(CV = 0.31, theta0 = 0.9, design = "2x2x4",
regulator = "GCC", details = FALSE)
+++++++++++ scaled (widened) ABEL +++++++++++
Sample size estimation
(simulation based on ANOVA evaluation)
---------------------------------------------
Study design: 2x2x4 (4 period full replicate)
log-transformed data (multiplicative model)
1e+05 studies for each step simulated.
alpha = 0.05, target power = 0.8
CVw(T) = 0.31; CVw(R) = 0.31
True ratio = 0.9
ABE limits / PE constraint = 0.8 ... 1.25
Widened limits = 0.75 ... 1.333333
Regulatory settings: GCC
Sample size
n power
28 0.8135
sampleN.scABEL.ad(CV = 0.31, theta0 = 0.9, design = "2x2x4",
regulator = "GCC", details = FALSE)
+++++++++++ scaled (widened) ABEL ++++++++++++
Sample size estimation
for iteratively adjusted alpha
(simulations based on ANOVA evaluation)
----------------------------------------------
Study design: 2x2x4 (4 period full replicate)
log-transformed data (multiplicative model)
1,000,000 studies in each iteration simulated.
Assumed CVwR 0.31, CVwT 0.31
Nominal alpha : 0.05
True ratio : 0.9000
Target power : 0.8
Regulatory settings: GCC (ABEL)
Switching CVwR : 0.3
Regulatory constant: 0.97998
Widened limits : 0.7500 ... 1.3333
PE constraints : 0.8000 ... 1.2500
n 28, nomin. alpha: 0.05000 (power 0.8135), TIE: 0.0263
No inflation of the TIE expected; hence, no adjustment of alpha required.
Inflation of the Type I error in different approaches (2-sequence, 4-period full replicate designs):
- Conventional ABE with fixed limits never exceeds nominal α. Since TOST is not a most powerful test, for high CVs combined with small sample sizes, the TIE will be below nominal α. All is good.
- For the EMA’s ABEL the maximum inflation occurs at CVwR 30%. If CVwR increases, the TIE decreases since the probability of a misclassification decreases as well. Starting with the upper scaling cap at CVwR 50% limits are fixed and the TIE is driven by the conservatism of TOST – together with the PE-constraint. However, even for very high CVs (not shown) the TIE doesn’t exceed nominal α.
- Similar for Health Canada’s ABEL though the minimum TIE is observed at it’s upper cap of ~57.38%.
- For the GCC’s widened limits huge inflation of the TIE if CVwR ≤30% (the highest of all approaches). Strong dependency on the sample size. Behaves with increasing CVs like TOST.
- Huge inflation of the TIE for the FDA’s RSABE with implied limits if CVwR <30%. Moderate to extremely conservative otherwise. That’s the model all (‼) authors (except ones of the FDA1) considered the applicable one since products are approved according to this model and not according to f.
- Lower inflation of the TIE by the FDA’s RSABE “desired consumer risk model”.1 No more than a mathematical prestidigitation and called even “hocus pocus” by some.2 Here the maximum inflation of the TIE occurs at ~25.4%.
- Davit BM, Chen ML, Conner DP, Haidar SH, Kim S, Lee CH, Lionberger RA, Makhlouf FT, Nwakama PE, Patel DT, Schuirmann DJ, Yu LX. Implementation of a Reference-Scaled Average Bioequivalence Approach for Highly Variable Generic Drug Products by the US Food and Drug Administration. AAPS J. 2012: 14(4); 915–24. doi:10.1208/s12248-012-9406-x. PMC Free Full text.
- Detlew Labes, László Endrényi, myself…
Edit 2021-01-18: PowerTOST 1.5-3 on CRAN.
Dif-tor heh smusma 🖖🏼 Довге життя Україна!
Helmut Schütz
The quality of responses received is directly proportional to the quality of the question asked. 🚮
Science Quotes
Complete thread:
- Inflated type I error with fixed widened limits? Helmut 2020-11-25 10:50 [RSABE / ABEL]
- Inflated type I error with fixed widened limits? d_labes 2020-11-25 15:07
- Inflated type I error with fixed widened limits? Helmut 2020-11-26 00:09
- Inflated type I error with fixed widened limits d_labes 2020-11-26 15:38
- Inflated type I error: Not nice Helmut 2020-11-26 17:14
- Power of the GCC framework and power of PowerTOST d_labes 2020-11-28 11:20
- Sample sizes (ignoring the inflated TIE) Helmut 2020-11-29 11:21
- Power of the GCC framework and power of PowerTOST d_labes 2020-11-28 11:20
- Inflated type I error: Not nice Helmut 2020-11-26 17:14
- Inflated type I error with fixed widened limits d_labes 2020-11-26 15:38
- Inflated type I error with fixed widened limits? Helmut 2020-11-26 00:09
- Inflated type I error with fixed widened limits? wienui 2020-11-29 14:03
- Inflated type I error with fixed widened limits d_labes 2020-11-29 17:51
- Inflated type I error with fixed widened limits Helmut 2020-11-30 00:14
- Inflated type I error with fixed widened limits wienui 2020-11-30 03:30
- Houston, we have a problem! Helmut 2020-11-30 14:42
- Paradox of tolerance Astea 2020-12-01 23:34
- Οὐτοπεία ∨ Εὐτοπεία Helmut 2020-12-02 01:37
- Uchronia Astea 2020-12-02 09:46
- Steampunk Helmut 2020-12-02 11:34
- Dieselpunk Astea 2020-12-02 15:28
- Dieselpunk Helmut 2020-12-02 16:18
- Steampunk? OT d_labes 2020-12-02 19:30
- Steampunk? OT Astea 2020-12-02 19:58
- Dieselpunk Astea 2020-12-02 15:28
- Steampunk Helmut 2020-12-02 11:34
- Uchronia Astea 2020-12-02 09:46
- Οὐτοπεία ∨ Εὐτοπεία Helmut 2020-12-02 01:37
- Paradox of tolerance Astea 2020-12-01 23:34
- PowerTOST 1.5-2.9000 on GitHubHelmut 2020-12-23 12:18
- Houston, we have a problem! Helmut 2020-11-30 14:42
- Inflated type I error with fixed widened limits wienui 2020-11-30 03:30
- Inflated type I error with fixed widened limits Helmut 2020-11-30 00:14
- Inflated type I error with fixed widened limits d_labes 2020-11-29 17:51
- Inflated type I error with fixed widened limits? d_labes 2020-11-25 15:07