R的多个实例产生与MICE相同的插补 - 随机种子问题?

时间:2013-12-07 11:41:52

标签: r seed random-seed

多重插补包mice使用随机数生成器,可以使用set.seed参数进行设置。我正在运行R的多个实例(即3),其中相同的数据用相同的mice参数估算,其中set.seed=NA没有指定任何种子值。

然而,R的三个实例恰好产生了相同的插补。我对此观察感到困惑,因为我认为在使用set.seed=NA时R的不同实例应该使用不同的种子值,但看起来它们使用相同的。当我手动设置set.seed时,会产生不同的插补。

我的问题是:这是否合理或可能存在导致种子相同的计算机(PC Windows 7)问题,即使我设置了set.seed=NA。我欢迎任何关于这个问题的想法。

顺便说一句:我使用R的多个实例,因为MICE函数ibind()可用于组合mids(乘以估算的数据集)对象。因此,它节省了具有多个内核的系统的计算时间。如果产生相同的估算,这当然是无稽之谈。

1 个答案:

答案 0 :(得分:2)

如果您使用NULL作为set.seed的参数,则RNG会产生不同的结果。

> set.seed(NULL)
> rnorm(5)
[1] -0.45861478 -0.56525262 -0.95349202  0.05073898 -1.01956671
> set.seed(NULL)
> rnorm(5)
[1]  0.57787302  3.27165390  0.53466909 -1.15390604 -0.02624054

我建议使用序列

set.seed(NULL)
mice(...) # without seed argument