Learn R Programming

PowerTOST (version 1.5-6)

power.TOST.sim: Power of the TOST procedure obtained via simulations

Description

Power is calculated by simulations of studies (PE via its normal distribution, MSE via its associated χ2 distribution) and application of the two one-sided t-tests. Power is obtained via ratio of studies found BE to the number of simulated studies.

Usage

power.TOST.sim(alpha = 0.05, logscale = TRUE, theta1, theta2, theta0, CV, n, 
               design = "2x2", robust = FALSE, setseed = TRUE, nsims = 1e+05)

Value

Value of power according to the input arguments.

Arguments

alpha

Significance level (one-sided). Commonly set to 0.05.

logscale

Should the data used on log-transformed or on original scale? TRUE (default) or FALSE.

theta0

‘True’ or assumed T/R ratio or difference.
In case of logscale=TRUE it must be given as ratio T/R.
If logscale=FALSE, the difference in means. In this case, the difference may be expressed in two ways: relative to the same (underlying) reference mean, i.e. as (T-R)/R = T/R - 1; or as difference in means T-R. Note that in the former case the units of CV, theta1 and theta2 need also be given relative to the reference mean (specified as ratio).
Defaults to 0.95 if logscale=TRUE or to 0.05 if logscale=FALSE

theta1

Lower (bio-)equivalence limit.
In case of logscale=TRUE it is given as ratio.
If logscale=FALSE, the limit may be expressed in two ways: difference of means relative to the same (underlying) reference mean or in units of the difference of means. Note that in the former case the units of CV, theta0 and theta2 need also be given relative to the reference mean (specified as ratio).
Defaults to 0.8 if logscale=TRUE or to -0.2 if logscale=FALSE.

theta2

Upper (bio-)equivalence limit.
In case of logscale=TRUE it is given as ratio. If logscale=FALSE, the limit may be expressed in two ways: difference of means relative to the same (underlying) reference mean or in units of the difference of means. Note that in the former case the units of CV, theta0 and theta1 need also be given relative to the reference mean (specified as ratio).
If not given, theta2 will be calculated as 1/theta1 if logscale=TRUE or as -theta1 if logscale=FALSE.

CV

In case of logscale=TRUE the (geometric) coefficient of variation given as ratio.
If logscale=FALSE the argument refers to (residual) standard deviation of the response. In this case, standard deviation may be expressed two ways: relative to a reference mean (specified as ratio sigma/muR), i.e. again as a coefficient of variation; or untransformed, i.e. as standard deviation of the response. Note that in the former case the units of theta0, theta1 and theta2 need also be given relative to the reference mean (specified as ratio).

In case of cross-over studies this is the within-subject CV, in case of a parallel-group design the CV of the total variability.

n

Number of subjects under study.
Is total number if given as scalar, else number of subjects in the (sequence) groups. In the latter case the length of n vector has to be equal to the number of (sequence) groups.

design

Character string describing the study design.
See known.designs() for designs covered in this package.

robust

Defaults to FALSE. With that value the usual degrees of freedom will be used.
Set to TRUE will use the degrees of freedom according to the ‘robust’ evaluation (aka Senn’s basic estimator). These degrees of freedom are calculated as n-seq. See known.designs()$df2 for designs covered in this package.
Has only effect for higher-order crossover designs.

setseed

Simulations are dependent on the starting point of the (pseudo) random number generator. To avoid differences in power for different runs a set.seed(1234567) is issued if setseed=TRUE, the default.
Set this argument to FALSE to view the variation in power between different runs.

nsims

Number of studies to simulate. Defaults to 100,000 = 1E5.

Author

D. Labes

See Also

power.TOST,

Examples

Run this code
# using the default design 2x2, BE range 0.8 ... 1.25, logscale, theta0=0.95
power.TOST.sim(alpha = 0.05, CV = 0.3, n = 12)
# should give 0.15054, with nsims=1E6 it will be 0.148533
# exact analytical is
power.TOST(alpha = 0.05, CV = 0.3, n = 12)
# should give 0.1484695

# very unusual alpha setting
power.TOST.sim(alpha = 0.9, CV = 0.3, n = 12)
# should give the same (within certain precision) as
power.TOST(alpha = 0.95, CV = 0.3, n = 12)
# or also within certain precision equal to  
power.TOST(alpha = 0.95, CV = 0.3, n = 12, method = "mvt")
# SAS Proc Power gives here the incorrect value 0.60525

Run the code above in your browser using DataLab