ABE or ABEL for Health Canada [Design Issues]
❝ - Pilot BE Study with full replicate design. Calculate sample size for pivotal two way Cross over study design based on this study.
Examples:
- Say, the CV of AUC is 30% and thus, you must not scale.
previous data
metric design theta0 CV N
Cmax 2x2x2 1.11 0.43 14
AUC 2x2x2 1.11 0.30 14
planned pivotal studies
metric design method theta0 CV L U n power
Cmax 2x2x2 PE 1.11 0.43 0.800 1.250 20 0.8131388
Cmax 2x2x4 PE 1.11 0.43 0.800 1.250 10 0.8131388
AUC 2x2x2 ABE 1.11 0.30 0.800 1.250 78 0.8049580
AUC 2x2x4 ABE 1.11 0.30 0.800 1.250 40 0.8157494
- If it is 33%, ABEL is acceptable – of course only if the study is performed in a replicate design.
previous data
metric design theta0 CV N
Cmax 2x2x2 1.11 0.43 14
AUC 2x2x2 1.11 0.33 14
planned pivotal studies
metric design method theta0 CV L U n power
Cmax 2x2x2 PE 1.11 0.43 0.800 1.250 20 0.8131388
Cmax 2x2x4 PE 1.11 0.43 0.800 1.250 10 0.8131388
AUC 2x2x2 ABE 1.11 0.33 0.800 1.250 92 0.8001078
AUC 2x2x4 ABEL 1.11 0.33 0.783 1.277 36 0.8096300
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 🖖🏼 Довге життя Україна!
Helmut Schütz
The quality of responses received is directly proportional to the quality of the question asked. 🚮
Science Quotes
Complete thread:
- Oxcarbazepine Tablet Study design AB661 2024-07-13 09:02 [Design Issues]
- ABE or ABEL for Health CanadaHelmut 2024-07-14 12:17
- Oxcarbazepine Tablet Study design jag009 2024-07-23 19:50
- Health Canada ABEL Helmut 2024-07-24 09:06
- Oxcarbazepine Tablet Study design AB661 2024-08-24 11:00
- Oxcarbazepine Tablet Study design Helmut 2024-08-24 12:19