5 votos

¿Existe un límite para el generador de números aleatorios del SPSS?

¿El generador de números aleatorios de SPSS será útil si necesito 250.000 números aleatorios, o la aleatoriedad empezará a degenerar?

Preguntado de otra manera, ¿qué límites prácticos tiene el uso del generador de números aleatorios del SPSS para generar grandes cantidades de números aleatorios?

9voto

user8076 Puntos 16

Creo que el SPSS, como la mayoría de los programas modernos, utiliza el Giro Mersenne . Su período es $2^{19937} 1$ así que estás bastante seguro desde este punto de vista.

Hasta 623 resultados sucesivos no están correlacionados, por lo que se pueden considerar con seguridad algunos resultados consecutivos como independientes (no sería el caso de un Generador congruente lineal ).

Resumiendo: los generadores de números aleatorios modernos tienen un rendimiento suficiente para todas las aplicaciones ordinarias en estadística... no te preocupes.

0 votos

Gracias por su respuesta. Permítame hacer una pregunta complementaria. Usted dice: <Hasta 623 resultados sucesivos no están correlacionados> ¿Qué tamaño de correlación podría verse en los números más allá de 623?

0 votos

Para ser más precisos: si se utilizan los números completos de 32 bits que genera, los vectores de longitud 624 no están equidistribuidos. Así que si se utiliza el método de Monte Carlo para calcular $\int_{x \in [0,1]^{624}} f(x) \mathrm d x$ no deberías usar Mersenne Twister - al menos en teoría, en la práctica para formas razonables $f$ esto debería estar bien, y no creo que este sea el principal problema con el que te encuentres. Si utilizas sólo los bits más significativos (digamos los 16 bits superiores), creo que puedes ir más allá, pero no lo sé con precisión.

0 votos

Además, si se conocen 624 salidas sucesivas, se puede recuperar el estado interno del generador y predecir alol su comportamiento, pero esto no es un problema real para las aplicaciones de Monte Carlo. Por último, si necesita vectores no correlacionados en dimensiones muy elevadas, puede crear su propio generador en la familia de Marsaglia Multiplicativo con generadores de arrastre que son fáciles de tratar.

8voto

talonx Puntos 262

SPSS Statistics proporciona tanto el Mersenne Twister como, por compatibilidad, un generador más antiguo de congruencia de turnos. Por defecto, se utiliza el generador más antiguo. Utilice SET RNG=MT o el Transformación>Generadores de números aleatorios para cambiar esto. La página web MT debería darte todos los números que necesitas.

También hay una función Python aportada por el usuario que obtiene números verdaderamente aleatorios, no pseudoaleatorios, generados a partir del ruido atmosférico. Estos se obtienen de un sitio web que tiene algunas reglas sobre las cantidades que deberías leer. El paquete es tr_rnd0.1.zip . Puede descargarse de la página web Sitio web de la Comunidad SPSS en la colección de módulos de Python. Por supuesto, esto requiere que utilices la programabilidad de Python. Las herramientas para ello también pueden descargarse del sitio de la Comunidad.

0voto

kolen Puntos 712

He utilizado la función uniforme del SPSS para crear una muestra aleatoria semanal durante dos años. No haga esto. NO se generan muestras aleatorias. El mismo conjunto de datos generará la misma muestra aleatoria al volver a abrir el SPSS. No todos los casos tienen la misma probabilidad de ser seleccionados (depende de la ordenación de su archivo).

Mi recomendación sería utilizar varios métodos de aleatorización de forma secuencial. Por ejemplo, primero aleatorizar la ordenación y luego utilizar la función de selección de muestra aleatoria.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X