CVw in Phoenix RSABE-template and Power­TOST CI2CV() [Software]

posted by Helmut Homepage – Vienna, Austria, 2024-07-30 13:23 (325 d 10:10 ago) – Posting: # 24106
Views: 6,151

Hi BEQool,

❝ ❝ BTW, why do you need it?


❝ Because I want to get CVw from a full replicate (n=10) pilot study and the a) CVw obtained with your equation (1) does not match (not even close) b) CVw obtained from the 90% CI with CVfromCI (PowerTOST in R).

❝ CVw=SQRT(EXP((0.020549392+0.18248611)/2)-1)= 32.7%

CVfromCI(lower=.80633903,upper=1.2274948,design="2x2x4",n=10)

[1] 0.4048149 --> 40.5%


❝ Why is there such a difference here between the two CVw? The study is balanced with complete data. Can the reason be a relatively big difference between variability of test and reference?

I guess because the variances in ABE object of the RSABE-template are based on a mixed-effects model.

library(PowerTOST)
cat(sprintf("CVw = %.2f%%\n",
            100 * CI2CV(lower = 0.80633903, upper = 1.2274948,
                        design = "2x2x4", n = 10, robust = TRUE)))
CVw = 36.90%

Closer to the correct 32.69% but still far away. Dunno why. Detlew, Ben?

Typo in my original post corrected. THX!

I still don’t understand why you need \(\small{CV_\text{w}}\). Do you plan a study for ABE?

library(PowerTOST)
design <- c(rep("2x2x4", 3), "2x2x2")
method <- c("RSABE", "ABEL", rep("ABE", 2))
m.code <- c(1:2, rep(3, 2))
target <- 0.80
theta0 <- 0.95 # the PE in the pilot was 0.995 – extremely risky
s2wR   <- 0.020549392
s2wT   <- 0.18248611
CVwR   <- mse2CV(s2wR)
CVwT   <- mse2CV(s2wT)
CVw    <- mse2CV((s2wR + s2wT) / 2)
# ‘Carved in stone’ approach for the CVs
# If heteroscedastic, the first element of the CV-vector
# in RSABE and ABEL is T and the second R

x      <- data.frame(CVwR = CVwR, CVwT = CVwT, CVw = CVw,
                     method = method, design = design,
                     n = NA_integer_, power = NA_real_)
for (j in seq_along(m.code)) {
  switch(m.code[j],
    x[j, 6:7] <- sampleN.RSABE(CV = c(CVwT, CVwR), theta0 = theta0,
                               targetpower = target, design = design[j],
                               print = FALSE, details = FALSE)[8:9],
    x[j, 6:7] <- sampleN.scABEL(CV = c(CVwT, CVwR), theta0 = theta0,
                                targetpower = target, design = design[j],
                                print = FALSE, details = FALSE)[8:9],

    x[j, 6:7] <- sampleN.TOST(CV = CVw, theta0 = theta0,
                              targetpower = target, design = design[j],
                              print = FALSE)[7:8])
}
x[, c(1:3, 7)] <- signif(100 * x[, c(1:3, 7)], 4)
names(x)[c(1:3, 7)] <- c("CVwR(%)", "CVwT(%)", "CVw(%)", "power(%)")
print(x, row.names = FALSE)
 CVwR(%) CVwT(%) CVw(%) method design  n power(%)
   14.41   44.74  32.69  RSABE  2x2x4 24    81.30
   14.41   44.74  32.69   ABEL  2x2x4 24    82.76
   14.41   44.74  32.69    ABE  2x2x4 24    82.86
   14.41   44.74  32.69    ABE  2x2x2 46    80.87

Since \(\small{CV_\text{wR}\ll 30\%}\), reference-scaling is not applicable and you get for RSABE and ABEL the same sample sizes like for ABE.

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,424 posts in 4,927 threads, 1,674 registered users;
42 visitors (0 registered, 42 guests [including 7 identified bots]).
Forum time: 23:34 CEST (Europe/Vienna)

Complex, statistically improbable things are by their nature
more difficult to explain than
simple, statistically probable things.    Richard Dawkins

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