AUC passes with 0.05 and Cmax with 0.0294 [Two-Stage / GS Designs]

posted by Helmut Homepage – Vienna, Austria, 2019-09-17 01:30 (1655 d 06:21 ago) – Posting: # 20603
Views: 8,360

Hi Elena,

❝ To be in compliance with method C of Potvin, we re-calculate CI for Cmax with α=0,0294. Let`s assume that BE criterion for Cmax is met after this step. […] Otherwise, finally we will have the following in a CSR: BE criterion was met for AUC using α=0,05 (90%CI) and BE criterion was met for Cmax using α=0,0294 (94,12% CI). Does it look OK?


Absolutely. The ideas behind the different alphas in Potvin C are:
  1. If interim power is ≥80%, essentially your assumptions about the CV were correct. Assess the study like a fixed sample design with α 0.05. You stop anyway (pass/fail).
  2. If interim power is <80%, your assumptions about the CV were not correct. Assess the study with the adjusted α 0.0294.
    1. If you pass, stop.
    2. If you fail, initiate the second stage.
Hence, in your example you are for Cmax in the branch 2.a. and for AUC in branch 1. All is good.

❝ Should we also re-calculate CI for AUC with α=0,0294?


You could but please only “at home”. That’s against the method and what you should have laid down in the protocol. See the end of this post. My study would have passed with the adjusted α as well.
But what if not? See this bizarre case study. If the sponsor would have known before that the agency will not accept Method C, they would have planned for Method B, initiated a second stage with 6 (six!) subjects and happily walked away. Stupid.

What will you do with your ”homework”?That’s why in my personal ranking Potvin C is just № 6.
I recommended it for years. Well, no more.
IMHO, the small gain in power claimed by the authors is not worth the troubles:

library(PowerTOST)
library(Power2Stage)
CV  <- seq(0.15, 0.4, 0.05)
res <- data.frame(CV = CV, fixed = NA, n1 = NA,
                  B = NA, C = NA, C.B = NA)
n1  <- n <- numeric()
for (j in seq_along(CV)) {
  res$fixed[j]  <- sampleN.TOST(CV = CV[j],
                                print = FALSE)[["Sample size"]]
  res$n1[j]     <- 0.8 * res$fixed[j] # my recommendation
  res$n1[j]     <- ceiling(res$n1[j] + ceiling(res$n1[j]) %% 2)
  if (res$n1[j] < 12) res$n1[j] <- 12
  res$B[j]      <- power.tsd(method = "B", CV = CV[j],
                             n1 = res$n1[j])[["pBE"]]
  res$C[j]      <- power.tsd(method = "C", CV = CV[j],
                             n1 = res$n1[j])[["pBE"]]
  res$C.B[j]    <- 100 * (res$C[j] - res$B[j]) / res$B[j]
}
res[, 4:6] <- signif(res[, 4:6], 4)
names(res)[4:6] <- c("Method B", "Method C", "C/B (%)")
cat("Power in the final analysis\n"); print(res, row.names = FALSE)

Power in the final analysis
   CV fixed n1 Method B Method C C/B (%)
 0.15    12 12   0.8830   0.8994  1.8580
 0.20    20 16   0.8521   0.8624  1.2120
 0.25    28 24   0.8424   0.8508  0.9924
 0.30    40 32   0.8343   0.8411  0.8163
 0.35    52 42   0.8315   0.8350  0.4245
 0.40    66 54   0.8287   0.8321  0.4067


Dif-tor heh smusma 🖖🏼 Довге життя Україна! [image]
Helmut Schütz
[image]

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

Complete thread:

UA Flag
Activity
 Admin contact
22,957 posts in 4,819 threads, 1,636 registered users;
92 visitors (0 registered, 92 guests [including 10 identified bots]).
Forum time: 06:51 CET (Europe/Vienna)

With four parameters I can fit an elephant,
and with five I can make him wiggle his trunk.    John von Neumann

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