assumptions vs. realizations [Power / Sample Size]
❝ sampleN.TOST(CV=.3, theta0=1.0, theta1= 0.8, theta2=1.25, logscale=TRUE, alpha=0.05, targetpower=0.9, design="parallel")
❝ I get sample size minimum be 78 total.
Correct.1
❝ But then if I run CI.BE(pe=1.0, CV=.3, design="parallel", n=24)
❝ I get CI = approx [0.81, 1.23].
Correct again.
❝ This confuse me. Shouldn’t I need to enter n at least 78 in order to get CI within [.8, 1.25]?
Nope.
CV
and theta0
in sampleN.TOST()
are assumptions (before the study), whereas CV
and pe
in CI.BE()
are realizations (observations in the study). I’m not a friend of post hoc (a posteriori, restrospective) power but let’s check that:library(PowerTOST)
power.TOST(CV = 0.3, theta0 = 1, n = 24, design = "parallel")
# [1] 0.1597451
n <- c(24, 78)
theta0 <- seq(0.80, 1.25, length.out = 201)
res <- data.frame(n = rep(n, each = length(theta0)),
theta0 = rep(theta0, length(n)),
power = NA)
j <- 0
for (k in seq_along(n)) {
for (l in seq_along(theta0)) {
j <- j + 1
res$power[j] <- power.TOST(CV = 0.3, n = res$n[j],
theta0 = res$theta0[j],
design = "parallel")
}
}
plot(theta0, rep(1, length(theta0)), type = "n",
ylim = c(0, 1), log = "x", yaxs = "i",
xlab = "theta0", ylab = "power", las = 1)
grid()
abline(h = c(0.05, 0.9), col = "lightgrey", lty = 2)
box()
col <- c("red", "blue")
for (k in seq_along(n)) {
lines(x = theta0, y = res$power[res$n == n[k]],
lwd = 3, col = col[k])
text(x = 1, y = max(res$power[res$n == n[k]]), pos = 3,
labels = signif(max(res$power[res$n == n[k]]), 4))
}
legend("topright", legend = rev(paste("n =", n)),
bg = "white", col = rev(col), lwd = 3)
❝ In other words, what are implications if study *meet* bioequivalence but is underpowered?
None. Sample size estimation is always based on assumptions. If they turn out to be wrong (higher CV, PE worse than theta0, more dropouts than anticipated), you might still meet BE by luck. As ElMaestro once wrote:
Being lucky is not a crime.
But any confirmatory study (like BE) requires an appropriate sample size estimation. There are two problems which
- If you assume a CV of 0.3 and a theta0 of 1 (I would not be that optimistic) and suggest in the protocol a sample size of 24. You can also press the FARTSSIE only to be told that
“90% power not attainable even if the means are equal. The highest attainable power is 12.7%.”2
Not a good idea.
in - Not in your case of a new drug but if the IEC knows CVs from other studies. Don’t try to cheat (“assume” a much lower one, i.e., 0.16 instead of 0.30 in order to end up with just 24 subjects).
- See the man-pages of the functions in
PowerTOST
. In many cases there is no need to specify the defaults (alpha=0.05
,theta1=0.8
,theta2=1.25
,logscale=TRUE
). Makes your live easier.
- Calculated by the non-central t-distribution. You can confirm that when you run
power.TOST(..., method = "nct")
.
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:
- Input for CV when small first-in-man has been run Rocco_M 2019-09-03 18:45 [Power / Sample Size]
- Geometric mean and CV Helmut 2019-09-05 14:05
- Geometric mean and CV Rocco_M 2019-09-05 23:49
- Geometric mean and CV Helmut 2019-09-06 00:15
- Geometric mean and CV Rocco_M 2019-09-06 17:49
- Geometric mean and CV Helmut 2019-09-06 18:15
- Geometric mean and CV ElMaestro 2019-09-06 19:03
- Geometric mean and CV Helmut 2019-09-07 09:57
- Geometric mean and CV Rocco_M 2019-09-09 13:31
- Assumptions… Helmut 2019-09-09 14:09
- Assumptions… Rocco_M 2019-09-09 16:35
- Assumptions… Helmut 2019-09-09 17:19
- Assumptions… Rocco_M 2019-09-13 21:28
- t-test & Welch-test Helmut 2019-09-14 00:16
- sampleN.TOST and CI.BE Rocco_M 2019-09-17 22:02
- assumptions vs. realizationsHelmut 2019-09-18 11:04
- sampleN.TOST and CI.BE Rocco_M 2019-09-17 22:02
- t-test & Welch-test Helmut 2019-09-14 00:16
- Assumptions… Rocco_M 2019-09-13 21:28
- Assumptions… Helmut 2019-09-09 17:19
- Assumptions… Rocco_M 2019-09-09 16:35
- Assumptions… Helmut 2019-09-09 14:09
- Geometric mean and CV Rocco_M 2019-09-09 13:31
- Geometric mean and CV Helmut 2019-09-07 09:57
- Geometric mean and CV ElMaestro 2019-09-06 19:03
- Geometric mean and CV Helmut 2019-09-06 18:15
- Geometric mean and CV Rocco_M 2019-09-06 17:49
- Geometric mean and CV Helmut 2019-09-06 00:15
- Geometric mean and CV Rocco_M 2019-09-05 23:49
- Geometric mean and CV Helmut 2019-09-05 14:05