## Tricky question, lengthy answer [Power / Sample Size]

❝ Thanks for your instructive answer !

My pleasure.

❝ ❝ The most important CV is the one of C_{max}. Here I would allow for an even larger safety margin […].

❝

❝ I see, would you know of any guidance or "good practice" on how to determine this safety margin?

No idea. If you have variability/ies you could use an upper confidence limit of the CV (that’s what I do). The higher the sample size of the previous study/ies, the lower the uncertainty of the CV and hence, the tighter the CI of the CV. Various approaches in

`PowerTOST`

:`library(PowerTOST)`

CV <- 0.25 # Estimated in previous study

n <- 24 # Its (total) sample size

theta0 <- 0.95 # Assumed T/R-ratio

target <- 0.90 # Target (desired) power

design <- "2x2x2" # or "paired"

alpha <- c(NA, 0.05, 0.20, 0.25, NA) # 0.05: default, 0.25: Gould

if (design == "2x2x2") df <- n-2 else df <- n-1

alpha.not.NA <- which(!is.na(alpha))

res <- data.frame(CV=rep(CV, length(alpha)), df=rep(df, length(alpha)),

approach=c("\'carved in stone\'",

paste0("CI.", 1:length(alpha.not.NA)),

"Bayesian"), alpha=alpha, upper.CL=NA, n=NA,

power=NA, stringsAsFactors=FALSE)

res$approach[alpha.not.NA] <- paste0(100*(1-alpha[alpha.not.NA]),"% CI")

for (j in seq_along(alpha)) {

if (j == 1) { # 'carved in stone'

x <- sampleN.TOST(CV=CV, theta0=theta0, targetpower=target,

print=FALSE)

} else if (j < nrow(res)) { # based on upper CL of CV

res$upper.CL[j] <- signif(CVCL(CV=CV, df=df,

alpha=res$alpha[j])[["upper CL"]], 4)

x <- sampleN.TOST(CV=res$upper.CL[j], theta0=theta0, targetpower=target,

print=FALSE)

} else { # Bayesian

x <- expsampleN.TOST(CV=CV, theta0=theta0, targetpower=target,

prior.type="CV", prior.parm=list(df=df),

print=FALSE)

}

res$n[j] <- x[["Sample size"]]

res$power[j] <- signif(x[["Achieved power"]], 4)

}

print(res)

CV df approach alpha upper.CL n power

1 0.25 22 'carved in stone' NA NA 38 0.9089

2 0.25 22 95% CI 0.05 0.3379 66 0.9065

3 0.25 22 80% CI 0.20 0.2919 50 0.9051

4 0.25 22 75% CI 0.25 0.2836 48 0.9085

5 0.25 22 Bayesian NA NA 42 0.9039

^{st}row gives the ‘carved in stone’ results (

*i.e.*, one

*believes*that in the next study the CV will be like in the previous study – or lower). Used by many but risky and IMHO, not a good idea.

The default

`alpha`

of function `CVCL()`

calculates a one-sided 95% CI. Pretty conservative (2^{nd}row).

In the spirit of a producer’s risk of 20% I try to convince my clients to use an 80% CI (3

^{rd}row).

Gould* recommends a 75% CI (4

^{th}row).

You can walk the Bayesian route as well (5

^{th}row).

Up to you.

❝ ❝ Now it gets nasty. In many cases the variability in fed state is (much) higher than in fasted state. [].

❝

❝ That's interesting ! As far as I know no BE study is planned in the fed state (since the clinical formulation is only administered in fasting state), but I'll pass on the note.

Well… If already known that you will write sumfink like

*“X has to be administered on an empty stomach”*in the SmPC/label, why bother about trying to demonstrate lacking food effects? If you find one, write in the SmPC/label

*“Food de/increases the absorption of X by y%”*. If you want – only for marketing purposes (better compliance) – to write

*“Food does not influence the absorption of X. However, administration on an empty stomach is recommended.”*you have to power the study to be within the limits in order to support such a claim.

Unfortunately your story does not end here. Actually that’s only the start. Power (and therefore, the sample size) is

*much*more dependent on the PE than on the CV. Try this:

`library(PowerTOST)`

CV <- 0.25 # Estimated in previous study

n <- 24 # Its (total) sample size

theta0 <- 0.95 # Assumed T/R-ratio

target <- 0.90 # Target (desired) power

design <- "2x2x2" # or "paired"

x <- pa.ABE(CV=CV, theta0=theta0,

targetpower=target, design=design)

plot(x, pct=FALSE)

print(x)

Sample size plan ABE

Design alpha CV theta0 theta1 theta2 Sample size Achieved power

2x2x2 0.05 0.25 0.95 0.8 1.25 38 0.9088902

Power analysis

CV, theta0 and number of subjects which lead to min. acceptable power of at least 0.7:

CV= 0.3362, theta0= 0.9064

N = 23 (power= 0.7173)

You have no data about fed/fasting so far. What now? With the Bayesian approach you could take the uncertainty of the PE into account as well:

`library(PowerTOST)`

CV <- 0.25 # Estimated in previous study

n <- 24 # Its (total) sample size

theta0 <- 0.95 # Assumed T/R-ratio

target <- 0.90 # Target (desired) power

design <- "2x2x2" # or "paired"

expsampleN.TOST(CV=CV, theta0=theta0, targetpower=target,

prior.type="both", prior.parm=list(m=n, design=design),

details=FALSE)

++++++++++++ Equivalence test - TOST ++++++++++++

Sample size est. with uncertain CV and theta0

-------------------------------------------------

Study design: 2x2 crossover

log-transformed data (multiplicative model)

alpha = 0.05, target power = 0.9

BE margins = 0.8 ... 1.25

Ratio = 0.95 with 22 df

CV = 0.25 with 22 df

Sample size (ntotal)

n exp. power

98 0.901208

❝ ❝ You only have to observe the one with the highest variability / largest deviation form unity. Yep, doable in `Power.TOST`

.

❝

❝ I see, so I would only need to power the study for (supposedly) Cmax, and not use for instance the function power.2TOST to calculate the power of two TOST procedure for Cmax and AUC (either 0-inf or 0-t)?

No. You have to show BE for all PK metrics with α 0.05 each and the Intersection-Union-Test (IUT) maintains the type I error. Just estimate the sample size for the most nasty PK metric. I feel a little bit guilty since I was such a nuisance to Detlew and Benjamin. They worked hard to implement

`power.2TOST()`

. The idea sounds great but the correlation of say, AUC and C_{max}is

*unknown*in practice. See here and there. For a while we were even considering removing it from

`PowerTOST`

…❝ So, no need to perform multiplicity adjustment is that right ?

Yes.

- Gould AL.
*Group Sequential Extensions of a Standard Bioequivalence Testing Procedure.*J Pharmacokinet Biopharm. 1995;23(1):57–86. doi:10.1007/BF02353786.

*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:

- Sample Size Calculation for Drug Effect and Food Effect study Olivbood 2019-05-08 16:16 [Power / Sample Size]
- Tricky question, lengthy answer Helmut 2019-05-08 18:02
- Tricky question, lengthy answer Olivbood 2019-05-08 19:20
- Tricky question, lengthy answerHelmut 2019-05-09 00:47

- Tricky question, lengthy answer Olivbood 2019-05-10 21:11
- Tricky question, lengthy answer Helmut 2019-05-14 14:11
- Degrees of freedom of TaaTP d_labes 2019-05-14 16:01
- Use of incomplete block design? Olivbood 2019-05-23 22:30
- Radio Yerevan answers Helmut 2019-05-24 11:28

- Use of incomplete block design? Olivbood 2019-05-23 22:30

- Degrees of freedom of TaaTP d_labes 2019-05-14 16:01

- Tricky question, lengthy answer Helmut 2019-05-14 14:11

- Tricky question, lengthy answer Olivbood 2019-05-08 19:20

- Tricky question, lengthy answer Helmut 2019-05-08 18:02