Skip to content

Commit d5b6df8

Browse files
author
NightlordTW
committed
Expand example and fix links
1 parent 183a742 commit d5b6df8

File tree

3 files changed

+95
-10
lines changed

3 files changed

+95
-10
lines changed

README.Rmd

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -45,11 +45,11 @@ The main features of this package is `sampleSize` function which can be used to
4545

4646
| **Vignette** | **Design** | **Number of Arms** | **Number of Endpoints** |
4747
|------------------------------------------------|--------------|---------------------|--------------------------|
48-
| [Bioequivalence Tests for Parallel Trial Designs with Log-Normal Data](articles/sampleSize_parallel.html) | Parallel | 2 | Multiple (e.g., 2 or 3) |
49-
| [Bioequivalence Tests for 2x2 Cross-Over Trial Designs with Log-Normal Data](articles/sampleSize_crossover.html) | Cross-over | 2 | 2 |
50-
| [Bioequivalence Tests for Parallel Trial Designs: 3 Arms, 1 Endpoint](articles/sampleSize_parallel_3A1E.html) | Parallel | 3 | 1 |
51-
| [Bioequivalence Tests for Parallel Trial Designs: 2 Arms, 3 Endpoints](articles/sampleSize_parallel_2A3E.html) | Parallel | 2 | 3 |
52-
| [Bioequivalence Tests for Parallel Trial Designs: 3 Arms, 3 Endpoints](articles/sampleSize_parallel_3A3E.html) | Parallel | 3 | 3 |
48+
| [Bioequivalence Tests for Parallel Trial Designs with Log-Normal Data](https://smartdata-analysis-and-statistics.github.io/SimTOST/articles/sampleSize_parallel.html) | Parallel | 2 | Multiple (e.g., 2 or 3) |
49+
| [Bioequivalence Tests for 2x2 Cross-Over Trial Designs with Log-Normal Data](https://smartdata-analysis-and-statistics.github.io/SimTOST/articles/sampleSize_crossover.html) | Cross-over | 2 | 2 |
50+
| [Bioequivalence Tests for Parallel Trial Designs: 3 Arms, 1 Endpoint](https://smartdata-analysis-and-statistics.github.io/SimTOST/articles/sampleSize_parallel_3A1E.html) | Parallel | 3 | 1 |
51+
| [Bioequivalence Tests for Parallel Trial Designs: 2 Arms, 3 Endpoints](https://smartdata-analysis-and-statistics.github.io/SimTOST/articles/sampleSize_parallel_2A3E.html) | Parallel | 2 | 3 |
52+
| [Bioequivalence Tests for Parallel Trial Designs: 3 Arms, 3 Endpoints](https://smartdata-analysis-and-statistics.github.io/SimTOST/articles/sampleSize_parallel_3A3E.html) | Parallel | 3 | 3 |
5353

5454

5555

README.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,8 @@ Various worked examples are available as
4141

4242
| **Vignette** | **Design** | **Number of Arms** | **Number of Endpoints** |
4343
|----|----|----|----|
44-
| [Bioequivalence Tests for Parallel Trial Designs with Log-Normal Data](articles/sampleSize_parallel.html) | Parallel | 2 | Multiple (e.g., 2 or 3) |
45-
| [Bioequivalence Tests for 2x2 Cross-Over Trial Designs with Log-Normal Data](articles/sampleSize_crossover.html) | Cross-over | 2 | 2 |
46-
| [Bioequivalence Tests for Parallel Trial Designs: 3 Arms, 1 Endpoint](articles/sampleSize_parallel_3A1E.html) | Parallel | 3 | 1 |
47-
| [Bioequivalence Tests for Parallel Trial Designs: 2 Arms, 3 Endpoints](articles/sampleSize_parallel_2A3E.html) | Parallel | 2 | 3 |
48-
| [Bioequivalence Tests for Parallel Trial Designs: 3 Arms, 3 Endpoints](articles/sampleSize_parallel_3A3E.html) | Parallel | 3 | 3 |
44+
| [Bioequivalence Tests for Parallel Trial Designs with Log-Normal Data](https://smartdata-analysis-and-statistics.github.io/SimTOST/articles/sampleSize_parallel.html) | Parallel | 2 | Multiple (e.g., 2 or 3) |
45+
| [Bioequivalence Tests for 2x2 Cross-Over Trial Designs with Log-Normal Data](https://smartdata-analysis-and-statistics.github.io/SimTOST/articles/sampleSize_crossover.html) | Cross-over | 2 | 2 |
46+
| [Bioequivalence Tests for Parallel Trial Designs: 3 Arms, 1 Endpoint](https://smartdata-analysis-and-statistics.github.io/SimTOST/articles/sampleSize_parallel_3A1E.html) | Parallel | 3 | 1 |
47+
| [Bioequivalence Tests for Parallel Trial Designs: 2 Arms, 3 Endpoints](https://smartdata-analysis-and-statistics.github.io/SimTOST/articles/sampleSize_parallel_2A3E.html) | Parallel | 2 | 3 |
48+
| [Bioequivalence Tests for Parallel Trial Designs: 3 Arms, 3 Endpoints](https://smartdata-analysis-and-statistics.github.io/SimTOST/articles/sampleSize_parallel_3A3E.html) | Parallel | 3 | 3 |

vignettes/sampleSize_parallel_3A3E.Rmd

Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,92 @@ doc.cache <- T #for cran; change to F
2323
```
2424

2525
# Introduction
26+
Similar to the example presented in [Bioequivalence Tests for Parallel Trial Designs: 2 Arms, 3 Endpoints](sampleSize_parallel_2A3E.html), where equivalence across multiple endpoints was assessed, we now extend the framework to trials involving two reference products. This scenario arises when regulators from different regions require comparisons with their locally sourced reference biosimilars.
2627

28+
In many studies, it is necessary to evaluate equivalence across multiple primary variables. For example, the European Medicines Agency (EMA) recommends demonstrating equivalence for both the Area Under the Curve (AUC) and the maximum concentration (Cmax) when assessing pharmacokinetic properties. However, in this case, we evaluate equivalence across three treatment arms, including a test biosimilar and two reference products, each sourced from a different regulatory region.
2729

30+
This vignette demonstrates advanced techniques for calculating sample size in such trials, where both multiple endpoints and multiple reference products are considered. As an illustrative example, we use data from the phase-1 trial [NCT01922336](https://clinicaltrials.gov/study/NCT01922336#study-overview), which assessed pharmacokinetics following a single dose of SB2, its EU-sourced reference product (EU_Remicade), and its US-sourced reference product (USA_Remicade) [@shin_randomized_2015].
31+
32+
```{r setup, echo=FALSE}
33+
34+
data <- data.frame("PK measure" = c("AUCinf ($\\mu$g*h/mL)","AUClast ($\\mu$g*h/mL)","Cmax ($\\mu$g/mL)"),
35+
"SB2" = c("38,703 $\\pm$ 11,114", "36,862 $\\pm$ 9133", "127.0 $\\pm$ 16.9"),
36+
"EU-INF" = c("39,360 $\\pm$ 12,332", "37,022 $\\pm$ 9398", "126.2 $\\pm$ 17.9"),
37+
"US-INF" = c("39,270 $\\pm$ 10,064", "37,368 $\\pm$ 8332", "129.2 $\\pm$ 18.8"))
38+
39+
kableExtra::kable_styling(kableExtra::kable(data,
40+
col.names = c("PK measure", "SB2", "EU-INF", "US-INF"),
41+
caption = "Primary PK measures between test and reference product. Data represent arithmetic mean +- standard deviation."),
42+
bootstrap_options = "striped")
43+
44+
```
45+
46+
47+
# Input Data
48+
As in [this vignette](sampleSize_parallel_2A3E.html), the following inputs are required:
49+
50+
* Means for each endpoint and treatment arm (`mu_list`),
51+
* Standard deviations for each endpoint and arm (`sigma_list`),
52+
* Endpoint and arm names (`yname_list` and `arm_names`),
53+
* Arms to be compared within each comparator (`list_comparator`),
54+
* Endpoints to be compared within each comparator (`list_y_comparator`).
55+
56+
In this example, we simultaneously compare each biosimilar:
57+
58+
* SB2 vs. EU Remicade
59+
* SB2 vs. US Remicade
60+
61+
Below is the R code to define the required data:
62+
63+
```{r}
64+
# Mean values for each endpoint and arm
65+
mu_list <- list(
66+
SB2 = c(AUCinf = 38703, AUClast = 36862, Cmax = 127.0),
67+
EUREF = c(AUCinf = 39360, AUClast = 37022, Cmax = 126.2),
68+
USREF = c(AUCinf = 39270, AUClast = 37368, Cmax = 129.2)
69+
)
70+
71+
# Standard deviation values for each endpoint and arm
72+
sigma_list <- list(
73+
SB2 = c(AUCinf = 11114, AUClast = 9133, Cmax = 16.9),
74+
EUREF = c(AUCinf = 12332, AUClast = 9398, Cmax = 17.9),
75+
USREF = c(AUCinf = 10064, AUClast = 8332, Cmax = 18.8)
76+
)
77+
```
78+
79+
80+
81+
# Simultaneous Testing of Independent Co-Primary Endpoints
82+
83+
In this analysis, we adopt the **Ratio of Means (ROM)** approach to evaluate bioequivalence across independent co-primary endpoints.
84+
85+
86+
## Different Hypotheses across endpoints
87+
In this example, we aim to demonstrate:
88+
89+
* Bioequivalence of SB2 vs. EU-INF for AUCinf and Cmax, and
90+
* Bioequivalence of SB2 vs. US-INF for AUClast and Cmax.
91+
92+
For all endpoints, bioequivalence is established if the 90% confidence intervals for the ratios of the geometric means fall within the equivalence range of 80.00% to 125.00%.
93+
94+
Below is the R code to define the equivalence boundaries for each comparison:
95+
96+
```{r}
97+
# Define comparators and equivalence boundaries
98+
list_comparator <- list(
99+
"EMA" = c("SB2", "EUREF"),
100+
"FDA" = c("SB2", "USREF")
101+
)
102+
103+
list_lequi.tol <- list(
104+
"EMA" = c(AUCinf = 0.8, AUClast = 0.8, Cmax = 0.8),
105+
"FDA" = c(AUCinf = 0.8, AUClast = 0.8, Cmax = 0.8)
106+
)
107+
108+
list_uequi.tol <- list(
109+
"EMA" = c(AUCinf = 1.25, AUClast = 1.25, Cmax = 1.25),
110+
"FDA" = c(AUCinf = 1.25, AUClast = 1.25, Cmax = 1.25)
111+
)
112+
```
28113

29114
# References

0 commit comments

Comments
 (0)