All dosed subjects have to be analyzed [General Sta­tis­tics]

posted by Helmut Homepage – Vienna, Austria, 2021-03-16 16:00 (31 d 14:58 ago) – Posting: # 22273
Views: 374

Hi sedhosen,

» Is it also not acceptable to replace subjects even if the number of excluded subjects is more than the number of considered dropouts?

Acc. to the GL, yes.

» For example, if 7 subjects are withdrawn during the study after receiving the dose, and the number of considered dropouts are 5 subjects, is there any way we can replace 2 subjects that were withdrawn over the number of dropouts?

Two points:
  1. The impact of dropouts on power is overrated by many (you are not alone). An example with a dropout-rate of 15% and two less eligible subjects than anticipated:
    Does it really matter? Remember that the sample estimation is based on assumptions – it’s not an exact calculation.
       CV  n  power dosed eligible power.actual
     0.20 20 0.8347    24       18       0.7912
     0.25 28 0.8074    34       26       0.7761
     0.30 40 0.8158    48       38       0.7953
     0.35 52 0.8075    62       50       0.7917

    [image]-scrip at the end.
  2. If you would dose two subjects later, it could complicate the statistical model because periods differ. Of course, you could ignore that but I have seen nasty questions from regulators.


ibrary(PowerTOST)
up2even <- function(n, ns = 2) {
  return(as.integer(ns * (n %/% ns + as.logical(n %% ns))))
}
nadj <- function(n, do.rate, ns = 2) {
  return(as.integer(up2even(n / (1 - do.rate), ns)))
}
design  <- "2x2x2"
CV      <- seq(0.2, 0.35, 0.05)
theta0  <- 0.95 # T/R-ratio
target  <- 0.80 # desired power
do.rate <- 0.15 # 15%
if (design == "parallel") {
  ns <- 2L
} else {
  ns <- as.integer(substr(design, 3, 3))
}
df <- data.frame(CV = CV, n = NA, power = NA,
                 dosed = NA, eligible = NA, power.actual = NA)
for (j in 1:nrow(df)) {
  tmp <- sampleN.TOST(CV = CV[j], theta0 = theta0,
                      targetpower = target,
                      design = design, print = FALSE)
  df[j, 2:3] <- tmp[7:8]
  df[j, 4]   <- nadj(df[j, 2], do.rate, ns)
  df[j, 5]   <- df[j, 2] - 2
  df[j, 6]   <- power.TOST(CV = CV[j], theta0 = theta0,
                           design = design, n = df[j, 5])
}
print(signif(df, 4), row.names = FALSE)


Dif-tor heh smusma 🖖
Helmut Schütz
[image]

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

Complete thread:

Activity
 Admin contact
21,419 posts in 4,475 threads, 1,508 registered users;
online 10 (0 registered, 10 guests [including 3 identified bots]).
Forum time: Saturday 07:58 CEST (Europe/Vienna)

I never did anything worth doing by accident,
nor did any of my inventions come by accident;
they came by work.    Thomas Alva Edison

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