From: Dimitris Rizopoulos <dimitris.rizopoulos_at_med.kuleuven.be>

Date: Wed 08 Jun 2005 - 23:53:37 EST

Dimitris Rizopoulos

Ph.D. Student

Biostatistical Centre

School of Public Health

Catholic University of Leuven

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 00:00:34 2005

Date: Wed 08 Jun 2005 - 23:53:37 EST

do you want something like this:

niter <- 3

nchain <- 2

rs <- sample(500, niter, TRUE)

for (i in 1:niter) { # iterations

for (j in 1:nchain) { # chains

set.seed(rs[i])

a <- runif(1)

cat("iter:", i, "chain:", j, "runif:", a, "\n")
}

}

I hope it helps.

Best,

Dimitris

Dimitris Rizopoulos

Ph.D. Student

Biostatistical Centre

School of Public Health

Catholic University of Leuven

Address: Kapucijnenvoer 35, Leuven, Belgium

Tel: +32/16/336899 Fax: +32/16/337015 Web: http://www.med.kuleuven.ac.be/biostat/ http://www.student.kuleuven.ac.be/~m0390867/dimitris.htm

- Original Message ----- From: "Gorjanc Gregor" <Gregor.Gorjanc@bfro.uni-lj.si> To: <r-help@stat.math.ethz.ch> Sent: Wednesday, June 08, 2005 3:27 PM Subject: [R] Random seed problem in MCMC coupling of chains

> Hello!

*>
**> I am performing coupling of chains in MCMC and I need the same value
**> of seed for two chains. I will show demo of what I want:
**>
**> R code, which might show my example is:
**> niter <- 3
**> nchain <- 2
**> tmpSeed <- 123
**> for (i in 1:niter) { # iterations
**> for (j in 1:nchain) { # chains
**> set.seed(tmpSeed)
**> a <- runif(1)
**> cat("iter:", i, "chain:", j, "runif:", a, "\n")
**> tmpSeed <- .Random.seed
**> }
**> }
**>
**> I get this:
**>
**> iter: 1 chain: 1 runif: 0.43588
**> iter: 1 chain: 2 runif: 0.43588
**> iter: 2 chain: 1 runif: 0.43588
**> iter: 2 chain: 2 runif: 0.43588
**> iter: 3 chain: 1 runif: 0.43588
**> iter: 3 chain: 2 runif: 0.43588
**>
**> but I would like to get:
**>
**> iter: 1 chain: 1 runif: 0.43588
**> iter: 1 chain: 2 runif: 0.43588
**> iter: 2 chain: 1 runif: 0.67676
**> iter: 2 chain: 2 runif: 0.67676
**> iter: 3 chain: 1 runif: 0.12368
**> iter: 3 chain: 2 runif: 0.12368
**>
**> Note that seed value is of course changing, but it is parallel
**> between chains.
**>
**> I am able to do only this, since setting seed at the beginning
**> of chain i.e iteration is not a problem, but I want an upper
**> scheme, since I compare chains and stop one if some condition is
**> satisfied.
**>
**> tmpSeed <- 123
**> for (i in 1:nchain) { # chains
**> set.seed(tmpSeed)
**> for (j in 1:niter) { # iterations
**> a <- runif(1)
**> cat("iter:", j, "chain:", i, "runif:", a, "\n")
**> }
**> }
**> iter: 1 chain: 1 runif: 0.28758
**> iter: 2 chain: 1 runif: 0.7883
**> iter: 3 chain: 1 runif: 0.40898
**> iter: 1 chain: 2 runif: 0.28758
**> iter: 2 chain: 2 runif: 0.7883
**> iter: 3 chain: 2 runif: 0.40898
**> iter: 1 chain: 3 runif: 0.28758
**> iter: 2 chain: 3 runif: 0.7883
**> iter: 3 chain: 3 runif: 0.40898
**>
**> I was looking in 'rlecuyer', 'rsprng' and 'setRNG', but did not find
**> anything usable for me. From reading on http://sprng.cs.fsu.edu/
**> 'rsprng' provides just opposite of what I want, 'rlecuyer' is a bit
**> to technical for me, but I think it also doesn't give identical
**> seed for parallels. 'setRNG', especially it's function 'getRNG()'
**> looks nice but its arguments should have seed stored. How can one
**> do that?
**>
**>
**> Thanks in advance!
**>
**> Lep pozdrav / With regards,
**> Gregor Gorjanc
**>
**> ----------------------------------------------------------------------
**> University of Ljubljana
**> Biotechnical Faculty URI:
**> http://www.bfro.uni-lj.si/MR/ggorjan
**> Zootechnical Department mail: gregor.gorjanc <at> bfro.uni-lj.si
**> Groblje 3 tel: +386 (0)1 72 17 861
**> SI-1230 Domzale fax: +386 (0)1 72 17 888
**> Slovenia, Europe
**> ----------------------------------------------------------------------
**> "One must learn by doing the thing; for though you think you know
**> it,
**> you have no certainty until you try." Sophocles ~ 450 B.C.
**>
**> ______________________________________________
**> 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
**>
*

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 00:00:34 2005

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