Question raised by the PMDA [Design Issues]
I received a question from a member of the forum (he couldn’t post for some technical issues).
Parallel design, CV 36%, T/R-ratio 0.95, target power 90%, parallel design, anticipated dropout rate 10%, 20% of subjects (in each group) of Japanese origin. Easy so far.
library(PowerTOST)
balance <- function(n, groups) {
# Round up to get balanced groups for potentially unbalanced case.
return(as.integer(groups * (n %/% groups + as.logical(n %% groups))))
}
adjust.dropouts <- function(n, do.rate, groups = 2) {
# To be dosed subjects which should result in n eligible subjects
# based on the anticipated droput-rate.
n <- as.integer(balance(n / (1 - do.rate), groups = groups))
return(n)
}
##############
# data below #
##############
design <- "parallel"
CV <- 0.36 # total (pooled) for parallel design, intra-subject for Xovers
target <- 0.90 # target (desired) power
theta0 <- 0.95 # assumed T/R-ratio
theta1 <- 0.80 # lower BE limit
theta2 <- 1.25 # upper BE limit
do.rate <- 0.10 # anticipated dropout-rate 10%
# estimate sample size & power
estim <- sampleN.TOST(CV = CV, theta0 = theta0, theta1 = theta1,
theta2 = theta2, targetpower = target,
design = design, details = FALSE, print = FALSE)
# calculate to be dosed subjects based on the anticipated dropout-rate
n.adj <- adjust.dropouts(estim[["Sample size"]], do.rate, 2)
# eligible subjects
n.elig <- n.adj:estim[["Sample size"]]
info <- paste0("\nDesign : ", design,
"\nAssumed CV : ", sprintf("%.2g%%", 100*CV),
"\nAssumed T/R ratio : ", sprintf("%.2g%%", 100*theta0),
"\nBE limits : ", sprintf("%.2f\u2013%.2f%%",
100*theta1, 100*theta2),
"\nTarget (desired) power : ", sprintf("%.2g%%", 100*target),
"\nAnticipated dropout-rate: ", sprintf("%.2g%%", 100*do.rate),
"\nEstimated sample size : ", estim[["Sample size"]],
" (", estim[["Sample size"]]/2, "/group)",
"\nAchieved power : ", sprintf("%.2f%%",
100*estim[["Achieved power"]]),
"\nAdjusted sample size : ", n.adj,
" (", n.adj/2, "/group)", "\n\n")
# explore possible outcome for increasing number of dropouts
results <- data.frame(dosed = n.adj, eligible = n.elig,
dropouts = n.adj - n.elig,
do.pct = sprintf("%.3f%%", 100*(n.adj - n.elig)/n.adj),
power.pct = NA, stringsAsFactors = FALSE)
for (j in 1:nrow(results)) {
results$power.pct[j] <- sprintf("%.2f%%", 100*(
suppressMessages(
power.TOST(CV = CV, theta0 = theta0,
theta1 = theta1, theta2 = theta2,
design = design,
n = results$eligible[j]))))
}
cat(info); print(results, row.names = FALSE)
Design : parallel
Assumed CV : 36%
Assumed T/R ratio : 95%
BE limits : 80.00–125.00%
Target (desired) power : 90%
Anticipated dropout-rate: 10%
Estimated sample size : 144 (72/group)
Achieved power : 90.11%
Adjusted sample size : 160 (80/group)
dosed eligible dropouts do.pct power.pct
160 160 0 0.000% 92.67%
160 159 1 0.625% 92.53%
160 158 2 1.250% 92.39%
160 157 3 1.875% 92.25%
160 156 4 2.500% 92.10%
160 155 5 3.125% 91.95%
160 154 6 3.750% 91.80%
160 153 7 4.375% 91.64%
160 152 8 5.000% 91.49%
160 151 9 5.625% 91.32%
160 150 10 6.250% 91.16%
160 149 11 6.875% 90.99%
160 148 12 7.500% 90.82%
160 147 13 8.125% 90.65%
160 146 14 8.750% 90.48%
160 145 15 9.375% 90.30%
160 144 16 10.000% 90.11%
As usual in parallel designs – if the drug is subjected to polymorphic metabolism – the study should be performed in fast/extensive metabolizers.
When the proposal was submitted to the PMDA, this question was raised:
What is probability of getting point estimate for the ratio of GeoMean in this Bioequivalence Limit for Japanese population?
At least interesting. There are other examples in the Japanese guideline where the PE within 80.00–125.00% is sufficient to demonstrate BE if the CI fails (similar dissolution, sample size ≥24 in a crossover), Hence, such a question is not unexpected.Problematic in the Japanese population is the (age-dependent) high percentage of achlorohydric subjects. IIRC, already at an age of 20 years it is about 10% and increases to more than 80% at 60+ years. Since in a parallel design the comparison of treatments is done between groups, one could only try to get the same age-distribution in both groups. Not so important for the other subjects but for the sub-group of Japanese subjects.
Is the PMDA asking for a prospective sub-group power estimation? If yes, my attempt:
sub.group <- unique(as.data.frame(cbind(dosed = results[, 1]*0.2,
eligible = floor(results[, 2]*0.2),
p = NA)))
# with alpha = 0.5 we assess the probability that the PE lies within the BE limits
for (j in 1:nrow(sub.group)) {
sub.group$p[j] <- suppressMessages(
power.TOST(alpha = 0.5, CV = CV, theta0 = theta0,
theta1 = theta1, theta2 = theta2,
design = design, n = sub.group$eligible[j]))
}
print(signif(sub.group, 4), row.names = FALSE)
dosed eligible p
32 32 0.9050
32 31 0.9003
32 30 0.8955
32 29 0.8902
32 28 0.8849
Does this make sense?
Based on the agency’s question, what do they require in such a study?
- 90% CI within 80.00–125.00% (all subjects) and
- additionally the PE of the Japanese sub-group within 80.00–125.00%?
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:
- Question raised by the PMDAHelmut 2021-02-26 15:46 [Design Issues]
- Question raised by the PMDA Ben 2021-03-19 15:47
- Question raised by the PMDA Helmut 2021-03-19 18:06
- Question raised by the PMDA Ben 2021-03-19 15:47