Two 2x2 and one 6x3 crossover design [Design Issues]

posted by Helmut Homepage – Vienna, Austria, 2019-09-24 10:57  – Posting: # 20644
Views: 354

Hi Bing,

» Dear Helmut,
            Not interested in opinions of other members of the forum?

» Would you evaluate the advantages of two independent 2x2 trials (T vs. R1 and T vs. R2) over the 6x3 crossover design? Actually I have completed the two 2x2 trials. However, someone has challenged me for not conducting it as in 6x3 crossover.

What speaks against a 6×3 trial:
  1. In the past some (!) agencies didn’t like 6×3 (and 3×3) trials essentially saying “We are not interested in the other reference product”. However, at least for the major agencies (FDA, EMA) these day are gone.
  2. Sample size is a multiple of 6 instead of 2.
  3. Larger blood volume and higher chance of dropouts.
  4. The worst case scenario. T/R1 passes and T/R2 fails. Although you present only the passing part to agency 1, both the analytical and statistical report will still contain the entire data. Doesn’t look good.
#2: Higher sample size (though outweighed by increased power):

CV     <- seq(0.15, 0.4, 0.05)
theta0 <- 0.95
target <- 0.80
res    <- data.frame(CV = CV, n.2x2 = NA, power.2x2 = NA,
                     n.6x3 = NA, power.6x3 = NA)
for (j in 1:nrow(res)) {
  x <- sampleN.TOST(CV = CV[j], theta0 = theta0,
                    targetpower = target, print = FALSE,
                    details = FALSE)
  res[j, 2:3] <- x[1, 7:8]
  # round up to the next multiple of 6
  res[j, 4]   <- res[j, 2] + (6 - res[j, 2] %% 6)
  res[j, 5]   <- power.TOST(CV = CV[j], theta0 = theta0,
                            n = res[j, 4])
}
print(signif(res, 4), row.names = FALSE)

  CV n.2x2 power.2x2 n.6x3 power.6x3
0.15    12    0.8305    18    0.9514
0.20    20    0.8347    24    0.8960
0.25    28    0.8074    30    0.8343
0.30    40    0.8158    42    0.8342
0.35    52    0.8075    54    0.8220
0.40    66    0.8053    72    0.8379


#4 can happen, of course.

library(PowerTOST)
CV     <- seq(0.15, 0.4, 0.05)
theta0 <- 0.95
tests  <- 1
target <- 0.80 # overall passing test(s)
targetpower <- target^(1/tests)
res <- data.frame(CV = CV, n = NA, risk.1 = NA, risk.2 = NA,
                  above = "no", stringsAsFactors = FALSE)
for (j in 1:nrow(res)) {
  n.2x2 <- sampleN.TOST(CV = CV[j], theta0 = theta0,
                        targetpower = targetpower,
                        print = FALSE, details = FALSE)[["Sample size"]]
  n.6x3 <- n.2x2 + (6 - n.2x2 %% 6) # round up to the next multiple of 6
  res[j, 2] <- n.6x3
  res[j, 3] <- 1 - power.TOST(CV = CV[j], theta0 = theta0, n = n.6x3)
  res[j, 4] <- 1 - (1 - res[j, 3])^2
}
res$above[which(res$risk.2 > (1 - target))] <- "yes"
names(res)[5] <- ">beta"
res[, 3:4] <- signif(res[, 3:4], 3)
cat("Producer\u2019s \u03B2 = 1 \u2013 power\n");print(res, row.names = FALSE)

Producer’s β = 1 – power
  CV  n risk.1 risk.2 >beta
0.15 18 0.0486 0.0949    no
0.20 24 0.1040 0.1970    no
0.25 30 0.1660 0.3040   yes
0.30 42 0.1660 0.3040   yes
0.35 54 0.1780 0.3240   yes
0.40 72 0.1620 0.2980   yes


If you want that both pass, you have to increase the sample size accordingly.

tests  <- 2
...

Producer’s β = 1 – power
  CV  n risk.1 risk.2 >beta
0.15 18 0.0486 0.0949    no
0.20 30 0.0514 0.1000    no
0.25 42 0.0673 0.1300    no
0.30 54 0.0882 0.1690    no
0.35 72 0.0879 0.1680    no
0.40 90 0.0937 0.1790    no


What speaks against two 2×2 trials? Costs.

Cheers,
Helmut Schütz
[image]

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

Complete thread:

Activity
 Mix view
Bioequivalence and Bioavailability Forum |  Admin contact
19,897 posts in 4,215 threads, 1,366 registered users;
online 6 (0 registered, 6 guests [including 4 identified bots]).
Forum time (Europe/Vienna): 02:49 CEST

A mathematician is a blind man
in a dark room looking for a black cat
which isn’t there.    attributed to Charles Darwin

The BIOEQUIVALENCE / BIOAVAILABILITY FORUM is hosted by
BEBAC Ing. Helmut Schütz
HTML5