The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.

Bioequivalence Tests for 2x2 Cross-Over Trial Designs with Log-Normal Data

In the example below, we illustrate the use of SimTOST for 2x2 cross-over trials. As a first step, we load the package.

library(SimTOST)

Bioequivalence Tests for AUC and Cmax

We consider Example 1 from the PASS Sample Size Software Chapter 351 (NCSS 2025). We aim to estimate the sample size required to demonstrate bioequivalence between a test and reference product for two pharmacokinetic parameters: the area under the curve (AUC) and the maximum concentration (Cmax). We assume a 2x2 cross-over design. The true ratio of the test to the reference product is assumed to be 1.02 for AUC and 1.03 for Cmax. Based on previous studies, it is assumed that the standard deviation for log(AUC) = 0.25 and the standard deviation for log(Cmax = 0.3). The equivalence limits for the ratio of means are set at 0.80 and 1.25.

The significance level is set to 5%, and the sample size is calculated to achieve 80% power. Additionally, the correlation between AUC and Cmax is assumed to be 0.25. A difference-of-means test on the log scale is employed to determine bioequivalence.

In SimTOST, we can estimate the sample size using the sampleSize() function.

mu_r <- c(AUC = log(1.00), Cmax = log(1.00))
mu_t <- c(AUC = log(1.02), Cmax = log(1.03))
sigma <- c(AUC = 0.25, Cmax = 0.3)
lequi_lower <- c(AUC = log(0.80), Cmax = log(0.80))
lequi_upper <- c(AUC = log(1.25), Cmax = log(1.25))

(ss <- sampleSize(power = 0.8, alpha = 0.05,
                 mu_list = list("R" = mu_r, "T" = mu_t),
                 sigma_list = list("R" = sigma, "T" = sigma),
                 list_comparator = list("T_vs_R" = c("R", "T")),
                 rho = 0.25,
                 list_lequi.tol = list("T_vs_R" = lequi_lower),
                 list_uequi.tol = list("T_vs_R" = lequi_upper),
                 dtype = "2x2", ctype = "DOM", lognorm = FALSE, 
                 adjust = "no", nsim = 5000, seed = 1234))
#> Sample Size Calculation Results
#> -------------------------------------------------------------
#> Study Design: 2x2 trial targeting 80% power with a 5% type-I error.
#> 
#> Comparisons:
#>    R vs. T 
#>     - Endpoints Tested: AUC, Cmax 
#>       (multiple co-primary endpoints, m =  2 )
#> -------------------------------------------------------------
#>                  Parameter       Value
#>          Total Sample Size          37
#>             Achieved Power        80.2
#>  Power Confidence Interval 79.1 - 81.3
#> -------------------------------------------------------------

The total sample size required is 37 subjects, which corresponds to the estimate obtained using the PASS software (n=37).

References

NCSS. 2025. “Bioequivalence Tests for AUC and Cmax in a 2x2 Cross-over Design (Log-Normal Data).” In PASS Sample Size Software. NCSS Statistical Software. https://www.ncss.com/wp-content/themes/ncss/pdf/Procedures/PASS/Bioequivalence_Tests_for_AUC_and_Cmax_in_a_2x2_Cross-Over_Design-Log-Normal_Data.pdf.

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.