7

set.seed がオペレーティング システム (OS) によって異なる結果をもたらす状況を経験した人はいますか? R のクラスで、開始シードを同じ値に設定しているにもかかわらず、rnorm を使用して異なるランダム シーケンスを生成している人がいた前に、同様の状況に遭遇したことを覚えています。今、私は自分でコースを提供していますが、rnorm で同じ問題に遭遇していません。OSに関係なく、すべての生徒が同じシーケンスを取得します。興味深いことに、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 の OS またはバージョンを知ることが役立つ場合があります。

4

1 に答える 1

2

RNGKind を変更した人の話を聞いたことがありますが、ジェネレーターを変更したパッケージや変更を行った他のスクリプトを読み込んで実行することで、気づかないことがありました。その場合、同じシードが異なる乱数につながります。R を新たに実行すると (別のパッケージや他のスクリプトをロードせずに)、同じシードから同じ乱数が生成されます。

于 2012-07-19T19:34:24.043 に答える