Problems with low variability [General Sta­tis­tics]

posted by Helmut Homepage – Vienna, Austria, 2020-10-09 17:04 (850 d 13:37 ago) – Posting: # 21986
Views: 1,637

Hi Siva Krishna,

❝ I would like to say Thank you sir for your valuable information. This may be helpful to my question.


Welcome. Would you mind answering my previous questions:

❝ ❝ I guess 100% was not contained in the 90% CI, right?

❝ ❝ For which power did you plan the study?


Sometimes statistically significant differences are common, namely if the CV is low (say, <10%) and you plan for 80% power. Then you may end up with a sample size far below the regulatory minimum of twelve. Add more subjects to compensate for potential dropouts and…
In my protocols I state that extremely high power is expected and the CI might well contain not 100%.


[image] script:

library(PowerTOST)
balance <- function(x, seqs) { # gives complete sequences
  x <- ceiling(x) + ceiling(x) %% seqs
  return(x)
}
CV       <- 0.10    # assumed (here 10%)
theta0   <- 0.925   # assumed T/R-ratio
target   <- 0.80    # target (desired) power (here at least 80%)
do.rate  <- 0.10    # anticipated dropout rate (here 10%)
design   <- "2x2x2" # can be any one given by known.designs()
seqs     <- as.integer(substr(design, 3, 3)) # sequences
n        <- sampleN.TOST(CV = CV, theta0 = theta0, targetpower = target,
                         design = design, details = FALSE,
                         print = FALSE)[["Sample size"]]
if (n < 12) n <- 12 # force to minimum acc. to GLs
dosed    <- balance(n / (1 - do.rate), seqs) # adjust for dropout-rate & balance
eligible <- dosed:n; dropouts <- rev(eligible - n)
res      <- data.frame(dosed = dosed, dropouts = dropouts, eligible = eligible,
                       power = NA, CL.lo = NA, CL.hi = NA,
                       p.left = NA, p.right = NA)
for (j in seq_along(eligible)) {
  res$power[j] <- suppressMessages(
                    signif(power.TOST(CV = CV, theta0 = theta0,
                                      design = design, n = eligible[j]), 4))
  res[j, 5:6]  <- round(100*CI.BE(pe = theta0, CV = CV,
                                  design = design, n = eligible[j]), 2)
  res[j, 7:8]  <- suppressMessages(
                    signif(pvalues.TOST(pe = theta0, CV = CV,
                                        design = design, n = eligible[j]), 4))
}
print(res, row.names = FALSE)

Gives (if the assumptions about the CV and T/R-ratio are realized in the study):

 dosed dropouts eligible  power CL.lo CL.hi   p.left   p.right
    14        0       14 0.9760 86.49 98.93 0.001154 1.913e-06
    14        1       13 0.9652 86.22 99.23 0.001752 4.846e-06
    14        2       12 0.9521 85.92 99.59 0.002569 1.166e-05


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
22,481 posts in 4,710 threads, 1,603 registered users;
28 visitors (0 registered, 28 guests [including 10 identified bots]).
Forum time: 05:41 CET (Europe/Vienna)

The difference between a surrogate and a true endpoint
is like the difference between a cheque and cash.
You can get the cheque earlier but then,
of course, it might bounce.    Stephen Senn

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