|
1 | 1 | --- |
2 | | -title: "Bioequivalence Tests for Parallel Trial Designs: 3 Arms, 2 Endpoints" |
| 2 | +title: "Bioequivalence Tests for Parallel Trial Designs: 2 Arms, 3 Endpoints" |
3 | 3 | author: "Thomas Debray" |
4 | 4 | date: "`r format(Sys.time(), '%B %d, %Y')`" |
5 | 5 | output: |
|
8 | 8 | fig_width: 9 |
9 | 9 | fig_height: 6 |
10 | 10 | vignette: > |
11 | | - %\VignetteIndexEntry{Bioequivalence Tests for Parallel Trial Designs: 3 Arms, 2 Endpoints} |
| 11 | + %\VignetteIndexEntry{Bioequivalence Tests for Parallel Trial Designs: 2 Arms, 3 Endpoints} |
12 | 12 | %\VignetteEngine{knitr::rmarkdown} |
13 | 13 | %\VignetteEncoding{UTF-8} |
14 | 14 | bibliography: 'references.bib' |
@@ -45,12 +45,11 @@ data <- data.frame("PK measure" = c("AUCinf ($\\mu$g*h/mL)","AUClast ($\\mu$g*h/ |
45 | 45 | "EU-INF" = c("39,360 $\\pm$ 12,332", "37,022 $\\pm$ 9398", "126.2 $\\pm$ 17.9")) |
46 | 46 |
|
47 | 47 | kableExtra::kable_styling(kableExtra::kable(data, |
48 | | - col.names = c("PK measure", "SB2", "EU-INF"), |
| 48 | + col.names = c("PK measure", "SB2", "Remicade (EU)"), |
49 | 49 | caption = "Primary PK measures between test and reference product. Data represent arithmetic mean +- standard deviation."), |
50 | 50 | bootstrap_options = "striped") |
51 | 51 | ``` |
52 | 52 |
|
53 | | - |
54 | 53 | # Methodology and Assumptions |
55 | 54 |
|
56 | 55 | The bioequivalence analysis focuses on two key pharmacokinetic endpoints: |
@@ -79,17 +78,35 @@ Alternative Hypothesis ($H_1$): All endpoints meet the equivalence criteria: |
79 | 78 |
|
80 | 79 | $$H_1: E_L<\mu_{T}^{(j)}-\mu_{R}^{(j)} < E_U \quad\text{for all}\;j$$ |
81 | 80 |
|
82 | | -The null hypothesis $H_0$ is rejected if and only if all of the null hypotheses associated with each of the $K$ primary endpoints are rejected at a significance level of $\alpha$. |
83 | | - |
84 | | -## Decision Rule |
85 | | - |
86 | 81 | The null hypothesis ($H_0$) is rejected if, and only if, all null hypotheses associated with the $K$ primary endpoints are rejected at a significance level of $\alpha$. This ensures that equivalence is established across all endpoints simultaneously. |
87 | 82 |
|
88 | 83 | ## Statistical Considerations |
89 | 84 |
|
90 | 85 | * **Type I Error Control**: Since rejection of $H_0$ requires all individual null hypotheses to be rejected, there is no need for multiplicity adjustments. The Type I error rate is controlled by the design. |
91 | 86 | * **Impact on Power**: Requiring equivalence across multiple endpoints decreases the overall power of the test. The Type II error increases as the number of primary endpoints ($K$) grows, which can make equivalence testing more challenging [@mielke_sample_2018]. |
92 | 87 |
|
| 88 | +## Independent Testing of Pharmacokinetic (PK) Measures |
| 89 | +If each pharmacokinetic (PK) measure is tested independently, the following sample sizes would be required for each endpoint to achieve a 5\% significance level: |
| 90 | + |
| 91 | +```{r} |
| 92 | +# Sample size calculation for AUCinf |
| 93 | +(sim_AUCinf <- sampleSize( |
| 94 | + power = 0.9, # Target power |
| 95 | + alpha = 0.05, # Significance level |
| 96 | + arm_names = c("SB2", "EU_Remicade"), # Names of trial arms |
| 97 | + list_comparator = list("EMA" = c("SB2", "EU_Remicade")), # Comparator configuration |
| 98 | + mu_list = list("SB2" = 38703, "EU_Remicade" = 39360), # Mean values |
| 99 | + sigma_list = list("SB2" = 11114, "EU_Remicade" = 12332), # Standard deviation values |
| 100 | + list_lequi.tol = list("EMA" = 0.8), # Lower equivalence margin |
| 101 | + list_uequi.tol = list("EMA" = 1 / 0.8), # Upper equivalence margin |
| 102 | + ncores = 1, # Number of computation cores |
| 103 | + nsim = 1000 # Number of stochastic simulations |
| 104 | +)) |
| 105 | +``` |
| 106 | + |
| 107 | + |
| 108 | +If we were to test each PK measure independently, we would find a total sample size of $N=$ `r sim_AUCinf$sim_AUCinf$response$n_total` for AUCinf, $N=56$ for AUClast, and $N=20$ for Cmax. This means that we would have to enroll `r sim_AUCinf$sim_AUCinf$response$n_total` + $56+20 = 152$ patients in order to reject $H_0$ at a significance level of 5\%. |
| 109 | + |
93 | 110 |
|
94 | 111 |
|
95 | 112 | # References |
0 commit comments