2020-09-18:如何利用Stata生成随机数?

2020-09-18  本文已影响0人  WatermelonCa

1. 生成(0,1)之间均匀分布的伪随机数的函数为:runiform()

dis runiform()

dis runiform()

dis runiform()

每次都得到一个大于零小于1的随机数。 

2.生成整数随机数

若要生成一位数的随机数(即:0,1,2,3,……,9),可以取小数点后第一位数,通常使用如下命令:

dis int(10*runiform())

若要生成两位数的随机数(0~99),则取小数点后两位,命令如下:

dis int(100*runiform() )

生成任意均匀分布随机数(a,b),可由下述函数得到:

a+(b-a)*runiform()

生成任意均匀分布整数随机数(a,b),可由下述函数得到:

a+int((b-a)*runiform())

3.但要注意的是,电脑中给出的随机数并不是真正的随机数,而是伪随机数,因为它是按照一定的规律生成的。

如果给定基于生成伪随机数的初始数值(seed),即:set seed #,则对相同的初始数值,生成的伪随机数序列完全一样。

clear

set obs 10

gen var1=runiform()

gen var2=runiform() 

注意:var1 和 var2 数值不一样

set seed 1234

gen var3=runiform()

set seed 1234

gen var4=runiform() 

gen var5=runiform()

注意:var3 和 var4 数值一样,但均与var5不同

set seed 1235

gen var6=runiform()

set seed 1234

gen var7=runiform()  

注:var7 与 var3, var4 数值一样,但var6 与 var7 数值均不相同。
上一篇下一篇

猜你喜欢

热点阅读