Re: [R] Random seed problem in MCMC coupling of chains

From: Jan T. Kim <jtk_at_cmp.uea.ac.uk>
Date: Thu 09 Jun 2005 - 05:45:21 EST

On Wed, Jun 08, 2005 at 12:55:07PM -0400, Gabor Grothendieck wrote:
> That could be addressed like this (where changing the offset
> changes the experiment).
>
> offset <- 123
>
> niter <- 3
> nchain <- 2
> for (i in 1:niter) { # iterations
> for (j in 1:nchain) { # chains
> set.seed(i+offset)
> a <- runif(1)
> cat("iter:", i, "chain:", j, "runif:", a, "\n")
> }
> }
>
> On 6/8/05, Paul Gilbert <pgilbert@bank-banque-canada.ca> wrote:
> > Beware that your easy trick will give you the same result every time you
> > run it. You need a better scheme if you actually intend to get a new
> > experiment each time you run it.

That's not a bad thing per se; in fact, it's a good thing to be able to exactly reproduce the results you obtained with your software. Personally, I dislike the "convenience" feature of random number generators of generating a seed, frequently based on the system time, if none has been set explicitly; I always set a seed and frequently make the seed a commandline option or part of the control parameter file or the like.

>From this perspective, Gabor's solution seems perfect to me.

> > Paul
> >
> > Gorjanc Gregor wrote:
> >
> > > Thanks to Duncan, Dimitris as well as James for answers. I'll provide
> > > here also example from James, which seems to be the easiest of them
> > > all and was not posted to the list:
> > >
> > > niter <- 3
> > > nchain <- 2
> > > for (i in 1:niter) { # iterations
> > > for (j in 1:nchain) { # chains
> > > set.seed(i)
> > > a <- runif(1)
> > > cat("iter:", i, "chain:", j, "runif:", a, "\n")
> > > }
> > > }
> > >
> > > Note that seed is set with iteration counter. This is really neat and
> > > simple. I am just wondering if this is OK from "RNG point of view". Can
> > > someone comment on that?

The only concern I could think about is the case of a bad random number generator, in which the first couple of values are not entirely uncorrelated to the seed. But I'd be very surprised if that was a problem with R's RNGs -- I guess it's memories of lousy implementations C library rand() functions that make me write this remark.

Best regards, Jan

-- 
 +- Jan T. Kim -------------------------------------------------------+
 |    *NEW*    email: jtk@cmp.uea.ac.uk                               |
 |    *NEW*    WWW:   http://www.cmp.uea.ac.uk/people/jtk             |
 *-----=<  hierarchical systems are for files, not for humans  >=-----*

______________________________________________
R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
Received on Thu Jun 09 04:54:47 2005

This archive was generated by hypermail 2.1.8 : Fri 03 Mar 2006 - 03:32:27 EST