GILLIBERT, Andre
2021-Aug-12 10:26 UTC
[Rd] Problem in random number generation for Marsaglia-Multicarry + Ahrens-Dieter
Dear R developers, At the same time I discovered a flaw in Marsaglia-Multicarry + Kinderman-Ramage, I found another in Marsaglia-Multicarry + Ahrens-Dieter. It is less obvious than for Kinderman-Ramage; so I created a new thread for this bug. The following code shows the problem (tested on R 4.1.1 x86_64 for Windows 10): == start of code sample =set.seed(1, "Marsaglia-Multicarry", normal.kind="Ahrens-Dieter") v=rnorm(1e8) q=qnorm(seq(0.01, 0.99, 0.01)) cv=cut(v, breaks=c(-Inf, q, +Inf)) observed=table(cv) chisq.test(observed) # p < 2.2e-16 == end of code sample = The chisq.test returns a P-value < 2.2e-16 while it was expected to return a non-significant P-value. The additionnal code below, shows severe irregularities in the distribution of quantiles: == continuation of code sample =expected = chisq.test(observed)$expected z = (observed - expected)/sqrt(expected) mean (abs(z) > 6) # 58% of z-scores are greater than 6 while none should be == end of code sample = The bug is specific to the combination Marsaglia-Multicarry + Ahrens-Dieter. There is no problem with Marsaglia-Multicarry + Inversion or Mersenne-Twister + Ahrens-Dieter I would expect at least a warning (or an error) from R for such a buggy combination. -- Sincerely Andr? GILLIBERT [[alternative HTML version deleted]]