Learn R Programming

PowerTOST (version 1.5-6)

power.noninf: Power of the one-sided non-inferiority t-test

Description

Function calculates of the power of the one-sided non-inferiority t-test for normal or log-normal distributed data.

Usage

power.noninf(alpha = 0.025, logscale = TRUE, margin, theta0, CV, n, 
             design = "2x2", robust = FALSE)

Value

Value of power according to the input arguments.

Arguments

alpha

Significance level (one-sided). Defaults here to 0.025.

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 margin and CV 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

margin

Non-inferiority margin.
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 and theta0 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.

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 the 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.

Warning

The function does not vectorize if design is a vector.
The function vectorize properly if CV or theta0 are vectors.
Other vector input is not tested yet.

Author

D. Labes

Details

The power is calculated exact via non-central t-distribution.

Notes on the underlying hypotheses
If the supplied margin is < 0 (logscale=FALSE) or < 1 (logscale=TRUE), then it is assumed higher response values are better. The hypotheses are
H0: theta0 <= margin vs. H1: theta0 > margin
where theta0 = mean(test)-mean(reference) if logscale=FALSE
or
H0: log(theta0) <= log(margin) vs. H1: log(theta0) > log(margin)
where theta0 = mean(test)/mean(reference) if logscale=TRUE.

If the supplied margin is > 0 (logscale=FALSE) or > 1 (logscale=TRUE), then it is assumed lower response values are better. The hypotheses are
H0: theta0 >= margin vs. H1: theta0 < margin
where theta0 = mean(test)-mean(reference) if logscale=FALSE
or
H0: log(theta0) >= log(margin) vs. H1: log(theta0) < log(margin)
where theta0 = mean(test)/mean(reference) if logscale=TRUE.
This latter case may also be considered as ‘non-superiority’.

References

Julious SA. Sample sizes for clinical trials with Normal data. Stat Med. 2004;23(12):1921--86. tools:::Rd_expr_doi("10.1002/sim.1783")

See Also

known.designs, sampleN.noninf

Examples

Run this code
# using all the defaults: margin=0.8, theta0=0.95, alpha=0.025
# log-transformed, design="2x2"
# should give: 0.4916748
power.noninf(CV=0.3, n=24)

Run the code above in your browser using DataLab