ABE or ABEL for Health Canada [Design Issues]

posted by Helmut Homepage – Vienna, Austria, 2024-07-14 14:17 (62 d 08:03 ago) – Posting: # 24073
Views: 1,259

Hi AB661,

❝ - Pilot BE Study with full replicate design. Calculate sample size for pivotal two way Cross over study design based on this study.

It’s always better to perform a pilot study than to trust in data from the literature. Even more, the sample size you mentioned is pretty small and hence, the estimates (T/R-ratio, CV) are unreliable. Note that any replicate design can be assessed for conventional (unscaled) ABE as well. I would state in the protocol that you aim at reference-scaling by ABEL for AUC. If CVwR ≤ 30%, the study will be assessed by ABE (90% CI within 80.0 – 125.0%). Cmax is not relevant in the sample size estimation because only the point estimate has to lie within 80.0 – 125.0%. An [image]-script for 2×2×2 and 4-period full replicate designs at the end.

Examples:

library(PowerTOST)            # see https://cran.r-project.org/package=PowerTOST
# data of a previous study; will also be used in planning pivotal ones
prev   <- data.frame(metric = c("Cmax", "AUC"), design = "2x2x2",
                     theta0 = c(1.11, 1.11), CV = c(0.43, 0.30), N = c(14, 14))
design <- c("2x2x2", "2x2x4") # 2×2×2 and 4-period full replicates (TRTR|RTRT, TRRT|RTTR, TTRR|RRTT)
                              # "2x2x3" for 3-period full replicates (TRT|RTR, TTR|RRT)
                              # "2x3x3" for partial replicate (TRR|RTR|RRT)
target <- 0.8                 # target (desired) power
# planned pivotal studies
piv1   <- cbind(metric = prev[, 1], design = design[1], method = "ABE",
                prev[, 3:4], L = 0.8, U = 1.25, n = NA_integer_, power = NA_real_)
piv2   <- cbind(metric = prev[, 1], design = design[2], piv1[, 3:9])
for (j in 1:nrow(prev)) {
  if (prev$metric[j] == "Cmax") {
    # alpha = 0.5 means that only the T/R-ratio has
    # to lie within 80–125% (without observing its CI)

    for (k in seq_along(design)) {
      tmp <- sampleN.TOST(alpha = 0.5, CV = prev$CV[j], theta0 = prev$theta0[j],
                          design = design[k], targetpower = target, print = FALSE)
      ifelse (k == 1, piv1[j, 8:9] <- tmp[7:8], piv2[j, 8:9] <- tmp[7:8])
    }
  } else {
    # ABE, 90% CI of the T/R-ratio within 80–125%
    for (k in seq_along(design)) {
      tmp <- sampleN.TOST(CV = prev$CV[j], theta0 = prev$theta0[j],
                          design = design[k], targetpower = target, print = FALSE)
      ifelse (k == 1, piv1[j, 8:9] <- tmp[7:8], piv2[j, 8:9] <- tmp[7:8])
    }
    if (prev$CV[j] > 0.3) {
      # ABEL, 90% CI of the T/R-ratio within expanded limits {L, U}; for Health
      # Canada intra-subject contrasts are used (instead of an ANOVA)

      tmp          <- sampleN.scABEL(CV = prev$CV[j], theta0 = prev$theta0[j],
                                     design = piv2$design[j], targetpower = target,
                                     regulator = "HC", print = FALSE, details = FALSE)
      piv2[j, 3]   <- "ABEL"
      piv2[j, 6:7] <- scABEL(CV = prev$CV[j], regulator = "HC") # L and U
      piv2[j, 8:9] <- tmp[8:9]
    }
  }
}
pivotals   <- rbind(piv1, piv2)
pivotals   <- pivotals[order(pivotals$metric, pivotals$design, method = "radix",
                             decreasing = c(TRUE, FALSE)), ] # cosmetics
pivotals$L <- sprintf("%.3f", pivotals$L)
pivotals$U <- sprintf("%.3f", pivotals$U)
pivotals$method[pivotals$metric =="Cmax"] <- "PE"
t1         <- "previous data\n"; t2 <- "planned pivotal studies\n"
cat(t1); print(prev, row.names = FALSE); cat(t2); print(pivotals, row.names = FALSE)


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
23,224 posts in 4,878 threads, 1,652 registered users;
32 visitors (1 registered, 31 guests [including 8 identified bots]).
Forum time: 22:20 CEST (Europe/Vienna)

We absolutely must leave room for doubt
or there is no progress and no learning.
There is no learning without having to pose a question.
And a question requires doubt.
People search for certainty.
But there is no certainty.    Richard Feynman

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