CV limbo [Regulatives / Guidelines]

posted by Helmut Homepage – Vienna, Austria, 2022-12-09 14:36 (289 d 10:55 ago) – Posting: # 23394
Views: 2,196

Hi j_kevin,

❝ New Q1: May I ask the formula to calculate SE in a 2*2*4 replicated design? I read your lection but I only find the formula to calculate in 2*2*2 design.

It’s the same one.

❝ New Q3: (1) When we talk about CV, do we usually mean CVwr(within-subject variability of the reference treatment)? Because we need to use whether CVwr > 30% (Swr>0.294) or not to determine which bioequivalence method should use.

When we talk about the CV in a crossover (simple 2×2×2, Higher-Order, or replicate) design, generally the intra-subject CV (CVw) is meant. In parallel designs it’s the total CV (pooled from CVw and CVb). Only in reference-scaling we are interested in the intra-subject CVs of treatments (CVwT and CVwR) as well. Of course, both are only accessible in full replicate designs. In the bloody partial replicate design we get only the latter. The former is nice to know (esp. in pilot studies when we want to estimate the sample size for a pivotal study; see there for an example).

❝ (2) If the answer of (1) is yes, then why we need to calculate pooled CV from 90% CI if we only care about CVwr? Or if pooled CV is important, when will we need to use pooled CV to make any decision?

The implemented methods of reference-scaling (RSABE for the FDA and China, ABEL in all other jurisdictions) are frameworks, where the decision whether RSABE/ABEL or ABE has to be applied hinges on the variability of the reference (see here and there).
If RSABE is applicable (\(\small{s_{\text{wR}}^2\ge0.294}\)), we are not interested in the confidence interval; we assess only whether the upper bound of the linearized criterion is ≤0 and the PE lies within 80.00 – 125.00%. Only in ABE (\(\small{s_{\text{wR}}^2<0.294}\)) we assess the 90% CI.
Contrary to that, in ABEL we assess always the 90% CI (if \(\small{CV_{\text{wR}}>30\%}\) within the expanded limits or within 80.00 – 125.00%, otherwise).

❝ (3) What's the relationship among CV(Sw), CVwr(Swr), CVwt(Swt)? For 2*2*2 design, is that S^2w = (S^2wr + S^2wt)/2, and CV=100*sqrt(exp(S^2w)-1)?

If the study is balanced, correct. Otherwise we would have to weigh the variances by the degrees of freedom. See also this post.

❝ Will this formula change in 2*2*4 design? If it will change, could you please write the formula in 2*2*4 design?

First of all, you don’t need CVw in replicate designs indended for reference-scaling. A clumsy attempt for the EMA’s ‘Data set I’ (imbalanced and incomplete):

# Calculate ABE of the EMA’s reference data set 1
# and assign the relevant results to a data frame

x       <- method.A(print = FALSE, details = TRUE,
                    data = rds01)[, c(1, 3:6, 11:14, 19:20)]
# Calculate an ANOVA (all effects fixed)
y       <- anova(lm(log(PK) ~ sequence +
                              subject %in% sequence +
                              period +
                              treatment, data = rds01))["Residuals", 1:3]
# CVw from ANOVA
CVw1    <- mse2CV(y["Residuals", "Mean Sq"])
# Extract the number of subjects / sequence
nseq    <- as.integer(strsplit(x[["Sub/seq"]], "|", fixed = TRUE)[[1]])
# Extract the number of subjects with repeated administrations / treatment
ntrt    <- setNames(x[3:4], c("T", "R"))
df      <- setNames(ntrt - 2, c("T", "R"))
# Calculate variances weighted by degrees of freedom
s2w.df  <- setNames(c(x[["swT"]]^2 * df[["T"]], x[["swR"]]^2 * df[["R"]]),
                    c("s2wT.df", "s2wR.df"))
# Pool variances
s2w     <- sum(s2w.df) / sum(df) # That’s wrong - what is correct?
# CVw from pooled variances
CVw2    <- mse2CV(s2w)
# CVw from 90% CI
CVw3    <- CI2CV(lower = x[["CL.lo(%)"]],
                 upper = x[["CL.hi(%)"]],
                 design = "2x2x4", n = nseq, alpha = 0.05)
print(x, digits = 5, row.names = FALSE)
cat(paste0("Design: ", x[["Design"]],
    ", subjects / sequence: ", x[["Sub/seq"]], "\n"),
    sprintf("CVwR from Method A         = %.2f%%", x[["CVwR(%)"]]), "\n",
    sprintf("CVwT from Method A         = %.2f%%", x[["CVwT(%)"]]), "\n",
    sprintf("CVw  from ANOVA MSE        = %.2f%%", 100 * CVw1), "\n",
    sprintf("CVw  from pooled variances = %.2f%%", 100 * CVw2), "\n",
    sprintf("CVw  from CI               = %.2f%%", 100 * CVw3), "\n")

    Design  n nTT nRR Sub/seq CVwT(%) CVwR(%)     swT     swR CL.lo(%) CL.hi(%)
 TRTR|RTRT 77  71  73   39|38  35.157  46.964 0.34138 0.44645   107.11   124.89

Design: TRTR|RTRT, subjects / sequence: 39|38
 CVwR from Method A         = 46.96%
 CVwT from Method A         = 35.16%
 CVw  from ANOVA MSE        = 41.65%
 CVw  from pooled variances = 41.45%
 CVw  from CI               = 42.58%

As usual, I can be wrong. Such data are tricky. Definitely correct is only CVw from the ANOVA’s MSE.

With rds25 of package replicateBE, which is both balanced and complete:

    Design  n nTT nRR Sub/seq CVwT(%) CVwR(%)     swT     swR CL.lo(%) CL.hi(%)
 TRTR|RTRT 70  70  70   35|35  46.539  82.805 0.44277 0.72261   77.928   98.102

Design: TRTR|RTRT, subjects / sequence: 35|35
 CVwR from Method A         = 82.81%
 CVwT from Method A         = 46.54%
 CVw  from ANOVA MSE        = 63.61%
 CVw  from pooled variances = 65.73%
 CVw  from CI               = 63.61%

Now the CVw from the ANOVA’s MSE and the one from the CI by the function CI2CV() agree. Hence, my code for pooling variances is wrong.

To complicate things: CVwT and CVwR could be directly estimated from the FDA’s mixed-effects model (as you did in your OP). With the EMA’s ‘Data set I’ we get CVwR = 47.328% and CVwT = 35.293%. However, this is not what the FDA wants. Instead, it has to be estimat­ed by an ANOVA of the reference treatment’s data with subject and sequence as factors. Then we get CVwR = 47.627%. Different, right? The REML PE of the mixed-effects model is 115.658% (90% CI: 107.104 – 124.894%). However, if we apply the FDA’s method acc. to the guidances for RSABE, we get a PE of 115.461% (90% CI: 106.386 – 125.311%). Different, again…
As Mittyri once wrote: “Welcome to the hell of mixed-effects modeling.”

BTW, you are not the first asking for CVw in replicate designs. It’s on our todo-list for the next release of the package replicateBE.

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
22,759 posts in 4,775 threads, 1,627 registered users;
17 visitors (0 registered, 17 guests [including 7 identified bots]).
Forum time: 02:31 CEST (Europe/Vienna)

In God we trust;
all others must bring data.    W. Edwards Deming

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