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).
{L,U}=[1+loge0.80/logerd,1+loge1.25/logerd]
logscale = TRUE
where θ0=μT/μR).Non-inferiority: If margin < 1, higher responses are are assumed to be better. H0:θ0≤logemarginvsH1:θ0>logemargin
targetpower
.
rd
.
robust
logscale = 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 [θ1,θ2] in full
numeric precision. The widened margins for highly variable
Cmax are θ1=0.75, θ2=1/θ1=1.˙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, θ2=1/θ1=1.˙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 (θ0 0.90, design 2x2x4) and a NTID (θ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.