La generación de variables aleatorias no uniformes o el muestreo de números pseudoaleatorios es la práctica numérica de generar números pseudoaleatorios (NPA) que siguen una distribución de probabilidad dada . Los métodos suelen basarse en la disponibilidad de un generador de NPA con distribución uniforme . A continuación, se utilizan algoritmos computacionales para manipular una única variable aleatoria , X , o a menudo varias de ellas, para obtener una nueva variable aleatoria Y, de modo que estos valores tengan la distribución requerida. Los primeros métodos se desarrollaron para simulaciones de Montecarlo en el Proyecto Manhattan , publicados por John von Neumann a principios de la década de 1950. [ 1 ]
Distribuciones discretas finitas
Para una distribución de probabilidad discreta con un número finito n de índices en los que la función de masa de probabilidad f toma valores distintos de cero, el algoritmo de muestreo básico es sencillo. El intervalo [ 0, 1 ) se divide en n intervalos [0, f (1)), [ f (1), f (1) + f (2)), ... El ancho del intervalo i es igual a la probabilidad f ( i ). Se extrae un número pseudoaleatorio X con distribución uniforme y se busca el índice i del intervalo correspondiente. El i así determinado tendrá la distribución f ( i ).
Formalizar esta idea resulta más sencillo utilizando la función de distribución acumulativa.
Es conveniente establecer F (0) = 0. Los n intervalos son entonces simplemente [ F (0), F (1)), [ F (1), F (2)), ..., [ F ( n − 1), F ( n )). La tarea computacional principal es entonces determinar i para el cual F ( i − 1) ≤ X < F ( i ).
Esto se puede hacer mediante diferentes algoritmos:
- Búsqueda lineal , tiempo de cálculo lineal en n .
- Búsqueda binaria , el tiempo de cálculo es proporcional a log n .
- Búsqueda indexada , [ 2 ] también llamada método de punto de corte . [ 3 ]
- Método de alias , el tiempo de cálculo es constante, utilizando algunas tablas precalculadas.
- Existen otros métodos que requieren un tiempo constante. [ 4 ]
Distribuciones continuas
Métodos genéricos para generar muestras independientes :
- Muestreo por rechazo para funciones de densidad arbitrarias
- Muestreo de transformada inversa para distribuciones cuya función de distribución acumulada (FDA) es conocida.
- Relación de uniformes , combinando un cambio de variables y muestreo por rechazo
- Muestreo de rebanadas
- Algoritmo de Ziggurat , para funciones de densidad monótonamente decrecientes y distribuciones unimodales simétricas.
- El generador de números aleatorios por convolución no es un método de muestreo en sí mismo: describe el uso de la aritmética sobre uno o más métodos de muestreo existentes para generar distribuciones más complejas.
Métodos genéricos para generar muestras correlacionadas (a menudo necesarios para distribuciones con formas inusuales o de alta dimensionalidad):
- Cadena de Markov Monte Carlo , el principio general
- Algoritmo de Metrópolis-Hastings
- Muestreo de Gibbs
- Muestreo de rebanadas
- Método de Monte Carlo de cadena de Markov con salto reversible , cuando el número de dimensiones no es fijo (por ejemplo, al estimar un modelo de mezcla y, simultáneamente, estimar el número de componentes de la mezcla).
- Filtros de partículas , cuando los datos observados están conectados en una cadena de Markov y deben procesarse secuencialmente.
Para generar una distribución normal :
Para generar una distribución de Poisson :
Bibliotecas de software
Véase también
- Distribución beta#Generación de variables aleatorias
- Distribución de Dirichlet#Generación de variables aleatorias
- Distribución exponencial#Generación de variables aleatorias
- Distribución gamma#Generación de variables aleatorias
- Distribución geométrica#Generación de variables aleatorias
- Distribución de Gumbel#Generación de variables aleatorias
- Distribución de Laplace#Generación de variables aleatorias
- Distribución multinomial#Distribución de variable aleatoria
- Distribución de Pareto#Generación de variables aleatorias
- Distribución de Poisson#Generación de variables aleatorias
Notas a pie de página
- ↑ Von Neumann, John (1951). "Varias técnicas utilizadas en relación con dígitos aleatorios" (PDF) . En Householder, AS; Forsythe, GE; Germond, HH (eds.). Métodos de Monte Carlo . Serie de Matemáticas Aplicadas de la Oficina Nacional de Estándares. Vol. 12. Oficina de Imprenta del Gobierno de EE. UU. pp. 36–38 . Archivado del original (PDF) el 10-09-2022 . Recuperado el 06-04-2018 .
Cualquiera que considere métodos aritméticos para producir dígitos aleatorios está, por supuesto, en estado de pecado.
También está disponible en línea una copia escaneada de baja calidad de la publicación original . - ↑ Ripley (1987)
- ↑ Fishman (1996)
- ↑ Fishman (1996)
- ↑ "Distribuciones de números aleatorios - Documentación de GSL 2.7" . El sistema operativo GNU y el movimiento del software libre . Consultado el 18 de agosto de 2022 .
Literatura
- Devroye, L. (1986) Generación de variables aleatorias no uniformes . Nueva York: Springer
- Fishman, GS (1996) Monte Carlo. Conceptos, algoritmos y aplicaciones . Nueva York: Springer
- Hörmann, W.; J Leydold, G Derflinger (2004,2011) Generación automática de variables aleatorias no uniformes . Berlín: Springer.
- Knuth, DE (1997) El arte de la programación informática , Vol. 2 Algoritmos seminuméricos , Capítulo 3.4.1 (3.ª edición).
- Ripley, BD (1987) Simulación estocástica . Wiley.
- Generadores de números pseudoaleatorios
- Números aleatorios no uniformes