TSD? [Power / Sample Size]

posted by Helmut Homepage – Vienna, Austria, 2024-01-01 14:50 (458 d 16:27 ago) – Posting: # 23816
Views: 2,586

Hi NK and all,

let’s try a fully adaptive two-stage design. As usual an [image]-script at the end.

I used the results of your pilot study and – given the ‘bad’ T/R-ratio started with 24 subjects. For the sample size re-estimation I used the same T/R-ratio and targeted 80% power. I had two futility criteria: The PE outside the acceptance range and a maximum total sample size of 60. In the hypothetical second stage I assumed the same CV like in the first.

Maurer(n1 = 24, CV1 = 0.0886, GMR1 = 0.84)
TSD with 2x2 crossover
Inverse Normal approach
 - Maximum combination test with weights for stage 1 = 0.5 0.25
 - Significance levels (s1/s2) = 0.02635 0.02635
 - Critical values (s1/s2) = 1.93741 1.93741
 - BE acceptance range = 0.8 ... 1.25
 - Observed point estimate from stage 1 is used for SSR
 - With conditional error rates and conditional estimated target power

Interim analysis after first stage
- Derived key statistics:
  z1 = 1.81793, z2 = 7.32955
  Repeated CI = (0.79722, 0.88508)
  Median unbiased estimate = NA
- No futility criterion met
- Test for BE not positive (not considering any futility rule)
- Calculated n2 = 12
- Decision: Continue to stage 2 with 12 subjects

Results of the final analysis with adjusted alpha = 0.02635. CV
identical in both stages and various GMRs in the second stage.
 GMR1 n1  GMR2 n2     PE  lower  upper  pass
 0.84 24 0.820 12 0.8298 0.7965 0.8686 FALSE
 0.84 24 0.825 12 0.8319 0.7986 0.8706 FALSE
 0.84 24 0.830 12 0.8340 0.8006 0.8727  TRUE
 0.84 24 0.835 12 0.8360 0.8027 0.8748  TRUE
 0.84 24 0.840 12 0.8381 0.8046 0.8769  TRUE
 0.84 24 0.845 12 0.8406 0.8066 0.8791  TRUE
 0.84 24 0.850 12 0.8433 0.8085 0.8812  TRUE
 0.84 24 0.855 12 0.8460 0.8104 0.8834  TRUE
 0.84 24 0.860 12 0.8487 0.8122 0.8856  TRUE

Even with a T/R-ratio of 0.83 in the second stage (which is worse than the one of the first) you will pass due to the large sample size. Well, it’s a close shave.

Let’s be optimistic and hope for a T/R-ratio of 0.85:

Maurer(n1 = 24, CV1 = 0.0886, GMR1 = 0.85)
TSD with 2x2 crossover
Inverse Normal approach
 - Maximum combination test with weights for stage 1 = 0.5 0.25
 - Significance levels (s1/s2) = 0.02635 0.02635
 - Critical values (s1/s2) = 1.93741 1.93741
 - BE acceptance range = 0.8 ... 1.25
 - Observed point estimate from stage 1 is used for SSR
 - With conditional error rates and conditional estimated target power

Interim analysis after first stage
- Derived key statistics:
  z1 = 2.21598, z2 = 7.24735
  Repeated CI = (0.80671, 0.89562)
  Median unbiased estimate = 0.8500
- No futility criterion met
- Test for BE positive (not considering any futility rule)
- Decision: Stop due to BE

Mission accomplished.


Maurer <- function(n1, CV1, GMR1, target = 0.8) {
  require(Power2Stage)
  st1    <- interim.tsd.in(weight = c(0.5, 0.25), n1 = n1, CV1 = CV1, GMR1 = GMR1,
                           GMR = GMR1, targetpower = target, usePE = TRUE,
                           fCrit = c("PE", "Nmax"), fCNmax = 60)
  if (st1[["stop_BE"]]) {
    print(st1)
  } else {
    GMR2s  <- seq(0.82, 0.86, 0.005) # GMRs observed in stage 2
    fin    <- data.frame(GMR1 = GMR1, n1 = n1, GMR2 = GMR2s, n2 = st1[["n2"]],
                         PE = NA_real_, lower = NA_real_, upper = NA_real_,
                         pass = FALSE)
    for (j in seq_along(GMR2s)) {
      tmp         <- final.tsd.in(weight = c(0.5, 0.25),
                                  GMR1 = GMR1, CV1 = CV1, n1 = n1,
                                  GMR2 = GMR2s[j], CV2 = CV1, n2 = st1[["n2"]])
      fin[j, 5]   <- tmp[["MEUE"]]
      fin[j, 6:7] <- tmp[["RCI"]]
      fin[j, 8]   <- tmp[["stop_BE"]]
    }
    txt   <- paste0("\nResults of the final analysis with adjusted alpha = ",
                    signif(st1[["alpha"]][[1]], 4), ". CV\nidentical in both ",
                    "stages and various GMRs in the second stage.\n")
    print(st1); cat(txt); print(fin, digits = 4, row.names = FALSE)
  }
}


Dif-tor heh smusma 🖖🏼 Довге життя Україна! [image]
Helmut Schütz
[image]

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

Complete thread:

UA Flag
Activity
 Admin contact
23,413 posts in 4,924 threads, 1,671 registered users;
57 visitors (0 registered, 57 guests [including 4 identified bots]).
Forum time: 08:17 CEST (Europe/Vienna)

Nothing shows a lack of mathematical education more
than an overly precise calculation.    Carl Friedrich Gauß

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