Formulas for parallel and 2×2×2 designs [🇷 for BE/BA]

posted by Helmut Homepage – Vienna, Austria, 2024-02-13 21:55 (125 d 17:39 ago) – Posting: # 23864
Views: 1,515

Hi roman_max,

❝ One more question in terms of CVintra: what is the algebra for parallel design?

\(\small{CV_\text{intra}}\) is unknown. You mean \(\small{CV_\text{total}}\), right?

❝ In your lectures I could only found for crossover... I expect the same question from our regulatory agency if they cannot find "the formula" in study protocol. :confused:

I was never asked for by any agency since I derived the formulas in the late 80s… The algebra is simple. The CI depends on the point estimate, the t-value for given \(\alpha\) / degrees of freedom, and the variance. Only the last is unknown. Work backwards. However, to satisfy your curiosity:
PE&=\sqrt{CL_\text{lower}\times CL_\text{upper}}\\
}$$The only difference of the formula for the parallel design to the one for the 2×2×2 design is the factor \(f\) in the denominator of the \(s\) calculations. For the parallel design it is \(1\), whereas for the 2×2×2 design it is \(\small{{^1}/_{2}}\). Note that \(s_1\sim s_2\). The formulas above are algebraic transformations of those in my lectures and are implemented as such in the function CVfromCI() / CI2CV() of PowerTOST.
If you are interested in the source code, type CVfromCI in the console. In the function, the user can not only specify the Confidence Limits, but also one of them together with the Point Estimate. If \(\left|s_1-s_2\right|\,/\,\frac{s_1+s_2}{2}>0.1\) (i.e., \(s_1\) and \(s_2\) are more than 10% apart), a warning is issued prompting the user to check their input. The code is more complicated than the one below because it handles all implemented designs and contains input checking.

The example of my previous post in Base 🇷:

CI <- setNames(c(0.85, 1 / 0.85), c("lower", "upper"))
n  <- c(12, 12)
f  <- setNames(c(1, 0.5), c("parallel", "2x2x2"))
PE <- sqrt(CI[["lower"]] * CI[["upper"]])
s1 <- (log(PE) - log(CI[["lower"]])) / (qt(1 - 0.05, sum(n) - 2) * sqrt(f * sum(1 / n)))
s2 <- (log(CI[["upper"]]) - log(PE)) / (qt(1 - 0.05, sum(n) - 2) * sqrt(f * sum(1 / n)))
CV <- sqrt(exp(((s1 + s2) / 2)^2) - 1)
print(100 * CV, digits = 4)

parallel    2x2x2
   23.50    33.69

To see \(f\) of the implemented designs:

designs           <- PowerTOST::known.designs()[c(1, 13, 3:6, 8:9, 12, 7, 10:11),
                                                c(9, 2, 7)]
names(designs)[3] <- " f"
print(designs, row.names = FALSE, right = FALSE)

 name                        design    f 
 2 parallel groups           parallel 1/1
 paired means                paired   2/1
 2x2x2 crossover             2x2x2    1/2
 3x3 crossover               3x3      2/9
 3x6x3 crossover             3x6x3    1/18
 4x4 crossover               4x4      1/8
 2x2x4 replicate crossover   2x2x4    1/4
 2x4x4 replicate crossover   2x4x4    1/16
 Liu's 2x2x2 repeated x-over 2x2x2r   1/4
 2x2x3 replicate crossover   2x2x3    3/8
 partial replicate (2x3x3)   2x3x3    1/6
 Balaam's (2x4x2)            2x4x2    1/2

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

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

Complete thread:

UA Flag
 Admin contact
23,057 posts in 4,840 threads, 1,641 registered users;
97 visitors (0 registered, 97 guests [including 8 identified bots]).
Forum time: 16:35 CEST (Europe/Vienna)

You should treat as many patients as possible with the new drugs
while they still have the power to heal.    Armand Trousseau

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