[R] Power of t-test in R vs. S-PLUS

Thomas Lumley tlumley at u.washington.edu
Fri Mar 1 18:19:49 CET 2002

```On Fri, 1 Mar 2002 joern.quedenau at metanomics.de wrote:

>
>
> Dear all,
>
> I found a discrepancy while performing a power calculation for a two sample
> t-test in R and S-PLUS, respectively.
> For given values of sample number (5 each), sd (0.2) , significance level
> (0.01), and a desired power (80%) I looked for the difference in means.
> These values differ: 0.5488882 in R and 0.4322771 in S-PLUS (see dump
> below).
>
> Did I overlook any detail or confuse some parameters?

The S-PLUS routine references Fisher & van Belle.  In that book the
authors use a unified approximate power calculation method that works for
a wide range of studies but is not very accurate for tiny sample sizes.
In most cases this doesn't matter because the assumptions going into a
study design aren't any more accurate, and in tiny sample sizes the power
is sensitive to the assumption that the data are Normally distributed.

The power.t.test formula uses the non-central t distribution and so will
give more accurate, lower power values for small samples.

You can see which one is correct by simulation (which is how I typically
do power calculations)

> table(sapply(1:10000,function(i)
t.test(rnorm(5,0,s=0.2),rnorm(5,.5488882,s=0.2),var.equal=TRUE)\$p.value)<=0.01)

FALSE  TRUE
2023  7977
> table(sapply(1:10000,function(i)
t.test(rnorm(5,0,s=0.2),rnorm(5,.4322771,s=0.2),var.equal=TRUE)\$p.value)<=0.01)

FALSE  TRUE
4526  5474

So at 0.548882 there is about 80% power, at 0.4322771 there is about 55%
power (with sampling uncertainties of about +/- 2% in each number).

It is interesting to note that a simulation shows the unequal-variance
t-test to have only 75% power at 0.5488882, indicating the sensitivity of
the power calculations at this sample size.

-thomas

Thomas Lumley			Asst. Professor, Biostatistics
tlumley at u.washington.edu	University of Washington, Seattle

>
> Thanks for your help,
> Joern Quedenau
>
> Here are the commands & outputs from both tools:
>
> R 1.4.0
> > power.t.test(n=5, sd=0.2, sig.level=0.01, power=0.8, type="two.sample",
> alternative="two.sided")
>
>      Two-sample t test power calculation
>
>               n = 5
>           delta = 0.5488882
>              sd = 0.2
>       sig.level = 0.01
>           power = 0.8
>     alternative = two.sided
>
>  NOTE: n is number in *each* group
>
> S-PLUS 2000 Professional Release 2:
> > normal.sample.size(n1=5, n2=5, mean=0, sd1=0.2, sd2=0.2, power=0.8,
> alpha=0.01, alternative="two.sided")
>   mean1 sd1     mean2 sd2     delta alpha power n1 n2 prop.n2
> 1     0 0.2 0.4322771 0.2 0.4322771  0.01   0.8  5  5       1
>
> ------------------------------------------
> Dr. Jörn Quedenau
> Coordinator Data Management Bioinformatics
> Metanomics GmbH & Co. KGaA
> Tegeler Weg 33, D-10589 Berlin, Germany
> Tel +49 30 34807 125, Fax +49 30 34807 300
>
>
> -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
> r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
> Send "info", "help", or "[un]subscribe"
> (in the "body", not the subject !)  To: r-help-request at stat.math.ethz.ch
> _._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._
>

Thomas Lumley			Asst. Professor, Biostatistics
tlumley at u.washington.edu	University of Washington, Seattle
^^^^^^^^^^^^^^^^^^^^^^^^
NOTE NEW EMAIL ADDRESS

-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-help-request at stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._

```

More information about the R-help mailing list