美文网首页
2020-09-18:如何利用Stata生成随机数?

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

作者: WatermelonCa | 来源:发表于2020-09-18 08:50 被阅读0次

    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 数值均不相同。

    相关文章

      网友评论

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

          本文链接:https://www.haomeiwen.com/subject/udkdyktx.html