[R] random number generator?

Charles Annis, P.E. AnnisC at asme.org
Tue Jan 28 20:15:04 CET 2003


Dear R-Aficionados:

I realize that no random number generator is perfect, so what I report
below may be a result of that simple fact.  However, if I have made an
error in my thinking I would greatly appreciate being corrected.

I wish to illustrate the behavior of small samples (n=10) and so
generate 100,000 of them.

n.samples <- 1000000
sample.size = 10
p <- 0.0001
z.normal <- qnorm(p)
# generate n.samples of sample.size each from a normal(mean=0, sd=1)
density
#
small.sample <- matrix(rnorm(n=sample.size*n.samples, mean=0, sd=1),
nrow=n.samples, ncol=sample.size)
# Verify that from the entire small.sample matrix, p sampled values are
below, p above.
#
observed.fraction.below <- sum(small.sample <
z.normal)/length(small.sample)
observed.fraction.above <- sum(small.sample >
-z.normal)/length(small.sample)

> observed.fraction.below 
[1] 6.3e-05
> observed.fraction.above 
[1] 0.000142
> 

I've checked the behavior of the entire sample's mean and median and
they seem fine.  The total fraction in both tails is 0.0002, as it
should be.  However in every instance about 1/3 are in the lower tail,
2/3 in the upper.  I also observe the same 1/3:2/3 ratio for one million
samples of ten.

Is this simply because random number generators aren't perfect?  Or have
I stepped in something?

Thank you for your kind counsel.


Charles Annis, P.E.

Charles.Annis at StatisticalEngineering.com
phone: 561-352-9699
eFAX: 503-217-5849
http://www.StatisticalEngineering.com




More information about the R-help mailing list