Description Usage Arguments Details Value Warning Author(s) References See Also Examples

View source: R/SampleSize_noninf.R

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.

1 2 3 |

`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. doi: 10.1002/sim.1783

1 2 3 4 5 6 7 8 9 10 | ```
# 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
``` |

```
++++++++++++ Non-inferiority test +++++++++++++
Sample size estimation
-----------------------------------------------
Study design: 2x2 crossover
log-transformed data (multiplicative model)
alpha = 0.025, target power = 0.8
Non-inf. margin = 0.8
True ratio = 0.95, CV = 0.3
Sample size (total)
n power
48 0.801658
++++++++++++ Non-inferiority test +++++++++++++
Sample size estimation
-----------------------------------------------
Study design: 2x2 crossover
log-transformed data (multiplicative model)
alpha = 0.025, target power = 0.9
Non-inf. margin = 1.25
True ratio = 1.05, CV = 0.3
Sample size (total)
n power
62 0.902082
```

Embedding an R snippet on your website

Add the following code to your website.

For more information on customizing the embed code, read Embedding Snippets.