Bookmark and Share

Notice: On March 31, it was announced that Statalist is moving from an email list to a forum. The old list will shut down at the end of May, and its replacement, statalist.org is already up and running.


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: st: RE: Random start to random number sequence


From   wgould@stata.com (William Gould, StataCorp LP)
To   statalist@hsphsun2.harvard.edu
Subject   Re: st: RE: Random start to random number sequence
Date   Thu, 19 Aug 2010 10:10:06 -0500

Clyde Schechter <clyde.schechter@einstein.yu.edu> writes, 

> My approach to setting seeds [...]  I take out my wallet and
> examine the first currency note in it.  I strip off any letters
> from the serial number, and use that as the seed.  I put the note
> at the back of my wallet so I won't reuse that serial number.

Ooh, I like it.  I like it so much I'm going to use it.

For those without currency in their wallets, there are web sites that
will give you real random numbers.


Real Random numbers
-------------------

One site is http://www.random.org, which bases its numbers on
atmospheric noise.  Also see http://en.wikipedia.org/wiki/Random.org
for more information on the site.

Another is http://www.randomnumbers.info.  They claim to to generate 
true random numbers using a quantum random-number generator.

I just found both the above sites, but I should have known about them.
My old favorite is http://www.lavarnd.org back in the days when the
numbers were based on observations of a real lava lamp.  Nowadays,
Wikipedia informs me, lavarnd.org numbers are based on noise from the
CCD of a cheap webcam, which doesn't have nearly the charm.  The
numbers are produced more quickly, however.  Anyway,
http://en.wikipedia.org/wiki/LavaRnd provides some history.  To get a
seed from lavarnd.org, go to the site and click on Lava Demos.  You'll
have a seed.

I'm sure others can find more sites, and I suspect that most Statalist 
members would prefer that we don't report all the sites we find.
If someone finds a site that is special, such as one that still uses 
a real lava lamp, or one that is particularly quick and easy to use, 
I suspect the other list members would tolerate it.  I'd like to hear 
about it.

For those interested in programming and performing a public service,
see the P.S. at the bottom.


You don't need real random numbers
----------------------------------

Using real random-number generators for statistical simulations would
be overkill.  Even using real random-number generators for setting the
seed of Stata's generator is overkill, but unassailable.

These sites exist for cryptological reasons.  These people want real
random numbers not just because such numbers are appearently random,
but because they are truly unpredictable and thus cannot be reversed
engineered.  In our case, we don't care whether it would be possible
for a sophisticated person to take a sample of our simulation and
"break into" the rest of it.

Indeed, we desire the opposite.  We want our work to be easily
reproducible by us and by others.  Hence, Stata will display the state
of the random-number generator if you code -display "`c(seed)'"-, and
allow you to reset the generator back to that state later if you type
-set seed ...-, substituting what was displayed.

-- Bill
wgould@stata.com


P.S.  A new command for Stata that reached out to the web and obtained 
      a real random number, set Stata's random number seed, displayed 
      the state of the random-number generator, and returned the 
      state in r() to boot, would be neat.  I'm imagining

		. setseed
                  (contacting http://www....)
                  (setting seed to 429839488)
                  (RNG state is now X52359df4c43f462544a474abacbdd93d2fba)

                . return list 
                macros:
                    r(seed) : "X52359df4c43f462544a474abacbdd93d2fba"

      Programmers: If such a site existed, the trick to getting the random
      number would be

             tempfile fromweb
             copy "http://wwww..."; "`fromweb'"

      One could then process file "`fromweb'", possibly in Mata.

      To understand this method, try typing 

             . copy http://www.stata.com trythis.html

      That will create file trythis.html.  Take a look.

      If someone finds a site and undertakes this, please do not submit to SSC
      until someone else reviews your code.  This command would reach out to a
      foreign website.  Someone needs to verify that the site is on the up and
      up.  And somone needs to review your code to verify that your code will
      do nothing bad if the website changes the format of what it produces.

      I volunteer.

      In fact, the review is probably unnecessary even if the site is 
      evil and your code is poor.  That's because Stata is not a web 
      browser.  Pretend www.evil.org is an evil web site that will do 
      real damage to your computer if you just visited it in your 
      web browser.  Even so, in Stata, typing 

             . copy http://www.evil.org badfile 

      could not posibly do any damage to your computer because Stata
      does not interpret or even look at the contents being copied to
      the diskfile.  The danger would be that you might later open
      badfile in your browser and that could do real damage.  Reading
      badfile from Mata, however, would be safe because again, the
      evil code that is there is not interpreted.

      In any case, I recommend copying to a tempfile.  That way, no one 
      would even have time to open the file in a browser. 
      And anyway, we will check out that the site is a safe one.

<end>
*
*   For searches and help try:
*   http://www.stata.com/help.cgi?search
*   http://www.stata.com/support/statalist/faq
*   http://www.ats.ucla.edu/stat/stata/


© Copyright 1996–2014 StataCorp LP   |   Terms of use   |   Privacy   |   Contact us   |   Site index