2012-07-19 15 views
6

Hat jemand Erfahrung mit Situationen, in denen set.seed je nach Betriebssystem (OS) unterschiedliche Ergebnisse liefert. Ich erinnere mich an eine ähnliche Situation in einer Klasse auf R, bevor einige Leute verschiedene Zufallssequenzen mit Hilfe von rnorm erzeugten, obwohl sie den Anfangssamen auf denselben Wert setzten. Jetzt gebe ich selbst einen Kurs und bin nicht mit rnorm auf dasselbe Problem gestoßen; Alle meine Schüler erhalten unabhängig vom Betriebssystem die gleiche Sequenz. Interessanterweise scheint dasselbe Problem mit der mvrnorm-Funktion des MASS-Pakets zu existieren.Unterschiedliche Zufallszahlengenerierung zwischen OS

würde Einsicht sehr geschätzt - Marc

Dieses Beispiel:

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 

Renditen auf meinem Windows 7 OS 64-Bit-Version von 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 

Edit: Es könnte hilfreich sein zu wissen, ob jemand diese Ergebnisse nicht erhält und welches Betriebssystem oder welche Versionen von R verwendet wurden.

+0

Haben Sie alle dieselbe Version von R und/oder denselben RNGKind verwendet? – Dason

+0

@Dason - Nein, ich denke nicht. In einigen Fällen haben sie möglicherweise neuere Versionen von R als ich. Aber ich denke, sogar zwischen den Studenten bekamen sie unterschiedliche Ergebnisse und OS schien ein möglicher gemeinsamer Nenner. –

+1

Nein ist es nicht. R erzeugt die RNGs selbst, und der einzige mögliche Unterschied ist vielleicht die Matrixzerlegung, die benötigt wird, wenn Sie 'mvrnorm' machen - und das kann an den LAPACK/BLAS-Bibliotheken liegen. Wenn Sie nur sequentielle Vektoren zeichnen, bin ich ziemlich sicher, dass Sie die gleichen Zahlen erhalten werden. R achtet auf diese Dinge. –

Antwort

0

Ich habe von Leuten gehört, die den RNGKind ändern, manchmal ohne es zu merken, indem sie ein Paket geladen und laufen ließen, das den Generator oder irgendein anderes Skript änderte, das die Änderung machte. Wenn dies der Fall wäre, würde derselbe Samen zu verschiedenen Zufallszahlen führen. Ein neuer Lauf von R (ohne das Laden verschiedener Pakete oder anderer Skripte) sollte die gleichen Zufallszahlen aus dem gleichen Seed erzeugen.

+3

Möglich ist auch, 'rm (list = ls (all.names = TRUE))' 'als erstes beim Öffnen der R-Session auszuführen, falls ein' .Random.seed' aus einem zuvor gespeicherten Arbeitsbereich herumliegt. –

Verwandte Themen