ABE or ABEL for Health Canada [Design Issues]

posted by Helmut Homepage – Vienna, Austria, 2024-07-14 14:17 (239 d 11:52 ago) – Posting: # 24073
Views: 2,231

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,406 posts in 4,919 threads, 1,736 registered users;
41 visitors (0 registered, 41 guests [including 9 identified bots]).
Forum time: 01:09 CET (Europe/Vienna)

The object of statistics is information.
The objective of statistics is the understanding of information
contained in data.    Irwin and Marylees Miller

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