From tirler at statistik.wu-wien.ac.at  Tue Mar 25 13:39:58 2003
From: tirler at statistik.wu-wien.ac.at (tirler@statistik.wu-wien.ac.at)
Date: Tue Mar 25 13:40:14 2003
Subject: [Rd] BUG report : 'rnorm' (LINUX, R 1.6.2) (PR#2682)
Message-ID: <200303251239.h2PCdwn9019842@pubhealth.ku.dk>

Dear colleague,

unfortunately 'rnorm' does not create normal distributed numbers as
you can see with following histogramm:

> hist(rnorm(1000000),breaks=100)

and 

> hist(pnorm(rnorm(1000000)),breaks=100)

I have done several chi^2-tests which have all failed:

> chi2unif<- function(x,N)
>   {
>    anz=length(x)
>    f0<-rep(anz/N,times=N)
>    fi<-(hist(x,g<-seq(length(N+1),from=0, by=1/N), plot=FALSE)[2])
>    fin<-fi[[1]][1:N]
>    chi2=sum( ((f0-fin)^2)/f0 )
>    pchisq(chi2,N-1)
>  } 

> chi2unif(x<-pnorm(rnorm(1000000)),100)

The result is the p-value of a goodness of fit test (chisquare test).
It should be a uniform random number in [0,1].
However, if this test is repeated, one almost every time gets an
number near one (0.99...)

This problems happens only by using normal.kind="Kindermann-Ramage"
(the default). This bug also appears in all random variate generation
that depend on 'rnorm', like 'rgamma'.

With regards,
Gnter Tirler


-- 
-----------------------------------------------------------------------------
Gnter Tirler     |     University of Economics and Business Administration
                  |     Department for Applied Statistics and Data Processing
-----------------------------------------------------------------------------
Augasse 2-6       |     Tel.   *43/1/31336-4840
A-1090 Vienna     |     FAX    *43/1/31336-738
Austria           |     email  tirler@statistik.wu-wien.ac.at
-----------------------------------------------------------------------------


[Rd] BUG report : 'rnorm' (LINUX, R 1.6.2) (PR#2682)
tirler@statistik.wu-wien.ac.at