Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.
From | "Joseph Coveney" <stajc2@gmail.com> |
To | <statalist@hsphsun2.harvard.edu> |
Subject | st: Re: Mata order() indeterminate |
Date | Sun, 3 Nov 2013 13:08:21 +0900 |
Brendan Halpin wrote: I'm checking a simulation in Mata, and find that setting the seed to the same value does not yield the same results on repeated runs. I've tracked it down to the use of -order()- to sort a matrix, where there are many ties. It appears that -order()- brings in indeterminacy in dealing with ties, but from somewher other thanq the random-number system. This snippet illustrates the issue: mata: x = range(1,10,1) y = runiform(10,1):>0.5 for (i=1; i<=20; i++) { rseed(12345) x, x[order(y,1),] } end Though x is unchanged, and the seed is set to the same value at each pass, x[order(y,1)] changes. While this is disturbing, I presume it is consistent with Stata policy with regard to sorting indeterminacy. How do I get repeatable sorting in this context? -------------------------------------------------------------------------------- This sounds analogous to wanting to set the seed for the pseudorandom number generator used in -sort , stable- for a Stata dataset. I don't know whether that generator is also used--or even whether any such mechanism is used--in Mata's -order()-. Perhaps an alternative would be to explicitly create an auxiliary column or row containing a random sequence from -runiform()- just for the purpose, and then sorting the matrix on that. But, based upon experience with data modeling for relational database design, I find myself taking sides with StataCorp on this. If it were me, I would suspect that the indeterminacy I see is symptomatic of a conceptual bug in my simulation code. When you fix that bug, you will have fixed your problem with irreproducibility on repeated runs from the same seed. Joseph Coveney * * For searches and help try: * http://www.stata.com/help.cgi?search * http://www.stata.com/support/faqs/resources/statalist-faq/ * http://www.ats.ucla.edu/stat/stata/