7

有没有人对 set.seed 根据操作系统(OS)给出不同结果的情况有任何经验。我记得之前在 R 的一个课程中遇到过类似的情况,尽管将起始种子设置为相同的值,但有些人使用 rnorm 生成不同的随机序列。现在,我自己在上一门课程,并没有遇到与 rnorm 相同的问题;无论操作系统如何,我所有的学生都会得到相同的序列。有趣的是,MASS 包的 mvrnorm 函数似乎也存在同样的问题。

任何见解将不胜感激 - 马克

这个例子:

require(MASS)
set.seed(123)
a <- rnorm(10, mean=10, sd=3)
b <- rnorm(10, mean=5, sd=2)
df <- data.frame(a,b)
C <- cov(df)
M <- mvrnorm(n=10, c(10,5), C)

df
C
M

在我的 Windows 7 OS 64 位版本的 R 2.14.1 上运行:

> df
           a        b
1   8.318573 7.448164
2   9.309468 5.719628
3  14.676125 5.801543
4  10.211525 5.221365
5  10.387863 3.888318
6  15.145195 8.573826
7  11.382749 5.995701
8   6.204816 1.066766
9   7.939441 6.402712
10  8.663014 4.054417
> C
         a        b
a 8.187336 3.431373
b 3.431373 4.310385
> M
              a        b
 [1,] 13.270535 6.158603
 [2,] 10.375011 5.737871
 [3,] 13.514105 5.476411
 [4,] 12.681956 5.020646
 [5,] 12.352333 4.927746
 [6,] 15.177508 6.810387
 [7,]  8.114377 2.925225
 [8,]  9.529744 4.834451
 [9,] 12.903550 7.232715
[10,]  6.251907 3.481789

编辑:了解是否有人没有得到这些结果以及使用了哪些操作系统或 R 版本可能会有所帮助。

4

1 回答 1

2

我听说有人更改 RNGKind,有时通过加载和运行更改生成器的包或进行更改的其他脚本而没有意识到这一点。如果是这种情况,那么相同的种子将导致不同的随机数。重新运行 R(不加载不同的包或其他脚本)应该从相同的种子生成相同的随机数。

于 2012-07-19T19:34:24.043 回答