Learn R Programming

PowerTOST (version 1.3-5)

expsampleN.TOST: Sample size based on 'expected' power

Description

Calculates the sample size based on 'expected' power for a variety of study designs used in bioequivalence studies. See known.designs() for the study designs covered.

Usage

expsampleN.TOST(alpha = 0.05, targetpower = 0.8, logscale=TRUE, theta0, 
                theta1, theta2, CV, dfCV, design = "2x2", robust=FALSE,
                method=c("exact", "approx"), print = TRUE, details = FALSE, 
                imax=100)

Arguments

alpha
Error probability. Typically set to 0.05.
targetpower
Power to achieve at least. Must be >0 and
logscale
Should the data used on log-transformed or on original scale? TRUE or FALSE. Defaults to TRUE.
theta0
'True' or assumed bioequivalence ratio or difference. Maybe missing. Defaults the to 0.95 if logscale=TRUE or to 0.05 if logscale=FALSE.
theta1
Lower bioequivalence limit as ratio if logscale=TRUE or as difference. Can be missing. Defaults then to 0.8 if logscale=TRUE or to -0.2 if logscale=FALSE.
theta2
Upper bioequivalence limit as ratio if logscale=TRUE or as difference. If not given theta2 will be calculated as 1/theta1 if logscale=TRUE, else as -theta1.
CV
Coefficient of variation as ratio. May be given as vector. Then the CV's were pooled as weighted mean with their df=degrees of freedom as weights.
dfCV
Degrees of freedom for the CV's. Must be a vector of same length as CV. dfCV=Inf is allowed but makes only sense if CV/dfCV are scalars.
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 df are calculated as n-seq. See <
method
Defaults to code{method="exact"}. In that case the expected power will be calculated as expected value of the power with respect to the (prior) distribution of sigma^2 (inverse gamma distribution). Set to method="approx" will calculate the
print
If TRUE (default) the function prints its results. If FALSE only a data.frame with the results will be returned.
details
If TRUE the design characteristics and the steps during sample size calculations will be shown. Defaults to FALSE.
imax
Maximum number of steps in sample size search. Defaults to 100. Adaption only in very rare cases needed. Never seen a need for adaption up to now.

Value

  • A data.frame with the input values and the result of the sample size estimation. The "Sample size" column contains the total sample size in case of all design implemented.

Details

The sample size is calculated based on iterative evaluation of 'expected' power exact as expected value of the power with respect to the (prior) distribution of sigma^2 (inverse gamma distribution) or via Julious formulas based on non-central t-distribution. The start value of the sample size search is taken from a large sample approximation.

References

A.P. Grieve "Confidence Intervals and Sample Sizes" Biometrics 47, 1597-1603 December 1991 O'Hagan et al. "Assurance in Clinical Trial Design" Pharmaceut. Statist. 2005; 4: 187-201 S.A. Julious, R.J. Owen "Sample size calculations for clinical studies allowing for uncertainty in variance" Pharmaceutical Statistics (2006), 5, 29-37 S.A. Julious "Sample sizes for Clinical Trials" CRC Press, Chapman & Hall 2010 Bertsche et al. "The predictive distribution of the residual variability in the linear-fixed effects model for clinical cross-over trials" Biometrical Journal 00 (2016) 0, 1-13 Article first published online: 22 MAR 2016 S. Senn "Cross-over Trials in Clinical Research" Second edition Wiley, Chichester 2002

See Also

exppower.TOST, known.designs, sampleN.TOST

Examples

Run this code
# Classical 2x2 cross-over, target power = 80\%,
# BE limits 80 ... 125\%, assumed true BE ratio = 95%,
# intra-subject CV=30\% estimated with 10 df
# using all the defaults
expsampleN.TOST(CV=0.3, dfCV=10)
# -> gives n=48 with achieved expected power 0.804617
# Compare this to the usual sample size with CV assumed known ('carved in stone')
sampleN.TOST(CV=0.3)

# More then one CV with corresponding degrees of freedom 
# other settings as above
CVs <- c(0.25, 0.3)
dfs <- c(  22, 10)
expsampleN.TOST(CV=CVs, dfCV=dfs)
# -> gives a pooled CV=0.2664927 with df=32
# and a sample size n=34 with achieved expected power 0.812653 exact
# achieved expected power 0.815019 approximate acc. Julious

Run the code above in your browser using DataLab