TIE = chance of passing at the border(s) [RSABE / ABEL]
❝ Sorry for my bad english!
No worries, mine is hardly better.
❝ Yes, we generate hypothesis, but we loss any link of TIE with reality. We form hypothesis from variance estimate, but it is only estimate we don't know real variance.
Well, the expansion according to the guideline(s) uses the estimate as well. Try this one:
library(PowerTOST)
theta0 <- seq(0.75, 1, 0.01)
theta0 <- sort(unique(c(theta0, 1/theta0)))
CV <- 0.30
design <- "2x2x4"
n <- sampleN.scABEL(CV = CV, design = design, theta0 = 0.90,
print = FALSE, details = FALSE)[["Sample size"]]
powerRSABE.ad <- powerRSABE <- powerABEL.ad <- powerABEL <- powerABE <- numeric()
ABEL.ad <- scABEL.ad(CV = CV, n = n, design = design, print = FALSE)$alpha.adj
RSABE.ad <- scABEL.ad(CV = CV, n = n, design = design, regulator = "FDA",
print = FALSE)$alpha.adj
for (j in seq_along(theta0)) {
if (theta0[j] == 0.80 | theta0[j] == 1.25) nsims <- 1e6 else nsims <- 1e5
powerABE[j] <- power.TOST(CV = CV, theta0 = theta0[j], n = n,
design = design)
powerABEL[j] <- power.scABEL(CV = CV, theta0 = theta0[j], n = n,
design = design, nsims = nsims)
powerABEL.ad[j] <- power.scABEL(alpha = ABEL.ad, CV = CV, theta0 = theta0[j],
n = n, design = design, nsims = nsims)
powerRSABE[j] <- power.RSABE(CV = CV, theta0 = theta0[j], n = n,
design = design, nsims = nsims)
powerRSABE.ad[j] <- power.RSABE(alpha = RSABE.ad, CV = CV, theta0 = theta0[j],
n = n, design = design, nsims = nsims)
}
plot(theta0, powerABE, type = "n", log = "x", lwd = 2, las = 1,
ylab = "chance of passing")
grid()
col <- c("#00AA00", "red", "blue", "magenta", "grey25")
abline(v = c(0.80, 1.25), col = "grey75")
abline(h = 0.05, lty = 2, col = "red")
lines(theta0, powerABE, lwd = 2, col = col[1])
lines(theta0, powerABEL, lwd = 2, col = col[2])
lines(theta0, powerABEL.adj, lwd = 2, col = col[3])
lines(theta0, powerRSABE, lwd = 2, col = col[4])
lines(theta0, powerRSABE.ad, lwd = 2, col = col[5])
legend("center", bg = "white", box.lty = 0, text.col = col,
legend = c("ABE", "ABEL (\u03B1 0.05)",
paste0("ABEL (\u03B1 ", signif(ABEL.adj, 3), ")"),
"RSABE (\u03B1 0.05)",
paste0("RSABE (\u03B1 ", signif(RSABE.adj, 3), ")")))
powerABE[which(theta0 == 0.80 | theta0 == 1.25)]
# [1] 0.05 0.05
powerABEL[which(theta0 == 0.80 | theta0 == 1.25)]
# [1] 0.081285 0.081626
powerABEL.ad[which(theta0 == 0.80 | theta0 == 1.25)]
# [1] 0.049751 0.050000
With a true CV of 30% we are not allowed to scale but the chance of passing with ABEL is higher than with ABE.
In ~50% of studies we will observe a CV of >30% (\(s_{wR} >0.294\)) and expand the limits although the drug is not highly variable in the population (\(\sigma_{wR} \leq0.294\)). The fact that more than 5% pass at each of the borders of the acceptance range is a nasty side effect.
❝ I can't imagine how to definite TIE in this case.
In analogy to ABE (where the TIE is the chance of passing at the borders of the acceptance range) all authors (with one exception1) of papers dealing with RSABE/ABEL employed the borders of expanded limits. IMHO, that’s a natural choice.
Davit et al.1 distinguished between the ‘implied limits’ and the limits of the ‘desired consumer risk model’. The FDA assessed the TIE at the border of the latter, which decreases the TIE. I believe it that the FDA desires something but in actual studies one has to follow the guidance ending up with the former…
res <- data.frame(CV = sort(c(seq(0.25, 0.32, 0.01), se2CV(0.25))),
impl.L = NA, impl.U = NA, impl.TIE = NA,
des.L = 0.80, des.U = 1.25, des.TIE = NA)
for (j in 1:nrow(res)) {
res[j, 2:3] <- scABEL(CV = res$CV[j], regulator = "FDA")
if (CV2se(res$CV[j]) > 0.25) { # Hey presto, hocus-pocus!
res[j, 5:6] <- exp(c(-1, +1)*(log(1.25)/0.25)*CV2se(res$CV[j]))
}
res[j, 4] <- power.RSABE(CV = res$CV[j], theta0 = res[j, 3],
design = "2x2x4", n = 32, nsims = 1e6)
res[j, 7] <- power.RSABE(CV = res$CV[j], theta0 = res[j, 5],
design = "2x2x4", n = 32, nsims = 1e6)
}
print(signif(res, 4), row.names = FALSE)
# CV impl.L impl.U impl.TIE des.L des.U des.TIE
# 0.250 0.8000 1.250 0.06068 0.8000 1.250 0.06068
# 0.254 0.8000 1.250 0.06396 0.8000 1.250 0.06396
# 0.260 0.8000 1.250 0.07008 0.7959 1.256 0.05731
# 0.270 0.8000 1.250 0.08352 0.7892 1.267 0.05098
# 0.280 0.8000 1.250 0.10130 0.7825 1.278 0.04810
# 0.290 0.8000 1.250 0.12290 0.7760 1.289 0.04685
# 0.300 0.8000 1.250 0.14710 0.7695 1.300 0.04611
# 0.310 0.7631 1.310 0.04515 0.7631 1.310 0.04515
# 0.320 0.7568 1.321 0.04373 0.7568 1.321 0.04373
❝ […] because it is very expencive to make BE with big samplesize or make theraputic equivalence and it is compromise between regulators and industry.
Yep. That was the original idea of SABE – avoiding extreme sample sizes whilst preserving power. Discussions started already at the first BioInternational conference.2 Heck, thirty years ago!
❝ And from my side HARKing is a bad statistics (yes: consumer’s perspective this is not fortunate), …
Agree.
❝ … but it is discussible ...
I’m not sure whether HARKing is the correct term. Given, the Null is constructed post hoc although at least according to a pre-specified procedure.
❝ … some persons recommending that HARKing not be taught by educators, encouraged by reviewers or editors, or practiced by authors
Agree.
- 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.
- McGilveray IJ. An Overview of Problems and Progress at Bio-Internationals ‘89 and ‘92. In: Bio-International 2. Bioavailability, Bioequivalence and Pharmacokinetic Studies. Blume HH, Midha KK, editors. Stuttgart: Medpharm Scientific Publishers; 1995. p. 109–15.
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:
- Inflation type one error Mikalai 2019-11-05 18:59 [RSABE / ABEL]
- Inflation type one error Helmut 2019-11-05 22:50
- Inflation type one error Mikalai 2019-11-06 15:13
- Inflation type one error Helmut 2019-11-08 14:52
- Inflation type one error: FDA Helmut 2019-11-10 11:33
- Inflation type one error Mikalai 2019-11-06 15:13
- Inflation type one error PharmCat 2019-11-05 23:06
- Inflation type one error Helmut 2019-11-08 15:21
- Inflation type one error PharmCat 2019-11-08 18:15
- TIE = chance of passing at the border(s)Helmut 2019-11-08 20:26
- Inflation type one error PharmCat 2019-11-08 18:15
- Inflation type one error Helmut 2019-11-08 15:21
- Inflation type one error Helmut 2019-11-05 22:50