View source: R/SampleSize_noninf.R
sampleN.noninf | R Documentation |
Function for estimating the sample size needed to have a pre-specified power for the one-sided non-inferiority t-test for normal or log-normal distributed data.
sampleN.noninf(alpha = 0.025, targetpower = 0.8, logscale = TRUE,
margin,theta0, CV, design = "2x2", robust = FALSE,
details = FALSE, print = TRUE, imax=100)
alpha |
Significance level (one-sided). Defaults here to 0.025. |
targetpower |
Power to achieve at least. Must be >0 and <1. |
logscale |
Should the data used on log-transformed or on original scale? |
theta0 |
‘True’ or assumed T/R ratio or difference. |
margin |
Non-inferiority margin. |
CV |
In case of 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. |
design |
Character string describing the study design. |
robust |
Defaults to FALSE. With that value the usual degrees of freedom will be used. |
details |
If |
print |
If |
imax |
Maximum number of steps in sample size search. |
The sample size is calculated via iterative evaluation of power.noninf()
.
Start value for the sample size search is taken from a large sample approximation.
The sample size is bound to 4 as minimum.
The estimated sample size gives always the total number of subjects (not subject/sequence in crossovers or subjects/group in parallel designs – like in some other software packages).
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’.
A data.frame with the input settings and results will be returned.
Explore it with str(sampleN.noninf(...)
The function does not vectorize properly.
If you need sample sizes with varying CVs, use f.i. for-loops or the apply-family.
D. Labes
Julious SA. Sample sizes for clinical trials with Normal data. Stat Med. 2004;23(12):1921–86. \Sexpr[results=rd]{tools:::Rd_expr_doi("10.1002/sim.1783")}
known.designs
, power.noninf
# using all the defaults: margin=0.8, theta0=0.95, alpha=0.025
# log-transformed, design="2x2"
sampleN.noninf(CV = 0.3)
# should give n=48
#
# 'non-superiority' case, log-transformed data
# with assumed 'true' ratio somewhat above 1
sampleN.noninf(CV = 0.3, targetpower = 0.9,
margin = 1.25, theta0 = 1.05)
# should give n=62
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.