assumptions vs. realizations [Power / Sample Size]

posted by Helmut Homepage – Vienna, Austria, 2019-09-18 11:04  – Posting: # 20609
Views: 591

Hi Rocco,

» 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.


» 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 [image] realizations (observations in the study). I’m not a friend of post hoc (a posteriori, restrospective) power but let’s check that:

power.TOST(CV = 0.3, theta0 = 1, n = 24, design = "parallel")
# [1] 0.1597451

That’s much lower than the 0.9 you targeted and what you would have got with 78 subjects. Try this one:

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)
abline(h = c(0.05, 0.9), col = "lightgrey", lty = 2)
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  could  should lead already to rejection of the protocol by the IEC.
  1. 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 Boss Button in 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.
  2. 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).

  1. 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.
  2. Calculated by the non-central t-distribution. You can confirm that when you run power.TOST(..., method = "nct").

Helmut Schütz

The quality of responses received is directly proportional to the quality of the question asked. ☼
Science Quotes

Complete thread:

 Mix view
Bioequivalence and Bioavailability Forum |  Admin contact
19,897 posts in 4,215 threads, 1,366 registered users;
online 14 (0 registered, 14 guests [including 14 identified bots]).
Forum time (Europe/Vienna): 01:54 CEST

A mathematician is a blind man
in a dark room looking for a black cat
which isn’t there.    attributed to Charles Darwin

BEBAC Ing. Helmut Schütz