libaiyi
★

China,
2018-05-23 10:40
(1831 d 11:24 ago)

Posting: # 18801
Views: 4,570

## Power decrease for the highly correlation of AUCt and AUCinf [Power / Sample Size]

Hi, all

I want to ask about power calculation. In BE, Cmax, AUCt, and AUCinf are all needed for power consideration. And the power for each one need to be bigger than overall power for the accumulation of power. But AUCinf and AUCt are highly correlated, so could I decrease the individual power and only consider about AUCt and Cmax for the power setting?

Helmut
★★★  Vienna, Austria,
2018-05-23 12:40
(1831 d 09:23 ago)

@ libaiyi
Posting: # 18802
Views: 3,863

## Relevant: The PK metric with highest CV

Hi libaiyi,

❝ I want to ask about power calculation. In BE, Cmax, AUCt, and AUCinf are all needed for power consideration. […] But AUCinf and AUCt are highly correlated,

AUC and Cmax are (highly?) correlated as well.

❝ […] so could I […] only consider about AUCt and Cmax for the power setting?

If you think about sample size estimation I would go a step further and consider only the PK metric with the highest variability, which generally* is the one of Cmax (see [msg]this thread[/msg], linked other posts, and references). You could use function power.2TOST() of the R-package PowerTOST to explore various correlations (ρ). This issue is a little bit academic because ρ is rarely known.

• An early truncated partial AUC can be highly variable as well.

Dif-tor heh smusma 🖖🏼 Довге життя Україна! Helmut Schütz The quality of responses received is directly proportional to the quality of the question asked. 🚮
Science Quotes
libaiyi
★

China,
2018-05-24 12:02
(1830 d 10:01 ago)

@ Helmut
Posting: # 18811
Views: 3,786

## Relevant: The PK metric with highest CV

❝ You could use function power.2TOST() of the R-package PowerTOST to explore various correlations (ρ). This issue is a little bit academic because ρ is rarely known.

• An early truncated partial AUC can be highly variable as well.

Hi Helmut,

Thank you for the reply. I am afraid that I did not state clearly. I still want to clarify do you mean that for the estimation of sample size, the power need to be calculated as:
Overall power = (power of AUC0 * power of AUCinf * power of Cmax)
like 0.8=（0.92*0.92*0.92）
And it could not be simplified as Overall power = (power of AUC0 * power of Cmax) to decrease power needed of each for the lack of ρ?

Thanks again.
Helmut
★★★  Vienna, Austria,
2018-05-24 14:54
(1830 d 07:10 ago)

@ libaiyi
Posting: # 18812
Views: 3,807

## Power of 2 independent TOSTs ≈ 2 simultaneous TOSTs with ρ=0

Hi libaiyi,

❝ And it could not be simplified as Overall power = (power of AUC0 * power of Cmax) to decrease power needed of each for the lack of ρ?

For two tests, it could.
Try this (conventional BE-limits, T/R-ratio 0.95, target power 0.8, 2×2×2 crossover):

library(PowerTOST) CV1      <- 0.3 # Cmax CV2      <- 0.2 # AUC0-t n1       <- sampleN.TOST(CV=CV1, print=FALSE)[["Sample size"]] n2       <- sampleN.TOST(CV=CV2, print=FALSE)[["Sample size"]] n        <- max(n1, n2) rho.min  <- 0.25 rho.max  <- 0.75 rho.step <- 0.25 rho      <- c(1-.Machine$double.eps, seq(rho.max, rho.min, -rho.step), .Machine$double.eps) pwr0.1   <- power.TOST(CV=CV1, n=n) pwr0.2   <- power.TOST(CV=CV2, n=n) pwr1     <- numeric(length(rho)) res1     <- character(length(rho)) f        <- "%.4f" for (j in seq_along(rho)) {   pwr1[j] <- power.2TOST(CV=c(CV1, CV2), n=n, rho=rho[j], nsims=nsims)   res1[j] <- paste0("\n  rho = ", sprintf(f, rho[j]), ": ",                     sprintf(f, pwr1[j])) } res0     <- paste0("\nCV1: ", sprintf(f, CV1), ", CV2: ", sprintf(f, CV2),   "\nSample size based on max(CV1, CV2) = ", sprintf(f, max(CV1, CV2)), ": ", n,   "\nPower for two independent TOSTs",   "\n  PK metric with CV  = ", sprintf(f, CV1), ": ", sprintf(f, pwr0.1),   "\n  PK metric with CV  = ", sprintf(f, CV2), ": ", sprintf(f, pwr0.2),   "\n    overall power (p1\u00D7p2)    : ", sprintf(f, pwr0.1*pwr0.2),   "\nPower for two simultaneous TOSTs (",   formatC(nsims, digits=0, format="d", big.mark = ","), " simulations each)") cat(res0, paste0(res1), "\n")

Gives:

CV1: 0.3000, CV2: 0.2000 Sample size based on max(CV1, CV2) = 0.3000: 40 Power for two independent TOSTs   PK metric with CV  = 0.3000: 0.8158   PK metric with CV  = 0.2000: 0.9848     overall power (p1×p2)    : 0.8035 Power for two simultaneous TOSTs (1,000,000 simulations each)   rho = 1.0000: 0.8162   rho = 0.7500: 0.8151   rho = 0.5000: 0.8111   rho = 0.2500: 0.8071   rho = 0.0000: 0.8041

If ρ=1, power ~ the one by TOST of the PK metric with the higher CV. Implicitly people assume a perfect correlation when estimating the sample size based on the PK metric with the higher CV.
If ρ=0, power ~ pTOST1 × pTOST2. 证明完毕 Similar for three tests (e.g., for the FDA). Let’s assume the CV of AUC0–∞ with 0.22 to be a little bit larger than the one of AUC0–t with 0.2. Then we would get pTOST1 × pTOST2 × pTOST3 = 0.8158×0.9848×0.9660 = 0.7762. Since likely the correlation is high (esp. between AUC0–t and AUC0–∞), a relative drop in power from the desired 0.8 by less than 3% doesn’t worry me. In practice (high correlation) the loss will be negligible.

Another example. Since CV1 scratches the limit of HVD(P)s, it might be a good idea to be more cautious and assume a T/R of 0.90 (and – if you are courageous – assume a nicer one of AUC at 0.925). Let’s try a 4-period full replicate design:

library(PowerTOST) CV1      <- 0.3 # Cmax CV2      <- 0.2 # AUC design   <- "2x2x4" theta0.1 <- 0.90 theta0.2 <- 0.925 n1       <- sampleN.TOST(CV=CV1, theta0=theta0.1, design=design,                          print=FALSE)[["Sample size"]] n2       <- sampleN.TOST(CV=CV2, theta0=theta0.2, design=design,                          print=FALSE)[["Sample size"]] n        <- max(n1, n2) nsims    <- 1e6 rho.min  <- 0.25 rho.max  <- 0.75 rho.step <- 0.25 rho      <- c(1-.Machine$double.eps, seq(rho.max, rho.min, -rho.step), .Machine$double.eps) pwr0.1   <- power.TOST(CV=CV1, theta0=theta0.1, n=n, design=design) pwr0.2   <- power.TOST(CV=CV2, theta0=theta0.2, n=n, design=design) pwr1     <- numeric(length(rho)) res1     <- character(length(rho)) f        <- "%.4f" for (j in seq_along(rho)) {   pwr1[j] <- power.2TOST(CV=c(CV1, CV2), theta0=c(theta0.1, theta0.2),                          n=n, design=design, rho=rho[j], nsims=nsims)   res1[j] <- paste0("\n  rho = ", sprintf(f, rho[j]), ": ",                     sprintf(f, pwr1[j])) } res0     <- paste0("\nCV1     : ", sprintf(f, CV1),                    ", CV2     : ", sprintf(f, CV2),   "\ntheta0.1: ", sprintf(f, theta0.1), ", theta0.2: ", sprintf(f, theta0.2),   "\nSample size based on max(CV1, CV2) = ", sprintf(f, max(CV1, CV2)),   ": ", n, " (", design, " design)",   "\nPower for two independent TOSTs",   "\n  PK metric with CV  = ", sprintf(f, CV1), ": ", sprintf(f, pwr0.1),   "\n  PK metric with CV  = ", sprintf(f, CV2), ": ", sprintf(f, pwr0.2),   "\n    overall power (p1\u00D7p2)    : ", sprintf(f, pwr0.1*pwr0.2),   "\nPower for two simultaneous TOSTs (",   formatC(nsims, digits=0, format="d", big.mark = ","), " simulations each)") cat(res0, paste0(res1), "\n")

Gives:

CV1     : 0.3000, CV2     : 0.2000 theta0.1: 0.9000, theta0.2: 0.9250 Sample size based on max(CV1, CV2) = 0.3000: 40 (2x2x4 design) Power for two independent TOSTs   PK metric with CV  = 0.3000: 0.8100   PK metric with CV  = 0.2000: 0.9985     overall power (p1×p2)    : 0.8088 Power for two simultaneous TOSTs (1,000,000 simulations each)   rho = 1.0000: 0.8101   rho = 0.7500: 0.8105   rho = 0.5000: 0.8102   rho = 0.2500: 0.8096   rho = 0.0000: 0.8094

If you assume a T/R-ratio of 0.90 for both (probably better):

CV1     : 0.3000, CV2     : 0.2000 theta0.1: 0.9000, theta0.2: 0.9000 Sample size based on max(CV1, CV2) = 0.3000: 40 (2x2x4 design) Power for two independent TOSTs   PK metric with CV  = 0.3000: 0.8100   PK metric with CV  = 0.2000: 0.9819     overall power (p1×p2)    : 0.7953 Power for two simultaneous TOSTs (1,000,000 simulations each)   rho = 1.0000: 0.8101   rho = 0.7500: 0.8089   rho = 0.5000: 0.8041   rho = 0.2500: 0.7992   rho = 0.0000: 0.7958

Dif-tor heh smusma 🖖🏼 Довге життя Україна! Helmut Schütz The quality of responses received is directly proportional to the quality of the question asked. 🚮
Science Quotes
libaiyi
★

China,
2018-05-30 05:24
(1824 d 16:40 ago)

@ Helmut
Posting: # 18827
Views: 3,466

## Power of 2 independent TOSTs ≈ 2 simultaneous TOSTs with ρ=0

Thank you so much for the answer! I understand now.   Ing. Helmut Schütz 