全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件
5283 6
2007-04-21

请问用软件产生随机数时通常要先设立种子数set seed #,这个命令主要是什么作用?

如果是定义一个初始数,那么我们该如何选取这个初始种子数?例如,什么时候设成1000,什么时候设成10000,什么时候选123456?

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2007-4-21 17:25:00

种子是为了产生重复的随机数,比如说。你想在生成了一个10个样本的随机数后,让这前10个样本重复出现,运行一下你设的种子即可。比如:在R或S中,

> set.seed=7
> set.seed(10)
> rnorm(10)
[1] 0.2022220 0.5673874 -0.2168126 0.2940439 -1.3832150 0.6890478
[7] 0.2698659 -0.8669360 -1.9583219 0.2858080
> set.seed(10)
> rnorm(5)
[1] 0.2022220 0.5673874 -0.2168126 0.2940439 -1.3832150

> rnorm(6)
[1] 1.2426707 -0.9985252 -1.7038199 -0.7823290 -0.7575176 -1.9318804
> set.seed(10)
> rnorm(7)
[1] 0.2022220 0.5673874 -0.2168126 0.2940439 -1.3832150 0.6890478
[7] 0.2698659
>
设种子和不设种子的区别看懂了吗?你想设多少个就看你的需要了。在S+中可设个数的区间为[0,1023]。

[此贴子已经被作者于2007-4-21 17:27:48编辑过]

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2007-4-21 20:37:00
非常感谢peterf的回答。因为我编程基础比较差,还是不太明白。因为进行模拟的之前需要设立种子数,所以我不太知道为什么种子数选择不同,有没有什么固定的准则?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2007-4-22 17:18:00

因为计算机产生的是所谓的伪随机数,也就是说,受计算能力的限制和产生随机数的方法的限制,产生的随机数还是有一定规律性的。不过用rnorm等类型的函数产生随机数的时候,初始随机数是会不断变化的。为了让前面产生的随机数重复出现,就必须设立种子。当然了,种子数的设立个数是受软件限制的,不像你说得那样想设多大就多大。至于设多少个,这就看你的需要了。为了说得具体点,我再举一个例子。

比如说,想产生三个服从正态分布的样本,样本容量分别为5,10,20。第二个样本的前五个随机数和第一个样本一样,第三个样本的前十个随机数和第二个样本一样。这时就可设置两个种子。
> set.seed(1)
> rnorm(5)
[1] -0.7927655 0.7936707 -0.8916424 0.1120670 1.3711549
> set.seed(1)
> rnorm(10)
[1] -0.7927655 0.7936707 -0.8916424 0.1120670 1.3711549 1.4169931
[7] 1.1665775 -0.5306316 0.9211911 -0.5769609
> set.seed(2)
> rnorm(10)
[1] 1.764868371 0.058267051 0.268726377 1.383248613 -0.813888678
[6] -0.362742251 0.002077459 -0.524155998 0.333889698 -1.234131867
> set.seed(2)
> rnorm(20)
[1] 1.764868371 0.058267051 0.268726377 1.383248613 -0.813888678
[6] -0.362742251 0.002077459 -0.524155998 0.333889698 -1.234131867
[11] -0.649857087 -0.659911102 -0.759816557 2.059064793 0.122682129
[16] 0.240284946 0.218507145 0.791565447 0.442990242 0.835892980

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2007-4-22 19:15:00

楼上的大虾,可以介绍一下出处 吗

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2007-4-22 21:15:00

用r或者splus都可以编写出来的。 伪随机数的意思就是因为产生方法使用到了前面已经产生随机数的一个函数所得到新的值,为新的随机数,从实质上而言,并不具备独立的意义,但是由于统计特征和人们所研究需要的一些性质满足,所以还在用。

既然后面的随机数产生受到前面影响,所以产生第一个的时候就要初始化某个参数值,这个就是一定意义下所说的随机数seed。如果缺省的话,系统会采取某个系统参数来替代。

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群