[Rd] , Problem in random number generation for Marsaglia-Multicarry +, Kinderman-Ramage
@ndre @end|ng |rom g||||bert@|r
Fri Aug 13 13:26:43 CEST 2021
It looks like the M-M generator is deeply flawed, although R
implementation seems to be faithful.
I can understand that R keeps this generator for historical reasons.
However, R should at least warn that this generator is buggy and should
not be used!
That could be as simple as a Warning message generated by set.seed().
> With these matters, one has to be careful to distinguish between
method error and implementation error.
> The reason for changing the RNG setup in R v. 1.7.0 was pretty much
this kind of unfortunate interaction between M-M and K-R. There are even
more egregious examples for the distribution of maxima of normal
variables. Try e.g.
> RNGversion("1.6.0") # Marsaglia-Multicarry, Kinderman-Ramage
> s <- replicate(1e6,max(rnorm(10)))
> (A further bug in K-R was fixed in 1.7.1, but that is tangential to
> A glimpse of the source of the problem is seen in the
"microcorrelations" in this:
> RNGkind("Mar");m <- matrix(runif(4e7),2)
> m <- matrix(runif(4e7),2)
> These examples are from 2003, so the issue has been known for almost
2 decades. However, to the best of our knowledge, the M-M RNG is a
faithful implementation of their > method, so we have left the RNG in
R's arsenal, in case someone needed it for some specific purpose.
> - pd
More information about the R-devel