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

posted by Helmut Homepage – Vienna, Austria, 2021-03-16 16:00 (138 d 15:43 ago) – Posting: # 22273
Views: 700

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,596 posts in 4,516 threads, 1,532 registered users;
online 5 (0 registered, 5 guests [including 3 identified bots]).
Forum time: Monday 08:44 CEST (Europe/Vienna)

Imagine if every Thursday your shoes exploded
if you tied them the usual way.
This happens to us all the time with computers,
and nobody thinks of complaining.    Jef Raskin

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