Helmut
★★★
avatar
Homepage
Vienna, Austria,
2006-05-26 18:02
(6516 d 15:21 ago)

Posting: # 139
Views: 8,340
 

 Narrower Acceptance Range [0.90/1.11] [Power / Sample Size]

Dear all,

since at least the Danish Authority requires a narrower acceptance range for some drugs in the following you may find a table giving sample sizes for the acceptance range of 0.90-1.11 (cave: the upper limit is 1/0.9=1.1111..., except for Canada, where the upper limit is set to 1.12).

Sample sizes were calculated for an expected deviation of -5% from the reference (80% and 90% power) according to approximations (which can easily implemented e.g. in a speadsheet for any combination of power and deviation) given in
[1] Hauschke D, Steinijans VW, Diletti E and M Burke
    Sample Size Determination for Bioequivalence Assessment Using a Multiplicative Model
    J Pharmacokin Biopharm 20/5, 557-561, 1992
and
[2] S-C Chow and H Wang
    On Sample Size Calculation in Bioequivalence Trials
    J Pharmacokin Pharmacodyn 28/2, 155-169, 2001
    Errata: J Pharmacokin Pharmacodyn 29/2, 101-102, 2002

Approximate sample sizes differ slightly from exact values given by
[3] Diletti E, Hauschke D and VW Steinijans
    Sample size determination: Extended tables for the multiplicative model
    and bioequivalence ranges of 0.9 to 1.11 and 0.7 to 1.43
    Int J Clin Pharm Ther Toxicol 30/Suppl.1, S59-62, 1992 and
[4] B Oloffson
    StudySize2.01
    CreoStat HB, 2006
       +-----------+-----------+-----------+-----------+
       |    [1]    |     [2]   |     [3]   |     [4]   |
+------+-----------+-----------+-----------+-----------+
|  CV% |  80%  90% |  80%  90% |  80%  90% |  80%  90% |
+------+-----------+-----------+-----------+-----------+
|  5.0 |  12    1612    16 |  14    18 |  14    18 |
|  6.0 |  18    24 |  18    22 |   .     . |  18    24 |
|  7.0 |  22    3022    30 |   .     . |  24    32 |
|  7.5 |  26    36 |  26    34 |  26    36 |  26    36 |
|  8.0 |  30    40 |  28    40 |   .     . |  30    40 |
|  9.0 |  36    50 |  36    50 |   .     . |  36    50 |
| 10.0 |  44    60 |  44    60 |  44    60 |  44    60 |
| 11.0 |  54    7452    72 |   .     . |  54    72 |
| 12.0 |  62    86 |  62    86 |   .     . |  62    86 |
| 12.5 |  68    94 |  68    94 |  68    94 |  68    94 |
| 13.0 |  74   102 |  74   100 |   .     . |  74   100 |
| 14.0 |  84   116 |  84   116 |   .     . |  84   116 |
| 15.0 |  98   134 |  96   134 |  96   132 |  96   132 |
| 17.5 | 132   182 | 132   182 | 130   180 | 130   180 |
| 20.0 | 172   236 | 170   236 | 168   232 | 168   232 |
| 22.5 | 216   298 | 216   298 |   .     . | 212   292 |
| 25.0 | 266   368 | 266   368 |   .     . | 258   358 |
+------+-----------+-----------+-----------+-----------+


If using approximations you should allow for a safety margin; sample sizes are sometimes a little larger (overlined) than exact ones, except for small CVs (underlined) where the sample size is underestimated.

Hopefully your narrow therapeutic index drug shows low variability - which is often the case; otherwise it will be very difficult to demonstrate BE in a conventional 2x2 cross-over study...

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
Helmut
★★★
avatar
Homepage
Vienna, Austria,
2008-04-04 18:13
(5837 d 15:10 ago)

@ Helmut
Posting: # 1764
Views: 6,277
 

 Table/R-code for AR [0.90/1.11]

Dear all,

I updated the sample size table (expected deviation of -5% from the reference, 80% and 90% power) according to exact results given in Table 5.3,[1] which are matched by results obtained by R-code given in this post with modifications[2] and David Dubin's FARTSSIE[3] (see this post).

       +-----------+-----------+-----------+
       |    [1]    |    [2]    |    [3]    |
+------+-----------+-----------+-----------+
|  CV% |  80%  90% |  80%  90% |  80%  90% |
+------+-----------+-----------+-----------+
|  5.0 |  14    18 |  14    18 |  14    18 |
|  6.0 |   .     . |  18    24 |  18    24 |
|  7.0 |   .     . |  24    32 |  24    32 |
|  7.5 |  26    36 |  26    36 |  26    36 |
|  8.0 |   .     . |  30    40 |  30    40 |
|  9.0 |   .     . |  36    50 |  36    50 |
| 10.0 |  44    60 |  44    60 |  44    60 |
| 11.0 |   .     . |  54    72 |  54    72 |
| 12.0 |   .     . |  62    86 |  62    86 |
| 12.5 |  68    94 |  68    94 |  68    94 |
| 13.0 |   .     . |  74   100 |  74   100 |
| 14.0 |   .     . |  84   116 |  84   116 |
| 15.0 |  96   132 |  96   132 |  96   132 |
| 17.5 | 130   180 | 130   180 | 130   180 |
| 20.0 | 168   232 | 168   232 | 168   232 |
| 22.5 | 212   292 | 212   292 | 212   292 |
| 25.0 | 258   358 | 258   358 | 258   358 |
+------+-----------+-----------+-----------+


The code (download link) was tested in versions 2.6.2, 2.5.1, 1.9.1, and 1.9.0.

#######################################################################
# Sample size calculation for a standard RT/TR                        #
# 2x2x2 cross-over design (multiplicative model)                      #
#######################################################################
# R-code based on SAS-code by
# (1) B. Jones and M.G. Kenward
#     Design and Analysis of Cross-Over Trials
#     Chapman & Hall/CRC, Boca Raton (2nd Edition 2000)
# (2) S. Patterson and B. Jones
#     Bioequivalence and Statistics in Clinical Pharmacology
#     Chapman & Hall/CRC, Boca Raton (2006)
# /*** WARNING : PROGRAM OFFERED FOR USE WITHOUT ANY GUARANTEES    ***/
# /*** NO LIABILITY IS ACCEPTED FOR ANY LOSS RESULTING FROM USE OF ***/
# /*** THIS SET OF SAS INTRUCTIONS                                 ***/
# Modification of degrees of freedom according to a
# personal message by D. Hauschke (E-mail 2006-01-05)
# Tested in R-versions 2.6.2 / 2.5.1 / 1.9.1 / 1.9.0
# 2008-04-04
# Helmut Schuetz
# BEBAC - Consultancy services for Bioequivalence
# and Bioavailability Studies
# 1070 Vienna, Austria
# ----------------------------------------------
a           <- 0.05      # alpha
theta1      <- 0.90      # lower acceptance limit
theta2      <- 1/theta1  # upper acceptance limit
ratio       <- 0.95      # expected ratio T/R
assign("target",
  c(0.8,0.9))            # target power
assign("CV",
  c(.05,.06,.07,.075,.08,
    .09,.1,.11,.12,.125,
    .13,.14,.15,.175,.2,
    .225,.25))           # intra-subject coefficients of variation
limit       <- 500       # upper sample size limit for search
# ----------------------------------------------
# Do not modify the code below this line unless
# you know what you are doing!
# ----------------------------------------------
for (i in CV)            # CV loop
  {
  if(i==CV[1]){
    title=paste(
      paste("   Sample size estimation for a standard\n",
        "  RT/TR 2x2x2 cross-over design (multi-\n",
        "  plicative model).\n",
        "  Expected ratio T/R =",
        format(round(ratio*100,2),nsmall=2,width=4),"%.\n\n"),
      paste(paste(format(round(target*100,2),nsmall=2,width=17),
        "%",sep="",collapse=""),"\n"),
      paste("  CV",
        paste(c(rep("   spl.size (pwr.)",
        length(target))),collapse=""),"\n"),
      paste("----",
        paste(c(rep(paste(rep("-",18),collapse=""),
        length(target))),collapse=""),"\n") )
    cat(title)
    }
  cat(paste(format(i*100,nsmall=1,width=4),"% ",sep=""))
  sigmaW    <- sqrt(log(1+i^2))
  s         <- sqrt(2)*sigmaW
  for (j in target)      # power loop
    {
    n       <- 6         # start value of sample size search
    repeat{
      df    <- n-2
      t1    <- qt(1-a,df)
      t2    <- -t1
      nc1   <- (sqrt(n))*((log(ratio)-log(theta1))/s)
      nc2   <- (sqrt(n))*((log(ratio)-log(theta2))/s)
      prob1 <- pt(t1,df,nc1)
      prob2 <- pt(t2,df,nc2)
      power <- prob2-prob1
      ppct  <- power*100
      if(power >= j | n > limit) break
      n     <- n+2       # increment for even sample size
      }
    if(n <= limit){
      cat(paste(format(n,width=5)," (",
        format(round(ppct,5),nsmall=5,width=8),"%) ",
        sep=""))
      } else
      cat(paste(">",format(limit,width=4)," (",
        format(round(ppct,5),nsmall=5,width=8),"%) ",
        sep=""))
    }
  cat("\n")
  }


You can modify the code to your needs:
a      (one-sided) alpha - needed in TOST / 90% CI (to obtain sample sizes for a 95% CI as needed for NTIDs by ANVISA, set a <- 0.025)
theta1 lower acceptance limit, where theta2=1/theta1
target set of target powers; if you want to get additionally e.g., 70% power, use: assign("target",c(0.7,0.8,0.9))
CV     set of CVs; each value gives one line of output
limit  upper limit of sample size; useful if set to a number lower than 500 to get the power obtained with a maximum feasible sample size

[1] D Hauschke, VW Steinijans and I Pigeot
    Bioequivalence Studies in Drug Development: Methods and Applications
    Wiley, New York, pp 118 (2007)
[3] D Dubins
    FARTSSIE v1.4
    Toronto, Ontario, Canada (2008)
    download link

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
UA Flag
Activity
 Admin contact
22,957 posts in 4,819 threads, 1,636 registered users;
90 visitors (0 registered, 90 guests [including 6 identified bots]).
Forum time: 08:24 CET (Europe/Vienna)

With four parameters I can fit an elephant,
and with five I can make him wiggle his trunk.    John von Neumann

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