## Don’t use FARTSSIE for SABE [Power / Sample Size]

Hi Divyen,

❝ But my point for Bebac user was- He/She shall enhance the limit based on Swr and then calculate the subject size. I am still a fan of Dave's FARTSSIE and uses older version.

See this post and followings. Even if you are a fan of Dave (as I am), that’s not even wrong.
• The partial replicate design is not supported – though I don’t miss it.
• The sample size is estimated for the 2×2×2 design and then adjusted according to the selected design (⅔ for the 3-period full replicate and ½ for the 4-period full replicate).
• But:
• In ABEL the limits are not fixed like in ABE but depend on the (observed, realized) $$\small{\widehat{s}_\textrm{wR}}$$ instead of an assumed one. You can only assume a $$\small{\widehat{\sigma}_\textrm{wR}}$$ and simulate a reasonable large number of studies with different ones.
Hint: $$\small{\widehat{s}_\textrm{wR}^2}$$ follows a $$\small{\chi^2\textsf{-}}$$dis­tri­bution with $$\small{n-2}$$ degrees of freedom and $$\small{\theta_0}$$ follows a lognormal distribution.
• Additionally you have to take the upper cap of scaling (50% for the EMA and ≈57.4% for Health Canada) and the PE constraint (within 80.00–125.00%) into account.
Let’s try to reproduce what FARTSSIE does:

library(PowerTOST) balance <- function(n, seq) {   return(as.integer(seq * (n %/% seq + as.logical(n %% seq)))) } sampleN.FARTSSIE <- function(CV, theta0, targetpower, design) {   admin   <- as.integer(substr(design, 1, 1)) *              as.integer(substr(design, 3, 3)) *              as.integer(substr(design, 5, 5))   LU      <- setNames(scABEL(CV), c("theta1", "theta2"))   n.cross <- sampleN.TOST(CV = CV, theta0 = theta0,                           theta1 = LU[["theta1"]],                           theta2 = LU[["theta2"]],                           targetpower = targetpower,                           design = "2x2x2",                           method = "noncentral",                           print = FALSE)[["Sample size"]]   # Note: FARTSSIE leaves rounding up to   #       balanced sequences to the user   return(balance(n.cross * 8 / admin,                  as.integer(substr(design, 3, 3)))) } theta0      <- 0.90 targetpower <- 0.80 CV          <- seq(0.3, 0.5, 0.05) # The partial replicate design (TRR|RTR|RRT) is not supported in FARTSSIE # and Balaam’s design (TR|RT|TT|RR) is not supported in sampleN.scABEL(). res         <- data.frame(CV = CV, design = rep(c("2x2x3", "2x2x4"),                                                 each = length(CV)),                           n.FARTSSIE = NA_integer_, pwr.FARTSSIE = NA_real_,                           n.scABEL = NA_integer_, pwr.scABEL = NA_real_,                           pwr.SABE = NA_real_, pwr.PE = NA_real_,                           pwr.ABE = NA_real_) for (j in 1:nrow(res)) {   res$n.FARTSSIE[j] <- sampleN.FARTSSIE(CV = res$CV[j], theta0 = theta0,                                           targetpower = targetpower,                                           design = res$design[j]) res$pwr.FARTSSIE[j] <- power.scABEL(CV = res$CV[j], theta0 = theta0, n = res$n.FARTSSIE[j], design = res$design[j]) tmp <- sampleN.scABEL(CV = res$CV[j], theta0 = theta0,                                         targetpower = targetpower,                                         design = res$design[j], details = FALSE, print = FALSE) res$n.scABEL[j]     <- tmp[["Sample size"]]   res$pwr.scABEL[j] <- tmp[["Achieved power"]] # retrieve components: pure SABE, PE within constraints, ABE res[j, 7:9] <- suppressMessages( power.scABEL(CV = res$CV[j], theta0 = theta0,                                         design =res$design[j], n = res$n.scABEL[j],                                         details = TRUE)[2:4]) } names(res)[c(4, 6)] <- "power" res[, 4:9] <- signif(res[, 4:9], 4) print(res, row.names = FALSE)    CV design n.FARTSSIE  power n.scABEL  power pwr.SABE pwr.PE pwr.ABE  0.30  2x2x3         54 0.8242       50 0.8016   0.8016 0.9900  0.7450  0.35  2x2x3         44 0.7634       50 0.8037   0.8039 0.9776  0.6351  0.40  2x2x3         36 0.7246       46 0.8073   0.8086 0.9548  0.5164  0.45  2x2x3         34 0.7198       42 0.8002   0.8006 0.9266  0.4127  0.50  2x2x3         32 0.6880       42 0.8035   0.8035 0.9065  0.3484  0.30  2x2x4         40 0.8525       34 0.8028   0.8028 0.9906  0.7517  0.35  2x2x4         32 0.7929       34 0.8118   0.8119 0.9786  0.6424  0.40  2x2x4         28 0.7829       30 0.8066   0.8074 0.9528  0.5069  0.45  2x2x4         26 0.7846       28 0.8112   0.8116 0.9266  0.4107  0.50  2x2x4         24 0.7536       28 0.8143   0.8143 0.9065  0.3476

Only for CV 30% the sample size is higher than required (money lost). For higher CVs studies will be underpowered. What we also see: The PE-constraint gets increasingly important.

In your screenshot of FARTSSIE (which version?) I see limits of 75.00–133.33% for CV 35%. That’s not correct for ABEL, where the limits are 77.23–129.48% because \small{\eqalign{ s_\textrm{wR}&=\sqrt{\log_{e}(CV_\textrm{wR}^2+1)}\\ \left\{L,U\right\}&=100\exp(\mp 0.760\,\cdot s_\textrm{wR}) }} For the conditions of the Gulf Cooperation Council1 (namely widened limits if $$\small{CV_\textrm{wR}>30\%}$$) you would need …

sampleN.scABEL(CV = 0.35, design = "2x2x3", regulator = "GCC", details = FALSE) +++++++++++ scaled (widened) ABEL +++++++++++             Sample size estimation    (simulation based on ANOVA evaluation) --------------------------------------------- Study design: 2x2x3 (3 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.35; CVw(R) = 0.35 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 42   0.8139

… and not only 34 – which would be correct only if the fixed limits are applied independent from the CV. Such an approach is currently only recommended for HVD(P)s by the League of Arab States2 and in South Africa.3

sampleN.TOST(CV = 0.35, theta0 = 0.9, theta1 = 0.75, design = "2x2x3") +++++++++++ Equivalence test - TOST +++++++++++             Sample size estimation ----------------------------------------------- Study design: 2x2x3 (3 period full replicate) log-transformed data (multiplicative model) alpha = 0.05, target power = 0.8 BE margins = 0.75 ... 1.333333 True ratio = 0.9,  CV = 0.35 Sample size (total)  n     power 34   0.811011

❝ On the other part, if the assumed PE is 0.9126-1.096, subject size of 40 could still be good considering no dropouts (Using Boss button).

Nope (see above). Let’s be silent about the , please.

1. Executive Board of the Health Ministers’ Council for GCC States. The GCC Guidelines for Bio­equi­va­lence. May 2021. Online.
2. League of Arab States, Higher Technical Committee for Arab Pharmaceutical Industry. Harmonised Arab Guide­line on Bioequivalence of Generic Pharmaceutical Products. Cairo. March 2014. Online.
3. Medicines Control Council. Registration of Medicines: Biostudies. Pretoria. June 2015. Online.

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:

Admin contact
22,912 posts in 4,806 threads, 1,635 registered users;
32 visitors (0 registered, 32 guests [including 6 identified bots]).
Forum time: 18:00 CET (Europe/Vienna)

[…] an inappropriate study design is incapable of answering
a research question, no matter how careful the subsequent
methodology, conduct, analysis, and interpretation:
Flawless execution of a flawed design achieves nothing worthwhile.    J. Rick Turner

The Bioequivalence and Bioavailability Forum is hosted by
Ing. Helmut Schütz