CVs (borderline OT) [RSABE / ABEL]

Dear Dan,

❝ […] the question is whether a replication in only half of ntotal is sufficient in order to scale or ???

Adding to this post in the spirit of this thread: We could calculate the width of the confidence interval of the CV taking into account the sample size to achieve the desired power. Try this one (with the default T/R 0.9 and target power 0.8)…

library(PowerTOST) CV       <- c(seq(0.3, 0.5, 0.05), seq(0.6, 0.8, 0.1), 1) res      <- matrix(nrow=length(CV), ncol=10, byrow=T,               dimnames=list(NULL, c("CV%",                 "2×3×3: n |", "df |", "width",                 "2×2×3: n |", "df |", "width",                 "2×2×4: n |", "df |", "width"))) res[, 1] <- 100*CV side     <- "2-sided" for(j in 1:length(CV)) {   res[j, 2] <- sampleN.scABEL(CV=CV[j], design="2x3x3", details=F, print=F)[[8]]   res[j, 3] <- 2*res[j, 2]-3   res[j, 4] <- diff(range(CVCL(CV=CV[j], df=res[j, 3], side=side)))   res[j, 5] <- sampleN.scABEL(CV=CV[j], design="2x2x3", details=F, print=F)[[8]]   res[j, 6] <- 2*res[j, 5]-3   res[j, 7] <- diff(range(CVCL(CV=CV[j], df=res[j, 6], side=side)))   res[j, 8] <- sampleN.scABEL(CV=CV[j], design="2x2x4", details=F, print=F)[[8]]   res[j, 9] <- 3*res[j, 8]-4   res[j,10] <- diff(range(CVCL(CV=CV[j], df=res[j, 9], side=side))) } print(as.data.frame(round(res, 4)), row.names=F)

… which gives

  CV%  2×3×3: n | df | width  2×2×3: n | df | width  2×2×4: n | df | width   30        27   51  0.1267        26   49  0.1294        18   50  0.1280   35        30   57  0.1415        28   53  0.1471        20   56  0.1428   40        27   51  0.1749        30   57  0.1646        20   56  0.1662   45        30   57  0.1889        30   57  0.1889        20   56  0.1908   50        30   57  0.2144        32   61  0.2066        22   62  0.2048   60        36   69  0.2426        36   69  0.2426        24   68  0.2446   70        45   87  0.2619        46   89  0.2587        30   86  0.2635   80        57  111  0.2757        56  109  0.2783        38  110  0.2770  100        78  153  0.3197        76  149  0.3242        52  152  0.3208

Since the partial replicate (2×3×3) and the 3-period full replicate (2×2×3) have the same degrees of freedom (2n–3), the winner (i.e., narrower width of the CI) is always the one with the larger sample size. The “best” designs (highest dfs ⇒ narrowest CI) formated in green (including the 4-period full replicate, where df = 3n–4).
But as Detlew correctly pointed out, the “precision” of the CV is not a requirement of the GL and all designs perform pretty similar.

BTW, comparing variances – additionally to means – would require much larger sample sizes. This was one of the reasons why IBE was abandoned and the concept paper’s discussion point (see the end of this post) likely was not followed any further.
The comparison of standard errors entered through the back-door in FDA’s RSABE for NTIDs. Not only the acceptance range is scaled – which would mean 12 subjects for a CV of 7% (AR ~0.9–1.11), T/R 0.975, power 0.8…

library(PowerTOST) CV <- 0.07 L  <- exp(-log(1/0.9)/0.1*sqrt(log(0.1^2+1))) U  <- exp(+log(1/0.9)/0.1*sqrt(log(0.1^2+1))) sampleN.TOST(CV=CV, theta0=0.975, theta1=L, theta2=U, details=F)

… but the ratio of σWT/σWR must not exceed 2.5. Try

library(PowerTOST) CV <- 0.07 sep2s <- function(CV, ratio=1) { # split CV to s-ratio   sp  <- CV2mse(CV) # pooled s²   # (1) (s²T + s²R)/2 = s²   # (2) sT/sR = ratio   # solve (1+2) for sT, sR   swt <- sqrt(2)*sqrt(sp)*ratio/sqrt(ratio^2+1)   swr <- sqrt(2)*sqrt(sp)/sqrt(ratio^2+1)   r   <- se2CV(c(swt, swr))   return(r) } sampleN.NTIDFDA(theta0=0.975, CV=sep2s(CV=CV, ratio=1.0)) sampleN.NTIDFDA(theta0=0.975, CV=sep2s(CV=CV, ratio=2.0)) sampleN.NTIDFDA(theta0=0.975, CV=sep2s(CV=CV, ratio=0.5))

Due to the additional requirement and different implied limits (based on CVWR) the sample size almost doubles to 22 – even if CVs are equal (σWT = σWR = 0.0699). If the ratio with 2 is close to the limit (σWT = 0.0884, σWR = 0.0442), we would need 142! Only if the test is much better (reversed ratio), the penalty almost vanishes (14 subjects).

  swt    swr  swt/swr  CVwt   CVwr  CVwt/CVwr  impl. limits   n  power 0.0699 0.0699   1.0   0.0700 0.0700   1.000   0.9290…1.0764  22 0.8299 0.0884 0.0442   2.0   0.0886 0.0442   2.003   0.9545…1.0477 142 0.8058 0.0442 0.0884   0.5   0.0442 0.0886   0.499   0.9110…1.0977  14 0.8478

Of course you could as well assume that only the CVWT changes:

  swt    swr  swt/swr  CVwt   CVwr  CVwt/CVwr  impl. limits   n  power 0.1398 0.0699   2.0   0.1405 0.0700   2.007   0.9290…1.0764 128 0.8016 0.0350 0.0699   0.5   0.0350 0.0700   0.500   0.9290…1.0764  16 0.8284

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

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

Complete thread:

Admin contact
22,984 posts in 4,822 threads, 1,654 registered users;
59 visitors (0 registered, 59 guests [including 7 identified bots]).
Forum time: 04:29 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
Ing. Helmut Schütz