ljt80008 发表于 2008-8-11 10:13 
set seed 20070816这个命令起到什么作用呢?尤其是数字20070816是什么意义呢?
*- 随机数发生器
*
* X_j = (a*X_{j-1} + c) mod m (j = 1,2, ...)
* -------
* 种子
* 如:
* X_j = (9*X_{j-1} + 3) mod 2^9 (j = 1,2, ...)
*- Stata中的随机数发生器:多个线性随机数发生器的组合
* 参见 [D] Data Management Reference, p.213
* George Marsaglia (1994) 32-bit pseudorandom number generator
* KISS (Keep It Simple Stupid)
*
* X_j = (69069 X_j-1 + 1234567) mod 2^32 (1)
* y_j = y_j-1(I+L^13)(I+R^17)(I+L^5) (2)
* z_j = 65184(z_j-1 mod 2^16) + int(z_j-1/2^16) (3)
* w_j = 63663(w_j-1 mod 2^16) + int(w_j-1/2^16) (4)
*
* 随机数发生器:
*
* R_j = (x_j + y_j + z_j + 2^16*w_j) mod 2^32
*
* 初始值的设定:
*
* x_0 = 123456789 /*
这就是所谓的“种子(seed)”,set seed # 改变的就是该值*/
* y_0 = 521288629
* z_0 = 362436069
* w_0 = 2262615
*
* 说明:
* (1) 每次使用set seed # 命令改变的是 x_0 的数值,而其他三个数值则不改变;
* (2) 为了保证随机数的质量,Stata会丢弃前100个随机数;
* (3) R_j/2^32 便可得到服从均匀分布[0,1)的随机数。
(
http://www.pinggu.org/bbs/thread-377804-1-1.html)