CVs (borderline OT) [RSABE / ABEL]

posted by Helmut Homepage – Vienna, Austria, 2015-06-26 15:51 (3449 d 10:27 ago) – Posting: # 14993
Views: 30,933

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 🖖🏼 Довге життя Україна! [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,332 posts in 4,899 threads, 1,660 registered users;
18 visitors (0 registered, 18 guests [including 5 identified bots]).
Forum time: 01:19 CET (Europe/Vienna)

I don’t write drafts.
I write from the beginning to the end,
and when it’s finished, it’s done.    Clifford Geertz

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