[Rd] Extreme bunching of random values from runif with Mersenne-Twister seed

Duncan Murdoch murdoch.duncan at gmail.com
Sun Nov 5 15:17:48 CET 2017


On 04/11/2017 10:20 PM, Daniel Nordlund wrote:
> Tirthankar,
> 
> "random number generators" do not produce random numbers.  Any given
> generator produces a fixed sequence of numbers that appear to meet
> various tests of randomness.  By picking a seed you enter that sequence
> in a particular place and subsequent numbers in the sequence appear to
> be unrelated.  There are no guarantees that if YOU pick a SET of seeds
> they won't produce a set of values that are of a similar magnitude.
> 
> You can likely solve your problem by following Radford Neal's advice of
> not using the the first number from each seed.  However, you don't need
> to use anything more than the second number.  So, you can modify your
> function as follows:
> 
> function(x) {
>         set.seed(x, kind = "default")
>         y = runif(2, 17, 26)
>         return(y[2])
>       }
> 
> Hope this is helpful,

That's assuming that the chosen seeds are unrelated to the function 
output, which seems unlikely on the face of it.  You can certainly 
choose a set of seeds that give high values on the second draw just as 
easily as you can choose seeds that give high draws on the first draw.

The interesting thing about this problem is that Tirthankar doesn't 
believe that the seed selection process is aware of the function output. 
  I would say that it must be, and he should be investigating how that 
happens if he is worried about the output, he shouldn't be worrying 
about R's RNG.

Duncan Murdoch



More information about the R-devel mailing list