2012-07-19 23 views
6

Qualcuno ha esperienza con situazioni in cui set.seed fornisce risultati diversi a seconda del sistema operativo (SO). Ricordo di aver incontrato una situazione simile in una classe su R, in cui alcune persone stavano generando sequenze casuali diverse usando rnorm nonostante avessero impostato il seed iniziale allo stesso valore. Ora, sto dando un corso da solo e non ho incontrato lo stesso problema con rnorm; tutti i miei studenti ottengono la stessa sequenza indipendentemente dal sistema operativo. È interessante notare che lo stesso problema sembra esistere con la funzione mvrnorm del pacchetto MASS.Generazione di numeri casuali diversi tra OS

Tutta la comprensione sarebbe molto apprezzato - Marc

questo esempio:

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 

rendimenti sul mio sistema operativo Windows 7 versione a 64 bit di 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 

Modifica: Potrebbe essere utile sapere se qualcuno non sta ottenendo questi risultati e quale sistema operativo o versioni di R sono stati utilizzati.

+0

State usando tutti la stessa versione di R e/o lo stesso RNGkind? – Dason

+0

@Dason - No, non la penso così. In alcuni casi, potrebbero avere versioni più nuove di R di me stesso. Ma penso che, anche tra gli studenti, stavano ottenendo risultati diversi e il sistema operativo sembrava un possibile comune denominatore. –

+1

No non è. R genera gli stessi RNG e l'unica differenza possibile potrebbe essere la scomposizione della matrice necessaria se si esegue 'mvrnorm' - e ciò potrebbe essere dovuto alle librerie LAPACK/BLAS. Se disegni solo vettori sequenziali, sono abbastanza certo che otterrai gli stessi numeri. R presta attenzione a queste cose. –

risposta

0

Ho sentito parlare di persone che cambiano il RNGKind, a volte senza rendersene conto caricando ed eseguendo un pacchetto che ha cambiato il generatore o qualche altro script che ha apportato la modifica. Se così fosse, lo stesso seme porterebbe a numeri casuali diversi. Una nuova esecuzione di R (senza caricare pacchetti diversi o altri script) dovrebbe generare gli stessi numeri casuali dallo stesso seme.

+3

È anche possibile eseguire 'rm (list = ls (all.names = TRUE))' prima cosa aprendo la sessione R, nel caso in cui '.Random.seed' giace da un'area di lavoro precedentemente salvata. –

Problemi correlati