Version 1.5.4 built 2022-02-20 with R 4.1.2 (development version not on CRAN).

The package contains functions to calculate power and estimate sample size for various study designs used in (not only bio-) equivalence studies.

```
# design name df
# parallel 2 parallel groups n-2
# 2x2 2x2 crossover n-2
# 2x2x2 2x2x2 crossover n-2
# 3x3 3x3 crossover 2*n-4
# 3x6x3 3x6x3 crossover 2*n-4
# 4x4 4x4 crossover 3*n-6
# 2x2x3 2x2x3 replicate crossover 2*n-3
# 2x2x4 2x2x4 replicate crossover 3*n-4
# 2x4x4 2x4x4 replicate crossover 3*n-4
# 2x3x3 partial replicate (2x3x3) 2*n-3
# 2x4x2 Balaam's (2x4x2) n-2
# 2x2x2r Liu's 2x2x2 repeated x-over 3*n-2
# paired paired means n-1
```

Codes of designs follow this pattern:
`treatments x sequences x periods`

.

Although some replicate designs are more ‘popular’ than others,
sample size estimations are valid for *all* of the following
designs:

design | type | sequences | periods | |
---|---|---|---|---|

`2x2x4` |
full | 2 | TRTR|RTRT | 4 |

`2x2x4` |
full | 2 | TRRT|RTTR | 4 |

`2x2x4` |
full | 2 | TTRR|RRTT | 4 |

`2x4x4` |
full | 4 | TRTR|RTRT|TRRT|RTTR | 4 |

`2x4x4` |
full | 4 | TRRT|RTTR|TTRR|RRTT | 4 |

`2x2x3` |
full | 2 | TRT|RTR | 3 |

`2x2x3` |
full | 2 | TRR|RTT | 3 |

`2x4x2` |
full | 4 | TR|RT|TT|RR | 2 |

`2x3x3` |
partial | 3 | TRR|RTR|RRT | 3 |

`2x2x3` |
partial | 2 | TRR|RTR | 3 |

Balaam’s design TR|RT|TT|RR should be avoided due to its poor power characteristics. The three period partial replicate design with two sequences TRR|RTR (a.k.a. extra-reference design) should be avoided because it is biased in the presence of period effects.

For various methods power can be *calculated* based on

- nominal
*α*, coefficient of variation (*CV*), deviation of test from reference (*θ*_{0}), acceptance limits {*θ*_{1},*θ*_{2}}, sample size (*n*), and design.

For all methods the sample size can be *estimated* based
on

- nominal
*α*, coefficient of variation (*CV*), deviation of test from reference (*θ*_{0}), acceptance limits {*θ*_{1},*θ*_{2}}, target (*i.e.*, desired) power, and design.

Power covers balanced as well as unbalanced sequences in crossover or replicate designs and equal/unequal group sizes in two-group parallel designs. Sample sizes are always rounded up to achieve balanced sequences or equal group sizes.

- Average Bioequivalence (with arbitrary
*fixed*limits). - ABE for Highly Variable Narrow Therapeutic Index Drugs by simulations: U.S. FDA, China CDE.
- Scaled Average Bioequivalence based on simulations.
- Average Bioequivalence with Expanding Limits (ABEL) for Highly Variable Drugs / Drug Products: EMA, WHO and many others.
- Average Bioequivalence with
*fixed*widened limits of 75.00–133.33% if*CV*_{wR}>30%: Gulf Cooperation Council.

- Reference-scaled Average Bioequivalence (RSABE) for HVDP(s): U.S. FDA, China CDE.
- Iteratively adjust
*α*to control the type I error in ABEL and RSABE for HVDP(s). - RSABE for NTIDs: U.S. FDA, China CDE.

- Two simultaneous TOST procedures.
- Non-inferiority
*t*-test. - Ratio of two means with normally distributed data on the original scale based on Fieller’s (‘fiducial’) confidence interval.
- ‘Expected’ power in case of uncertain (estimated) variability and/or
uncertain
*θ*_{0}. - Dose-Proportionality using the power model.

- Exact
- Owen’s Q.
- Direct integration of the bivariate non-central
*t*-distribution.

- Approximations
- Non-central
*t*-distribution. - ‘Shifted’ central
*t*-distribution.

- Non-central

- Calculate
*CV*from*MSE*or*SE*(and vice versa). - Calculate
*CV*from given confidence interval. - Calculate
*CV*_{wR}from the upper expanded limit of an ABEL study. - Confidence interval of
*CV*. - Pool
*CV*from several studies. - Confidence interval for given
*α*,*CV*, point estimate, sample size, and design. - Calculate
*CV*_{wT}and*CV*_{wR}from a (pooled)*CV*_{w}assuming a ratio of intra-subject variances. *p*-values of the TOST procedure.- Analysis tool for exploration/visualization of the impact of
expected values (
*CV*,*θ*_{0}, reduced sample size due to dropouts) on power of BE decision. - Construct design matrices of incomplete block designs.

*α*0.05, {*θ*_{1},*θ*_{2}} (0.80, 1.25), target power 0.80. Details of the sample size search (and the regulatory settings in reference-scaled average bioequivalence) are shown in the console.- Note: In all functions values have to be given as ratios, not in percent.

Design `"2x2"`

(TR|RT), exact method (Owen’s Q).

Design `"2x2x4"`

(TRTR|RTRT), upper limit of the
confidence interval of
*σ*_{wT}/*σ*_{wR} ≤2.5, approximation by
the non-central *t*-distribution, 100,000 simulations.

Point estimate constraints (0.80, 1.25), homoscedasticity
(*CV*_{wT} = *CV*_{wR}), scaling is based
on *CV*_{wR}, design `"2x3x3"`

(TRR|RTR|RRT),
approximation by the non-central *t*-distribution, 100,000
simulations.

- EMA, WHO, Health Canada, and many other jurisdictions: Average Bioequivalence with Expanding Limits (ABEL).
- U.S. FDA, China CDE: RSABE.

*θ*_{0} 0.90.^{1}

Regulatory constant `0.760`

, upper cap of scaling at
*CV*_{wR} 50%, evaluation by ANOVA.

Regulatory constant `0.760`

, upper cap of scaling at
*CV*_{wR} ~57.4%, evaluation by intra-subject
contrasts.

Regulatory constant `log(1/0.75)/sqrt(log(0.3^2+1))`

,
widened limits 75.00–133.33% if *CV*_{wR} >30%, no
upper cap of scaling, evaluation by ANOVA.

Regulatory constant `log(1.25)/0.25`

, no upper cap of
scaling, evaluation by linearized scaled ABE (Howe’s approximation).

*θ*_{0} 0.975, regulatory constant
`log(1.11111)/0.1`

, implicit upper cap of scaling at
*CV*_{wR} ~21.4%, design `"2x2x4"`

(TRTR|RTRT), evaluation by linearized scaled ABE (Howe’s approximation), upper
limit of the confidence interval of
*σ*_{wT}/*σ*_{wR} ≤2.5.

*β*_{0} (slope) `1+log(0.95)/log(rd)`

where
`rd`

is the ratio of the highest and lowest dose, target
power 0.80, crossover design, details of the sample size search
suppressed.

Minimum acceptable power 0.70. *θ*_{0}; design,
conditions, and sample size method depend on defaults of the respective
approaches (ABE, ABEL, RSABE, NTID, HVNTID).

Before running the examples attach the library.

`library(PowerTOST)`

If not noted otherwise, the functions’ defaults are employed.

Power for total *CV* 0.35 (35%), group sizes 52 and 49.

```
power.TOST(CV = 0.35, n = c(52, 49), design = "parallel")
# [1] 0.8011186
```

Sample size for assumed within- (intra-) subject *CV* 0.20
(20%).

```
sampleN.TOST(CV = 0.20)
#
# +++++++++++ Equivalence test - TOST +++++++++++
# Sample size estimation
# -----------------------------------------------
# Study design: 2x2 crossover
# log-transformed data (multiplicative model)
#
# alpha = 0.05, target power = 0.8
# BE margins = 0.8 ... 1.25
# True ratio = 0.95, CV = 0.2
#
# Sample size (total)
# n power
# 20 0.834680
```

Sample size for assumed within- (intra-) subject *CV* 0.40
(40%), *θ*_{0} 0.90, four period full replicate study
(any of TRTR|RTRT, TRRT|RTTR, TTRR|RRTT). Wider acceptance range for
*C*_{max} (South Africa).

```
sampleN.TOST(CV = 0.40, theta0 = 0.90, theta1 = 0.75, design = "2x2x4")
#
# +++++++++++ Equivalence test - TOST +++++++++++
# Sample size estimation
# -----------------------------------------------
# Study design: 2x2x4 (4 period full replicate)
# log-transformed data (multiplicative model)
#
# alpha = 0.05, target power = 0.8
# BE margins = 0.75 ... 1.333333
# True ratio = 0.9, CV = 0.4
#
# Sample size (total)
# n power
# 30 0.822929
```

Sample size for assumed within- (intra-) subject *CV* 0.125
(12.5%), *θ*_{0} 0.975. Narrower acceptance range for
NTIDs (most
jurisdictions).

```
sampleN.TOST(CV = 0.125, theta0 = 0.975, theta1 = 0.90)
#
# +++++++++++ Equivalence test - TOST +++++++++++
# Sample size estimation
# -----------------------------------------------
# Study design: 2x2 crossover
# log-transformed data (multiplicative model)
#
# alpha = 0.05, target power = 0.8
# BE margins = 0.9 ... 1.111111
# True ratio = 0.975, CV = 0.125
#
# Sample size (total)
# n power
# 32 0.800218
```

Sample size for equivalence of the ratio of two means with normality
on the original scale based on Fieller’s (‘fiducial’) confidence
interval.^{2} Within- (intra-) subject
*CV*_{w} 0.20 (20%), between- (inter-) subject
*CV*_{b} 0.40 (40%).

Note the default *α* 0.025 (95% CI) of this function because it
is intended for studies with clinical endpoints.

```
sampleN.RatioF(CV = 0.20, CVb = 0.40)
#
# +++++++++++ Equivalence test - TOST +++++++++++
# based on Fieller's confidence interval
# Sample size estimation
# -----------------------------------------------
# Study design: 2x2 crossover
# Ratio of means with normality on original scale
# alpha = 0.025, target power = 0.8
# BE margins = 0.8 ... 1.25
# True ratio = 0.95, CVw = 0.2, CVb = 0.4
#
# Sample size
# n power
# 28 0.807774
```

Sample size for assumed within- (intra-) subject *CV* 0.45
(45%), *θ*_{0} 0.90, three period full replicate study
(TRT|RTR *or* TRR|RTT).

```
sampleN.TOST(CV = 0.45, theta0 = 0.90, design = "2x2x3")
#
# +++++++++++ Equivalence test - TOST +++++++++++
# Sample size estimation
# -----------------------------------------------
# Study design: 2x2x3 (3 period full replicate)
# log-transformed data (multiplicative model)
#
# alpha = 0.05, target power = 0.8
# BE margins = 0.8 ... 1.25
# True ratio = 0.9, CV = 0.45
#
# Sample size (total)
# n power
# 124 0.800125
```

Note that the conventional model assumes homoscedasticity (equal
variances of treatments). For heteroscedasticity we can ‘switch off’ all
conditions of one of the methods for reference-scaled ABE. We assume a
*σ*^{2}-ratio of ⅔ (*i.e.*, the test has a lower
variability than the reference). Only relevant columns of the data frame
shown.

```
<- reg_const("USER", r_const = NA, CVswitch = Inf,
reg CVcap = Inf, pe_constr = FALSE)
<- CVp2CV(CV = 0.45, ratio = 2/3)
CV <- sampleN.scABEL(CV=CV, design = "2x2x3", regulator = reg,
res details = FALSE, print = FALSE)
print(res[c(3:4, 8:9)], digits = 5, row.names = FALSE)
# CVwT CVwR Sample size Achieved power
# 0.3987 0.49767 126 0.8052
```

Similar sample size because the pooled *CV*_{w} is
still 0.45.

Sample size assuming heteroscedasticity (*CV*_{w}
0.45, variance-ratio 2.5, *i.e.*, the test treatment has a
substantially higher variability than the reference). TRTR|RTRT
according to the FDA’s guidances.^{3,}^{4,}^{5} Assess
additionally which one of the components (ABE,
*s*_{wT}/*s*_{wR}-ratio) drives the sample
size.

```
<- signif(CVp2CV(CV = 0.45, ratio = 2.5), 4)
CV <- sampleN.HVNTID(CV = CV, details = FALSE)[["Sample size"]]
n #
# +++++++++ FDA method for HV NTIDs ++++++++++++
# Sample size estimation
# ----------------------------------------------
# Study design: 2x2x4 (TRTR|RTRT)
# log-transformed data (multiplicative model)
# 1e+05 studies for each step simulated.
#
# alpha = 0.05, target power = 0.8
# CVw(T) = 0.549, CVw(R) = 0.3334
# True ratio = 0.95
# ABE limits = 0.8 ... 1.25
#
# Sample size
# n power
# 50 0.812820
suppressMessages(power.HVNTID(CV = CV, n = n, details = TRUE))
# p(BE) p(BE-ABE) p(BE-sratio)
# 0.81282 0.87052 0.93379
```

The ABE component shows a lower probability to demonstrate BE than
the *s*_{wT}/*s*_{wR} component and hence,
drives the sample size.

Sample size assuming homoscedasticity (*CV*_{wT} =
*CV*_{wR} = 0.45).

```
sampleN.scABEL(CV = 0.45)
#
# +++++++++++ scaled (widened) ABEL +++++++++++
# Sample size estimation
# (simulation based on ANOVA evaluation)
# ---------------------------------------------
# Study design: 2x3x3 (partial replicate)
# log-transformed data (multiplicative model)
# 1e+05 studies for each step simulated.
#
# alpha = 0.05, target power = 0.8
# CVw(T) = 0.45; CVw(R) = 0.45
# True ratio = 0.9
# ABE limits / PE constraint = 0.8 ... 1.25
# EMA regulatory settings
# - CVswitch = 0.3
# - cap on scABEL if CVw(R) > 0.5
# - regulatory constant = 0.76
# - pe constraint applied
#
#
# Sample size search
# n power
# 36 0.7755
# 39 0.8059
```

Iteratively adjust *α* to control the Type I
Error.^{6} Heteroscedasticity
(*CV*_{wT} 0.30, *CV*_{wR} 0.40,
*i.e.*, variance-ratio ~0.58), four period full replicate study
(any of TRTR|RTRT, TRRT|RTTR, TTRR|RRTT), 24 subjects, balanced
sequences.

```
scABEL.ad(CV = c(0.30, 0.40), design = "2x2x4", n = 24)
# +++++++++++ scaled (widened) ABEL ++++++++++++
# iteratively adjusted alpha
# (simulations based on ANOVA evaluation)
# ----------------------------------------------
# Study design: 2x2x4 (4 period full replicate)
# log-transformed data (multiplicative model)
# 1,000,000 studies in each iteration simulated.
#
# CVwR 0.4, CVwT 0.3, n(i) 12|12 (N 24)
# Nominal alpha : 0.05
# True ratio : 0.9000
# Regulatory settings : EMA (ABEL)
# Switching CVwR : 0.3
# Regulatory constant : 0.76
# Expanded limits : 0.7462 ... 1.3402
# Upper scaling cap : CVwR > 0.5
# PE constraints : 0.8000 ... 1.2500
# Empiric TIE for alpha 0.0500 : 0.05953
# Power for theta0 0.9000 : 0.805
# Iteratively adjusted alpha : 0.03997
# Empiric TIE for adjusted alpha: 0.05000
# Power for theta0 0.9000 : 0.778
```

With the nominal *α* 0.05 the Type I Error will be inflated
(0.05953). With the adjusted *α* 0.03997 (*i.e.*, a ~92%
CI) the TIE will be controlled, although with a
slight loss in power (decreases from 0.805 to 0.778).

Consider
`sampleN.scABEL.ad(CV = c(0.30, 0.35), design = "2x2x4")`

to
estimate the sample size preserving both the TIE and target power. In this example 26
subjects would be required.

ABEL
cannot be applied for *AUC* (except for the
WHO). Hence, in many cases
ABE drives the sample size.
Four period full replicate study (any of TRTR|RTRT, TRRT|RTTR,
TTRR|RRTT).

```
<- c("Cmax", "AUC")
PK <- c(0.45, 0.30)
CV # extract sample sizes and power
<- sampleN.scABEL(CV = CV[1], design = "2x2x4",
r1 print = FALSE, details = FALSE)[8:9]
<- sampleN.TOST(CV = CV[2], theta0 = 0.90, design = "2x2x4",
r2 print = FALSE, details = FALSE)[7:8]
<- as.numeric(c(r1[1], r2[1]))
n <- signif(as.numeric(c(r1[2], r2[2])), 5)
pwr # compile results
<- data.frame(PK = PK, method = c("ABEL", "ABE"),
res n = n, power = pwr)
print(res, row.names = FALSE)
# PK method n power
# Cmax ABEL 28 0.81116
# AUC ABE 40 0.80999
```

*AUC* drives the sample size.

For Health Canada it is the opposite (ABE for
*C*_{max} and ABEL for *AUC*).

```
<- c("Cmax", "AUC")
PK <- c(0.45, 0.30)
CV # extract sample sizes and power
<- sampleN.TOST(CV = CV[1], theta0 = 0.90, design = "2x2x4",
r1 print = FALSE, details = FALSE)[7:8]
<- sampleN.scABEL(CV = CV[2], design = "2x2x4",
r2 print = FALSE, details = FALSE)[8:9]
<- as.numeric(c(r1[1], r2[1]))
n <- signif(as.numeric(c(r1[2], r2[2])), 5)
pwr # compile results
<- data.frame(PK = PK, method = c("ABE", "ABEL"),
res n = n, power = pwr)
print(res, row.names = FALSE)
# PK method n power
# Cmax ABE 84 0.80569
# AUC ABEL 34 0.80281
```

Here *C*_{max} drives the sample size.

Sample size assuming homoscedasticity (*CV*_{wT} =
*CV*_{wR} = 0.45) for the widened limits of the Gulf
Cooperation Council.

```
sampleN.scABEL(CV = 0.45, regulator = "GCC", details = FALSE)
#
# +++++++++++ scaled (widened) ABEL +++++++++++
# Sample size estimation
# (simulation based on ANOVA evaluation)
# ---------------------------------------------
# Study design: 2x3x3 (partial replicate)
# log-transformed data (multiplicative model)
# 1e+05 studies for each step simulated.
#
# alpha = 0.05, target power = 0.8
# CVw(T) = 0.45; CVw(R) = 0.45
# True ratio = 0.9
# ABE limits / PE constraint = 0.8 ... 1.25
# Widened limits = 0.75 ... 1.333333
# Regulatory settings: GCC
#
# Sample size
# n power
# 54 0.8123
```

Sample size for a four period full replicate study (any of TRTR|RTRT,
TRRT|RTTR, TTRR|RRTT) assuming heteroscedasticity
(*CV*_{wT} 0.40, *CV*_{wR} 0.50,
*i.e.*, variance-ratio ~0.67). Details of the sample size search
suppressed.

```
sampleN.RSABE(CV = c(0.40, 0.50), design = "2x2x4", details = FALSE)
#
# ++++++++ Reference scaled ABE crit. +++++++++
# Sample size estimation
# ---------------------------------------------
# Study design: 2x2x4 (4 period full replicate)
# log-transformed data (multiplicative model)
# 1e+05 studies for each step simulated.
#
# alpha = 0.05, target power = 0.8
# CVw(T) = 0.4; CVw(R) = 0.5
# True ratio = 0.9
# ABE limits / PE constraints = 0.8 ... 1.25
# Regulatory settings: FDA
#
# Sample size
# n power
# 20 0.81509
```

Sample size assuming heteroscedasticity (*CV*_{w}
0.10, variance-ratio 2.5, *i.e.*, the test treatment has a
substantially higher variability than the reference). TRTR|RTRT
according to the FDA’s guidance.^{7}
Assess additionally which one of the three components (scaled ABE, conventional ABE,
*s*_{wT}/*s*_{wR}-ratio) drives the sample
size.

```
<- signif(CVp2CV(CV = 0.10, ratio = 2.5), 4)
CV <- sampleN.NTID(CV = CV)[["Sample size"]]
n #
# +++++++++++ FDA method for NTIDs ++++++++++++
# Sample size estimation
# ---------------------------------------------
# Study design: 2x2x4 (TRTR|RTRT)
# log-transformed data (multiplicative model)
# 1e+05 studies for each step simulated.
#
# alpha = 0.05, target power = 0.8
# CVw(T) = 0.1197, CVw(R) = 0.07551
# True ratio = 0.975
# ABE limits = 0.8 ... 1.25
# Implied scABEL = 0.9236 ... 1.0827
# Regulatory settings: FDA
# - Regulatory const. = 1.053605
# - 'CVcap' = 0.2142
#
# Sample size search
# n power
# 32 0.699120
# 34 0.730910
# 36 0.761440
# 38 0.785910
# 40 0.809580
suppressMessages(power.NTID(CV = CV, n = n, details = TRUE))
# p(BE) p(BE-sABEc) p(BE-ABE) p(BE-sratio)
# 0.80958 0.90966 1.00000 0.87447
```

The *s*_{wT}/*s*_{wR} component shows
the lowest probability to demonstrate BE and hence, drives the sample size.

Compare that with homoscedasticity (*CV*_{wT} =
*CV*_{wR} = 0.10):

```
<- 0.10
CV <- sampleN.NTID(CV = CV, details = FALSE)[["Sample size"]]
n #
# +++++++++++ FDA method for NTIDs ++++++++++++
# Sample size estimation
# ---------------------------------------------
# Study design: 2x2x4 (TRTR|RTRT)
# log-transformed data (multiplicative model)
# 1e+05 studies for each step simulated.
#
# alpha = 0.05, target power = 0.8
# CVw(T) = 0.1, CVw(R) = 0.1
# True ratio = 0.975
# ABE limits = 0.8 ... 1.25
# Regulatory settings: FDA
#
# Sample size
# n power
# 18 0.841790
suppressMessages(power.NTID(CV = CV, n = n, details = TRUE))
# p(BE) p(BE-sABEc) p(BE-ABE) p(BE-sratio)
# 0.84179 0.85628 1.00000 0.97210
```

Here the scaled ABE component shows the lowest probability to demonstrate BE and drives the sample size – which is much lower than in the previous example.

Comparison with *fixed* narrower limits applicable in other
jurisdictions. Note that a replicate design is not mandatory – reducing
the chance of dropouts and requiring less administrations

```
<- 0.10
CV # extract sample sizes and power
<- sampleN.NTID(CV = CV, print = FALSE, details = FALSE)[8:9]
r1 <- sampleN.TOST(CV = CV, theta0 = 0.975, theta1 = 0.90,
r2 design = "2x2x4", print = FALSE, details = FALSE)[7:8]
<- sampleN.TOST(CV = CV, theta0 = 0.975, theta1 = 0.90,
r3 design = "2x2x3", print = FALSE, details = FALSE)[7:8]
<- sampleN.TOST(CV = CV, theta0 = 0.975, theta1 = 0.90,
r4 print = FALSE, details = FALSE)[7:8]
<- as.numeric(c(r1[1], r2[1], r3[1], r4[1]))
n <- signif(as.numeric(c(r1[2], r2[2], r3[2], r4[2])), 5)
pwr # compile results
<- data.frame(method = c("FDA/CDE", rep ("fixed narrow", 3)),
res design = c(rep("2x2x4", 2), "2x2x3", "2x2x2"),
n = n, power = pwr, a = n * c(4, 4, 3, 2))
names(res)[5] <- "adm. #" # number of administrations
print(res, row.names = FALSE)
# method design n power adm. #
# FDA/CDE 2x2x4 18 0.84179 72
# fixed narrow 2x2x4 12 0.85628 48
# fixed narrow 2x2x3 16 0.81393 48
# fixed narrow 2x2x2 22 0.81702 44
```

*CV* 0.20 (20%), doses 1, 2, and 8 units, assumed slope
*β*_{0} 1, target power 0.90.

```
sampleN.dp(CV = 0.20, doses = c(1, 2, 8), beta0 = 1, targetpower = 0.90)
#
# ++++ Dose proportionality study, power model ++++
# Sample size estimation
# -------------------------------------------------
# Study design: crossover (3x3 Latin square)
# alpha = 0.05, target power = 0.9
# Equivalence margins of R(dnm) = 0.8 ... 1.25
# Doses = 1 2 8
# True slope = 1, CV = 0.2
# Slope acceptance range = 0.89269 ... 1.1073
#
# Sample size (total)
# n power
# 18 0.915574
```

Note that the acceptance range of the slope depends on the ratio of
the highest and lowest doses (*i.e.*, it gets tighter for wider
dose ranges and therefore, higher sample sizes will be required).

In an exploratory setting wider equivalence margins
{*θ*_{1}, *θ*_{2}} (0.50, 2.00) were
proposed,^{8} translating in this
example to an acceptance range of `0.66667 ... 1.3333`

and a
sample size of only six subjects.

Explore impact of deviations from assumptions (higher *CV*,
higher deviation of *θ*_{0} from 1, dropouts) on power.
Assumed within-subject *CV* 0.20 (20%), target power 0.90. Plot
suppressed.

```
<- pa.ABE(CV = 0.20, targetpower = 0.90)
res print(res, plotit = FALSE)
# Sample size plan ABE
# Design alpha CV theta0 theta1 theta2 Sample size Achieved power
# 2x2 0.05 0.2 0.95 0.8 1.25 26 0.9176333
#
# Power analysis
# CV, theta0 and number of subjects leading to min. acceptable power of ~0.7:
# CV= 0.2729, theta0= 0.9044
# n = 16 (power= 0.7354)
```

If the study starts with 26 subjects (power ~0.92), the *CV*
can increase to ~0.27 **or** *θ*_{0}
decrease to ~0.90 **or** the sample size decrease to 10
whilst power will still be ≥0.70.

However, this is **not** a substitute for the ‘Sensitivity
Analysis’ recommended in ICH-E9,^{9}
since in a real study a combination of all effects occurs
simultaneously. It is up to *you* to decide on reasonable
combinations and analyze their respective power.

Performed on a Xeon E3-1245v3 3.4 GHz, 8 MB cache, 16 GB RAM, R 4.1.2 64 bit on Windows 7.

2×2 crossover design, *CV* 0.17. Sample sizes and achieved
power for the supported methods (the 1^{st} one is the
default).

```
method n power time (s)
owenq 14 0.80568 0.00128
mvt 14 0.80569 0.11778
noncentral 14 0.80568 0.00100
shifted 16 0.85230 0.00096
```

The 2^{nd} exact method is substantially slower than the
1^{st}. The approximation based on the noncentral
*t*-distribution is slightly faster but matches the
1^{st} exact method closely. Though the approximation based on
the shifted central *t*-distribution is the fastest, it
*might* estimate a larger than necessary sample size. Hence, it
should be used only for comparative purposes.

Four period full replicate study (any of TRTR|RTRT, TRRT|RTTR,
TTRR|RRTT), homogenicity (*CV*_{wT} =
*CV*_{wR} 0.45). Sample sizes and achieved power for the
supported methods.

```
function method n power time (s)
sampleN.scABEL ‘key’ statistics 28 0.81116 0.1348
sampleN.scABEL.sdsims subject simulations 28 0.81196 2.5377
```

Simulating via the ‘key’ statistics is the method of choice for speed
reasons.

However, subject simulations are recommended **if**

- the partial replicate design (TRR|RTR|RRT) is planned
**and** - the special case of heterogenicity
*CV*_{wT}>*CV*_{wR}is expected.

You can install the released version of PowerTOST from CRAN with

```
<- "PowerTOST"
package <- package %in% installed.packages()
inst if (length(package[!inst]) > 0) install.packages(package[!inst])
```

… and the development version from GitHub with

```
# install.packages("remotes")
remotes::install_github("Detlew/PowerTOST")
```

Skips installation from a github remote if the SHA-1 has not changed
since last install. Use `force = TRUE`

to force
installation.

Inspect this information for reproducibility. Of particular
importance are the versions of R and the packages used to create this
workflow. It is considered good practice to record this information with
every analysis.

Version 1.5.4 built 2022-02-20 with R 4.1.2.

```
options(width = 66)
sessionInfo()
# R version 4.1.2 (2021-11-01)
# Platform: x86_64-w64-mingw32/x64 (64-bit)
# Running under: Windows 7 x64 (build 7601) Service Pack 1
#
# Matrix products: default
#
# locale:
# [1] LC_COLLATE=German_Germany.1252
# [2] LC_CTYPE=German_Germany.1252
# [3] LC_MONETARY=German_Germany.1252
# [4] LC_NUMERIC=C
# [5] LC_TIME=German_Germany.1252
#
# attached base packages:
# [1] stats graphics grDevices utils datasets methods
# [7] base
#
# other attached packages:
# [1] PowerTOST_1.5-4
#
# loaded via a namespace (and not attached):
# [1] Rcpp_1.0.8 mvtnorm_1.1-3 digest_0.6.29
# [4] magrittr_2.0.2 evaluate_0.15 TeachingDemos_2.12
# [7] rlang_1.0.1 stringi_1.7.6 cli_3.1.1
# [10] cubature_2.0.4.2 rstudioapi_0.13 rmarkdown_2.11
# [13] tools_4.1.2 stringr_1.4.0 xfun_0.29
# [16] yaml_2.2.2 fastmap_1.1.0 compiler_4.1.2
# [19] htmltools_0.5.2 knitr_1.37
```

1. Tóthfalusi L, Endrényi L.
*Sample Sizes for Designing Bioequivalence Studies for Highly
Variable Drugs.* J Pharm Pharmacol Sci. 2012; 15(1): 73–84. doi:10.18433/j3z88f. Open
access. ↩︎

2. Fieller EC. *Some Problems
In Interval Estimation.* J Royal Stat Soc B. 1954; 16(2): 175–85. JSTOR:2984043. ↩︎

3. U.S. Food and Drug
Administration, Office of Generic Drugs. *Draft Guidance on
Dabigatran Etexilate Mesylate.* Recommended Jun 2012; Revised Sep
2015, Jul 2017. Online.
↩︎

4. U.S. Food and Drug
Administration, Office of Generic Drugs. *Draft Guidance on
Rivaroxaban.* Recommended Sep 2015. Online.
↩︎

5. U.S. Food and Drug
Administration, Office of Generic Drugs. *Draft Guidance on Edoxaban
Tosylate.* Recommended May 2017; Revised Mar 2020. Online.
↩︎

6. Labes D, Schütz H.
*Inflation of Type I Error in the Evaluation of Scaled Average
Bioequivalence, and a Method for its Control.* Pharm Res. 2016;
33(11): 2805–14. doi:10.1007/s11095-016-2006-1.
↩︎

7. U.S. Food and Drug
Administration, Center for Drug Evaluation and Research. *Draft
Guidance for Industry. Bioequivalence Studies with Pharmacokinetic
Endpoints for Drugs Submitted Under an ANDA.* August 2021. Online. ↩︎

8. Hummel J, McKendrick S,
Brindley C, French R. *Exploratory assessment of dose
proportionality: review of current approaches and proposal for a
practical criterion.* Pharm. Stat. 2009; 8(1): 38–49. doi:10.1002/pst.326.
↩︎

9. International Conference on
Harmonisation of Technical Requirements for Registration of
Pharmaceuticals for Human Use. *ICH Harmonised Tripartite Guideline.
E9. Statistical Principles for Clinical Trials.* 5 February 1998. Online.
↩︎