2012-07-19 19 views
6

¿Alguien tiene alguna experiencia con situaciones donde set.seed arroja resultados diferentes según el sistema operativo (SO)? Recuerdo que me encontré con una situación similar en una clase en R antes, donde algunas personas generaban diferentes secuencias aleatorias utilizando rnorm a pesar de establecer la semilla inicial en el mismo valor. Ahora, estoy dando un curso y no he tenido el mismo problema con rnorm; todos mis alumnos obtienen la misma secuencia independientemente del sistema operativo. Curiosamente, parece existir el mismo problema con la función mvrnorm del paquete MASS.Generación de números aleatorios diferentes entre OS

Cualquier idea sería muy apreciada - Marc

Este ejemplo:

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 

Los rendimientos de mi sistema operativo Windows 7 versión de 64 bits de 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 

Editar: puede ser útil saber si alguien no está obteniendo estos resultados y qué sistema operativo o versiones de R se utilizaron.

+0

¿Estabas usando la misma versión de R y/o el mismo RNGkind? – Dason

+0

@Dason - No, no lo creo. En algunos casos, pueden tener versiones más nuevas de R que yo. Pero creo que, incluso entre los estudiantes, estaban obteniendo resultados diferentes y el sistema operativo parecía ser un posible denominador común. –

+1

No, no es así. R genera los RNG en sí, y la única diferencia posible tal vez sea la descomposición de la matriz si haces 'mvrnorm', y eso puede deberse a las bibliotecas LAPACK/BLAS. Si dibujas solo vectores secuenciales, estoy bastante seguro de que obtendrás los mismos números. R presta atención a estas cosas. –

Respuesta

0

He oído hablar de personas cambiando el RNGKind, a veces sin darse cuenta al cargar y ejecutar un paquete que cambió el generador o alguna otra secuencia de comandos que realizó el cambio. Si ese fuera el caso, la misma semilla daría lugar a diferentes números aleatorios. Una ejecución nueva de R (sin cargar diferentes paquetes u otros scripts) debería generar los mismos números aleatorios de la misma semilla.

+3

También posiblemente ejecute 'rm (list = ls (all.names = TRUE))' primero al abrir la sesión R, en caso de que '.Random.seed' se encuentre en un espacio de trabajo previamente guardado. –

Cuestiones relacionadas