On CRAN submitted 2024-03-18.
CI.BE()
regarding cases with only
Ntotal
given.shadowtext()
lifted from package
TeachingDemos
and recoded since
TeachingDemos
was orphaned (request of Brian Ripley).
Orphaned status later on abandoned but nevertheless the recoded function
used furthermore.sampleN.scABEL()
to reflect the GCC guidelines (Version 3.1
of 10 August 2022).power.2TOST()
and SampleN.2TOST()
corrected.p.level
in function
power.TOST.sds()
introduced to make the significance level
of the group-by-treatment interaction test variable. Was former hard
coded to 0.1.power.NTID()
, sampleN.NTID()
, and
pa.NTID()
.PowerTOST 1.5-4
.Never on CRAN, only a development version.
On CRAN 2022-02-21.
power.TOST()
w.r.t vectorization of
CV
or theta0
.power.NTID()
, sampleN.NTID()
, and
pa.NTID()
. The functions power.NTIDFDA()
,
sampleN.NTIDFDA()
, and pa.NTIDFDA()
are
deprecated and will be removed in the next release.sampleN.TOST()
added to
vignette ABE; vignette PA adapted to pa.NTID()
.tfn()
. Thanks to PharmCat for
contributing them.gmodel = 1
in
the man page section Details of function
power.TOST.sds()
.On CRAN 2021-01-18
scABEL.ad()
and sampleN.scABEL.ad()
adapted to deal with regulator = "GCC"
. Man pages, README,
and RSABE-vignette updated accordingly.power.scABEL()
or
sampleN.scABEL()
.On CRAN 2020-10-27.
stringsAsFactors = FALSE
in example of main vignette
for R <4.0.0.On CRAN 2020-10-22.
theta0
within range
theta1 ... theta2
fixed.theta1, theta2
if
missing in various functions.emmeans
to Suggests
. Otherwise
NOTE
on r-devel-linux-x86_64-fedora-clang. THX to Gábor
Csárdi and Duncan Murdoch @r-pkg-devel. Will be required in R4.1.0
released next year.sampleN.*
: Always
estimation instead of calculation. References added
for Fieller’s CI.README
.logscale = FALSE
to the ABE-Vignette.On CRAN 2020-08-09. (Maintenance release dedicated to 70 birthday of Detluuu)
scABEL.ad
w.r.t. coercion.emmeans
in man pages of
expected power.ABE.Rmd
(not a good idea to assign
a variable with the same name as a function).tufte
from Imports to Suggests (Duncan Murdoch
@r-pkg-devel).theta1
in
pvalue.TOST
in case of logscale = FALSE
CV
(and theta0
,
theta1
, theta2
) in case of
logscale = FALSE
.On CRAN 2019-12-19. (Xmas gift)
power.dp()
w.r.t. setting argument
CVb
if missing in case of design="IBD"
.scABEL.ad()
: reg$name
instead of
regulator
.pwrA_S3methods.R
to the same
precison like in the others.power.TOST.sds()
for gmodel=1
, case
of gmodel=3
with data of the largest group (group by
treatment interaction significant at p=0.1)tufte
for nice quotes in
Rmarkdown.power.dp()
and
sampleN.dp()
w.r.t. the value of CVb
in case
of design="IBD"
.sampleN.noninf
based on
margin
.pa.scABE.R()
according
to guidances. Generally 12 (as before) but 24 for the FDA. Also 24 for
the EMA if 2x2x3
design (Q&A document). Changed
N
to n
in the S3-methods in conformity with
other functions.On CRAN 2019-08-29.
scABEL.ad()
, sampleN.scABEL.ad()
:
CVwT
was not given in output if CV
was a
vector.scABEL.ad.R
regulator
was
NULL
. Corrected to reg$name
.pwrA_S3methods.R
of pa.NTID()
(more lines
required). Plain font instead of bold in main.expsampleN.noninf()
wrt operator
&&
with vector arguments (new check in R
3.6.0).CI.RatioF()
fixed. Thanks to Michael (mittyri).sampleN.RSABE2L.sdsims()
for sample size
estimation via subject simulations for the ‘exact’ method of Tóthfalusi
& Endrényi “Algorithms for evaluating
reference scaled average bioequivalence: power, bias, and consumer
risk”.sampleN.scABEL.sdsims()
for sample size
estimation for ABEL via subject simulations. Useful in case of assumed
heteroscedasticity in the partial replicate design (TRT|RTR|RRT).NEWS.md
instead of NEWS
.README.md
(knitted from README.Rmd
).power.TOST.sds()
to simulate subject data
& evaluate via models with group effect implemented.\enc{foo}{bar}
.power.scABEL()
: If nsims
not given,
defaults to 1e5 (like before). If theta0
equals one of the
expanded limits, defaults to 1e6. Man-page updated.sampleN.TOST()
: Same name of replicate
designs like in the scaled functions.power.scABEL()
name of scaled component
"p(BE-ABEL)"
instead of "p(BE-wABEL)"
.test_ABEL.R
in inst/tests
to
support subject simulations.power.scABEL()
: More informative warning about
heteroscedasticity in the partial replicate design (use of
power.scABEL.sdsims()
suggested)..Machine$double.eps
if rho
is
-1 or +1 given in power_type1_2TOST.R
(similar to
sampleN_2TOST_sim.R
). Removed warning in the latter
function. Less confusing for users and the example in the man-page looks
nicer.On CRAN 2018-04-12 (dedicated to the birthday of Alfie Schütz. :-)
type1error.2TOST()
no longer available since
it suffers from insufficient precision to obtain the type 1 error (TIE)
via simulations. Due to the intersection-union principle the TIE is
always upper bounded to alpha by theory.power.2TOST()
based on simulations to obtain
the power of 2 TOSTs (statistical flaw in 4-dimensional
t-distribution approach). sampleN.2TOST()
and man
page adapted according to this change.regulator="FDA"
implemented in
scABEL.ad()
.power.RSABE2L.sds()
which implements the
‘exact’ based method for RSABE (ncTOST) of the two Lászlós.
Documentation included.On CRAN 2017-08-17.
nsims > 1e7
.CVwRfromU()
/ U2CVwR()
to
calculate CVwR from the upper expanded limit of an ABEL study
according to the EMA’s or Health Canada’s rules.alpha
restricted to scalar. Internal functions now allow length = 2 (different
alphas for the two null hypotheses).dfCV
in expected power functions
completely removed.On CRAN 2017-05-19.
power.scABEL.sdsims()
fixed which gave
power=NA
if alpha=0
.sampleN.scABEL.ad()
if pre-specified
alpha gives TIE <0.05.'pwrA'
corrected (text in the 4th screen was truncated on top if
saved as a PDF). Replaced text()
by
TeachingDemos::shadowtext()
to enhance legibility
(interfered with underlying grid before)./test
subdirectory added:
test_ABEL.R
and test_RSABE.R
which recalculate
the sample size tables given in Tóthfalusi & Endrényi “Sample
Sizes for Designing Bioequivalence Studies for Highly Variable
Drugs”. Contributed by Helmut.power.scABEL.sdsims()
now has an argument
design_dta
to specify the design via a data.frame. May be
useful for considering missing data.scABEL.ad()
and
sampleN.scABEL.ad()
to allow subject data simulations via
power.scABEL.sdsims()
if regulator = "EMA"
.
Removed regulator = "ANVISA"
. Changed the order of
sequences to be consistent with the other functions of PowerTOST.regulator = "ANVISA"
from
pa.scABE()
.'Null (true) ratio'
was mentioned instead of
'True ratio'
.Expected_Power_for_TOST.pdf
.'adj. alpha'
in
sampleN.scABEL.ad()
to 'alpha.adj'
for
consistency with scABEL.ad()
.On CRAN 2017-03-15.
power.scABEL2()
and
sampleN.scABEL2()
in pa.scABE()
corrected.power.scABEL.sdsims()
to calculate power
for the BE decision via scaled (widened) BE acceptance limits (EMA
recommended) based on subject data simulations.CV = 0.3
from scABEL.ad()
and sampleN.scABEL.ad()
. Stops execution if CV not
specified.cubature::adaptIntegrate
replaced by
cubature::hcubature
to reflect change of function name
within package cubature.power.scABEL()
introduced./doc
subdirectory.BE_power_sample_size_excerpt.pdf
updated to reflect the
changes in computation of OwensQ.On CRAN 2016-11-01.
power.TOST()
removed which caused power
<0 for large degrees of freedom.power.scABEL2()
and
sampleN.scABEL2()
removed.regulator = "ANVISA"
no longer allowed in the scaled
ABEL functions.OwensQ()
simpler/faster implemented. Now based solely
on numerical integration in combination with non-central
t.OwensQOwen()
now based on
algorithm AS76 and remarks to that algorithm to avoid numeric errors of
the implementation via integrate()
.ct9.6.6
in data("data2x2x3")
added which was missing since a long time ago.On CRAN 2016-07-14.
sampleN.2TOST()
fixed.point
in functions
CI2CV()
/CVfromCI()
removed.Implementation_scaledABE_sims.pdf
in /doc
subdirectory updated to reflect changes in code of the scaled ABE
functions.'pwrA'
now has an argument
ratiolabel
for labeling the axis concerning theta0. Wish of
Benjamin Lang.'Null (true) ratio'
in output of sample
size functions changed to 'True ratio'
.Published on GitHub 2016-06-14.
'regSet'
have an additional component
'est_method'
which controls the simulations via key
statistics of the evaluation using the EMA’s ANOVA or the FDA’s
recommended ISC in xyz.scABEL()
functions.power.scABEL()
/power.scABEL2()
as well as
sampleN.scABEL()
/sampleN.scABEL2()
are now
unified. The regulator component 'est_method'
is used for
switching between simulations based on the EMA’s ANOVA evaluation or ISC
evaluation, respectively.power.scABEL2()
/sampleN.scABEL2()
are
therefore deprecated and will be removed in future versions. A
corresponding warning is thrown.DESCRIPTION
.Published on GitHub 2016-06-10.
scABEL.ad()
and
sampleN.scABEL.ad()
if former argument
regulator="ANVISA"
settings are used.On CRAN 2016-06-06.
Released to beta-testers 2016-05-04.
power.scABEL2()
and
sampleN.scABEL2()
based on simulations of intra-subject
contrasts evaluation).'regSet'
and allow via this way User definitions of
regulatory settings.reg_const
made visible to define objects
of 'regSet'
. Class 'regSet'
has an S3 print
method.theta0
in functions
power.scABEL()
, power.scABEL2()
and
power.RSABE()
changed to 0.90 to be in agreement with the
setting in the corresponding sample size functions.scABEL()
(calculation of widened acceptance
limits) no longer accepts regulator="USER"
. This case may
be handled via an object with class 'regSet'
, as defined by
help of function reg_const()
.CVfromCI()
/CI2CV
now use
pe
instead of point
as argument due to more
consistency with their dual CI.BE()
. For backward
compatibility point
may be used also but then a warning is
thrown. Argument point will be removed in future versions.integrate()
if
method="exact"
.On CRAN 2016-04-12.
'pwrA'
objects reworked by Helmut Schütz
to avoid some ugly overlays.tol
for
convergence tolerance of the internally used uniroot()
. It
was formerly hardcoded as tol=1e-5
. Contributed by Helmut
Schütz.On CRAN 2016-03-09.
NA
for sample size for very low variability.
Thanks to Shuanghe for detecting this bug.imax=100
for the maximum number of steps for sample size
search. Wish of Helmut Schütz.On CRAN 2016-01-15.
Released 2016-01-04 to alpha testers.
scABEL.ad()
and
sampleN.scABEL.ad()
to iteratively adjust α in order to
control the consumer risk and adapt the sample size to compensate for a
potential loss in power with the EMA method of scaled ABE (ABEL).
Contributed by Helmut Schütz.theta0
changed to 0.9 in sample size estimation
for scaled ABE (as recommended by the two Lászlós).On CRAN 2015-12-02.
On CRAN 2015-09-30.
Released 2015-09-23 to alpha testers.
power.HVNTID()
and
sampleN.HVNTID()
introduced to calculate power and sample
size for the BE decision via the FDA procedure for highly variable NTIDs
(see the FDA’s dabigatran / rivaroxaban guidances).power.HVNTID()
and power.NTIDFDA()
now
return the power (p(BE)
) and the components for the scaled
ABE criterion, the conventional ABE test and the test for the ratio
swT/swR <= 2.5 if the argument
details=TRUE
(wish of Helmut Schütz).power.RSABE()
now returns the power
(p(BE)
) and the components for the scaled ABE criterion,
for the point estimate criterion and for the conventional ABE test alone
if the argument details=TRUE
. Analogous changes were made
in power.scABEL()
. See man-pages.On CRAN 2015-08-26.
power.TOST()
with method="exact"
reworked
to give correct values in case alpha>0.5
.
OwensQOwen()
adapted to deal with upper integration limit
R==Inf
.pmvt()
of
package mvtnorm
), also an exact calculation method but with
somewhat lower precision and longer run-time. Contributed by Benjamin
Lang.power.TOST.sim()
to obtain the power via
simulations of the TOST. Only intended for checking purposes.On CRAN 2015-07-10.
NAMESPACE
adapted to import
the necessary functions from base R installation (CRAN request).power.NTIDFDA()
and sampleN.NTIDFDA()
now
have an design argument to choose between "2x2x4"
(full
replicate 4-period) and "2x2x3"
(full replicate 3-period
design).On CRAN 2015-06-03.
power.scABEL()
and
sampleN.scABEL()
now allow the power and sample size
calculations for scaled ABEL according to the (inofficial) regulatory
settings of Brasilian ANVISA (argument
regulator="ANVISA"
).regulator="ANVISA"
.scABEL
for calculation of the
(widened) ABE acceptance limits.power2.TOST()
removed.On CRAN 2015-01-23.
power.TOST()
now handles balanced as well as
unbalanced studies. Function power2.TOST()
is therefore
deprecated and will be removed in later versions.BE_power_sample_size_excerpt.pdf
in subdirectory
/doc
changed to reflect the internal changes.On CRAN 2015-01-07.
OwensQOwen()
removed (debug code left over), THX
to Helmut for discovering this.CVfromCI()
and alias CI2CV()
now
handle unbalanced studies. Contributed by Benjamin Lang.BE_power_sample_size_excerpt.pdf
(discovered
by Ben) corrected.On CRAN 2014-12-19.
OwensT(h, a)
for the case of a=-Inf
removed. Thanks to Benjamin Lang for discovering that nasty bug.pvalue.TOST()
introduced to calculate the two
p-values of the TOST procedure. Contributed by Benjamin Lang.power.noninf()
, exppower.TOST()
,
exppower.noninf()
adapted to deal with unbalanced
studies.On CRAN 2014-11-13.
sampleN.dp()
introduced to avoid
errors with small CV (<= 0.1) for the crossover design.power.dp()
/ sampleN.dp()
cover
“incomplete block designs”.?known.designs
under Notes).On CRAN 2014-10-06.
pa.XYZ()
adapted so that they also work under
R < 3.1.1 (request of Uwe Ligges of CRAN) although with
minpower >= 0.5
.On CRAN 2014-09-30.
pwrA
now calls
plot()
.Build 2014-09-19, released to alpha/beta testers only.
pa.ABE()
), scaled ABE (pa.sABE()
) and scaled
ABE for NTIDs (pa.NTIDFDA()
) analyzing power for deviations
from assumptions for the sample size estimation.On CRAN 2014-08-12.
bk(ni)
for design="paired"
corrected. THX to Helmut Schütz who detected this bug.On CRAN 2014-07-02.
power.TOST()
now throws a warning if used with
imbalanced designs (n not an even multiple of the number of
sequences).sampleN.TOST()
to avoid failed searches if variability is
high and theta0 is close to 1.On CRAN 2014-04-30.
On CRAN 2014-01-31.
NaN
(not a number).OwensQOwen()
gains a
sixfold speed boost.OwensQ()
now tries to return a value via
nct-approximation if its value is due to numeric difficulties falsely
equal zero. This approximation is up to 6 decimals correct as far as
tested. OwensQ()
issues a warning if the nct-approximation
is used.Build 2014-01-03, not released to the public.
OwensQ()
now uses OwensQOwen()
in case of
high delta and/or high upper integration limit. Thus extreme cases can
be handled properly where the former implementation via
integrate()
was prone to fail. Thanks to Jiři Hofmann and
Helmut Schütz for pointing me to such extreme cases.On CRAN 2013-12-27.
NEWS
) corrected from
PowerTOST 1.1-00 on. THX to Julien Grassot.CVfromCI()
now accepts either both CLs or one CL and
the point estimate. Contributed by Helmut Schütz.power.RatioF()
and sampleN.RatioF()
now
have an argument setseed=TRUE
which avoids the dependence
of the power from the state of the random number generator (due to the
calculation method of pmvt()
of package
mvtnorm
). Thanks to Benjamin Lang.On CRAN 2013-09-02.
design="2x2x3"
(TRT|RTR) implemented in
power.scABEL()
, sampleN.scABEL()
and in
power.RSABE()
, sampleN.RSABE()
.power.scABEL()
now throws a warning if CVwT
≠ CVwR in the design "2x3x3"
(partial
replicate).On CRAN 2013-06-21.
sampleN.NTIDFDA()
which lead to
false sample size for cases where the test of equal variabilities of
Test vs. Reference comes into effect.On CRAN 2013-06-17.
n=NA
) if started with a too high n. Thanks
to Helmut Schütz.sampleN.scABEL()
,
sampleN.RSABE()
and sampleN.NTIDFDA()
return a
data.frame with the input and the sample size result. The
"Sample size"
column contains the total sample size. The
"nlast"
column contains the last n value handled. Might be
useful for restarting.sampleN.scABEL()
, sampleN.RSABE()
reworked.
Failed sample size searches are now more seldom observed.Build 2013-05-15, relased to alpha testers only.
power.NTIDFDA()
and
sampleN.NTIDFDA()
introduced to calculate power and sample
size for the BE decision via the method of the FDA for narrow
therapeutic index drugs (NTIDs, for details see the FDA’s warfarin
guidance). Power and sample size are based on simulations.On CRAN 2013-05-03.
"2x3x3"
design with
different intra-subject variabilities in functions
power.RSABE()
and sampleN.RSABE()
as well as
in functions power.scABEL()
and
sampleN.scABEL()
corrected./doc
subdirectory of the
package.power.scABEL()
introduced to reflect the fact that simulations via subject data and via
the methods implemented in power.scABEL()
gave empirical
power values that are only approximately in agreement.On CRAN 2013-02-28.
power.RSABE()
and
sampleN.RSABE(
) introduced to calculate power and sample
size for the BE decision via linearized scaled ABE criterion as favored
method of the FDA. Power and sample size are based on simulations.nsims
changed to 1E5 (suggested by Helmut
Schütz).setseed
introduced in the scaled ABE functions
to avoid different outcomes depending on the state of the (pseudo)
random number generator. If setseed=TRUE
a
set.seed(123456)
is issued prior to each call of the
simulation functions.On CRAN 2013-02-08.
power.scABEL()
and
sampleN.scABEL()
introduced to calculate power and sample
size for the BE decision via scaled (widened) BE acceptance limits based
on simulations. Thanks to Helmut Schütz on the BEBA Forum for
power testing these functions.Not released, integrated in 1.1-00
alpha2
removed from expsampleN.noninf()
and
expsampleN.TOST()
because it lead to some confusion in
users thinking this had to do with the algorithm via expected
power.CI2CV()
as alias to CVfromCI()
introduced
because myself always typed this name if aimed to calculate the CV from
a given CI.CVCL()
now returns a 2-element vector also if
an one sided interval is requested.On CRAN 2012-10-26.
power.noninf()
to get the correct power if
theta0
is below margin
(if
margin <1
) or theta0
is above
margin
(if margin >1
).
power.noninf()
calculated up to now the power of an
inferiority test. Thanks to Helmut Schütz.CV2mse()
and
mse2CV()
.CVCL()
to calculate a confidence interval
of a CV.On CRAN 2012-08-07.
power.TOST()
, power2.TOST()
and
power.noninf()
to use the correct degrees of freedom
depending on argument robust
. robust=FALSE
wrongly used the robust dfs. Thanks to Ben.On CRAN 2012-07-20.
.Q.integrand()
.nmin
- has to be a multiple of steps to assure
balance in sequence groups.On CRAN 2012-07-18.
integrate()
if CV<5.3E-6
. Thanks to Helmut
Schütz.n=2
if
design="paired"
).On CRAN 2012-04-05 (Easter egg).
CVpooled()
, exppower.TOST()
and
expsampleN.TOST()
now also implemented for
logscale=FALSE
, i.e., contain this argument in
their calls.OwensQOwen()
made public. This is an
implementation of the algorithm given by Owen in the original paper
(Biometrica 1965) via repeated integration by parts.OwensT()
made public. It is needed internally
in OwensQOwen()
but may be useful for other purposes.On CRAN 2012-03-26.
On CRAN 2012-03-05.
sampleN.TOST()
removed which causes extra
doubled output of n and power if n=4
. Thanks to Ben on the
BEBA
Forum.On CRAN 2012-02-13.
power.TOST()
removed which prevented calculation
of power according to method = "exact"
."2x2x3"
in
/data
sub-directory added."2x4x4"
in
/data
sub-directory added./test
sub-directory made public.On CRAN 2011-12-24.
power2.TOST()
added to allow power
calculations for studies with unbalanced (sequence) groups.exact
replaced by method
in
power.TOST()
, sampleN.TOST()
. See help for
these functions."2x2"
crossover and
for the "parallel"
group design to alleviate
validation/qualification of the package.data(package="PowerTOST")
./test
sub-directory that create
the sample size tables from the data section.BE_power_sample_size_excerpt.pdf
in the
/doc
sub-directory.On CRAN 2011-12-15.
'robust'
argument added to nearly all functions.robust=TRUE
the degrees of freedom for the so-called
robust evaluation (df2
in known.designs()
output) will be used.NAMESPACE
from R1.4.0 on the
internal functions (names starting with .
) are no longer
exported.On CRAN 2011-10-20.
On CRAN 2011-05-18.
alpha>=0.5
(very unusual setting). Thanks again to Craig
Zupke.Proc Power
.On CRAN 2011-05-16.
b
leading to integrand function almost zero over the whole
range which then gave an error in integrate()
. Thanks to
Craig Zupke.On CRAN 2011-03-11.
imax
. Needs to be adapted only in rare extreme
cases.theta0=1
(logscale) or theta0=0
(untransformed).On CRAN 2011-01-18.
known.designs()
.On CRAN 2011-01-10.
"3x3"
and "4x4"
crossover
designs removed.?CVpooled
.On CRAN 2010-11-25.
CVfromCI()
added to estimate the CV
from a confidence interval. Useful if no CV but the CI was given in
literature.On CRAN 2010-11-25.
diff
removed from
sampleN.TOST()
, expsampleN.TOST()
,
power.TOST()
, and exppower.TOST()
.On CRAN 2010-08-27.
"2x2"
alias
"2x2x2"
design corrected.On CRAN 2010-08-12.
diff
(Null ratio / Null diff.) is now
named theta0
since it was annoying for users to call it
diff
in case of ratios (logscale=TRUE
). The
parameter diff
is still supported but will be removed in
the next release. Therefore a warning is thrown if diff
is
used.On CRAN 2010-07-21.
.CV2se()
and
.se2CV()
made public.BE_power_sample_size_excerpt.pdf
for classical power /
sample size in directory /doc
added.On CRAN 2010-05-07, first public release.