The package contains functions to calculate power and estimate sample
size for various study designs used in (not only bio-) equivalence
studies. Power and sample size can be obtained based on different
methods, amongst them prominently the TOST procedure (Two One-Sided
t-Tests).
Version 1.5.6 built 2024-03-18 with R 4.3.3.
For an overview of supported designs, methods, and defaults together with some basic examples see
2x2x2 or
2x2 for short.
3x3 and
3x6x3. Both have the same degrees of freedom
(2n–4) in the conventional approach and therefore, require the
same number of subjects.
sampleN.RatioF() and for non-inferiority/-superiority in
function sampleN.noninf(), where it is 0.025). In the
functions alpha.
beta0.
CV.
CV.
CV). If heteroscedasticity is assumed,
CV has to given as a vector with two elements
CV = c(x, y), where CV[1] is
CVwT and CV[2] is
CVwR.
CVb is required in function sampleN.RatioF()
and in function sampleN.dp() if design = "IBD"
(incomplete block design).
ABEL: Based on the switching coefficient of variation \(\small{CV_0=30\%}\). \(\small{k=\log_{e}1.25/\sqrt{\log_{e}(CV_{0}^{2}+1)}\approx 0.760}\).
\(\small{\left\{ {L,\,U} \right\}=\left[1+\log_{e}0.80/\log_{e}rd,\:1+\log_{e}1.25/\log_{e}rd \right]}\)
logscale = TRUE
where \(\theta_0=\mu_\textrm{T}/\mu_\textrm{R}\)).Non-inferiority: If margin < 1, higher responses are are assumed to be better. \[\small{H_0:\,\theta_0 \leq \log_{e}\textrm{margin}\:vs\:H_1:\,\theta_0>\log_{e}\textrm{margin}}\]
targetpower.
rd.
robustlogscale = TRUE) or difference
T – R (logscale = FALSE). In the functions
theta0.
theta1 and theta2.
theta0 = theta2 or
theta0 = theta1.power.scABEL(),
power.RSABE(), power.NTIDFDA(),
power.HVNTID()).
In all functions sample sizes are estimated based on equivalence
margins [\(\small{\theta_1,\theta_2}\)] in full
numeric precision. The widened margins for highly variable
Cmax are \(\small{\theta_1=0.75,}\) \(\small{\theta_2=1/\theta_1=1.\dot{3}}\) and
not the rounded 75.00 – 133.33% according to the guidelines of the
Russian Federation, the EEU, and the GCC. If for a
NTID
theta1 = 0.90 is specified, \(\small{\theta_2=1/\theta_1=1.\dot{1}}\) and
not the rounded 111.11% as in the guidelines. Health Canada requires
rounding to only one decimal place with bioequivalence margins for
NTIDs of
90.0 – 112.0%.
Estimated sample sizes are generally not affected or – in
extremely rare cases – conservative.
Example for a HVDP (\(\small{\theta_0}\) 0.90, design 2x2x4) and a NTID (\(\small{\theta_0}\) 0.975, design 2x2x2):
# CV agency method L U n theta1 theta2 n
# 0.574 EMA ABEL 69.84% 143.19% 30 0.698368 1.431910 30
# 0.574 HC ABEL 66.7 % 150.0 % 28 0.666667 1.500000 28
# 0.574 RU/EEU/GGC ABE 75.00% 133.33% 34 0.750000 1.333333 34
# 0.100 EMA ABE 90.00% 111.11% 22 0.900000 1.111111 22
# 0.100 HC ABE 90.0 % 112.0 % 22 0.900000 1.111111 22
You can install the released version of PowerTOST from CRAN with …
package <- "PowerTOST"
inst <- package %in% installed.packages()
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.