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

posted by Helmut Homepage – Vienna, Austria, 2024-07-30 13:23 (46 d 08:42 ago) – Posting: # 24106
Views: 2,195

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,224 posts in 4,878 threads, 1,652 registered users;
40 visitors (0 registered, 40 guests [including 10 identified bots]).
Forum time: 22:06 CEST (Europe/Vienna)

We absolutely must leave room for doubt
or there is no progress and no learning.
There is no learning without having to pose a question.
And a question requires doubt.
People search for certainty.
But there is no certainty.    Richard Feynman

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