Una simulación estocástica es una simulación de un sistema que tiene variables que pueden cambiar estocásticamente (aleatoriamente) con probabilidades individuales. [1]
Las realizaciones de estas variables aleatorias se generan y se insertan en un modelo del sistema. Se registran los resultados del modelo y luego se repite el proceso con un nuevo conjunto de valores aleatorios. Estos pasos se repiten hasta que se recopile una cantidad suficiente de datos. Al final, la distribución de los resultados muestra las estimaciones más probables, así como un marco de expectativas sobre en qué rangos de valores es más o menos probable que caigan las variables. [1]
A menudo, las variables aleatorias insertadas en el modelo se crean en una computadora con un generador de números aleatorios (RNG). Las salidas de distribución uniforme U(0,1) del generador de números aleatorios luego se transforman en variables aleatorias con distribuciones de probabilidad que se utilizan en el modelo del sistema. [2]
Estocástico originalmente significaba "perteneciente a la conjetura"; del griego stokhastikos "capaz de adivinar, conjeturar": de stokhazesthai "adivinar"; de stokhos "adivinar, apuntar, apuntar, marcar". El sentido de "determinado al azar" se registró por primera vez en 1934, en el estochastik alemán. [3]
Para determinar el siguiente evento en una simulación estocástica, se calculan las tasas de todos los cambios posibles en el estado del modelo y luego se ordenan en una matriz. A continuación, se toma la suma acumulada de la matriz y la celda final contiene el número R, donde R es la tasa total de eventos. Esta matriz acumulativa ahora es una distribución acumulativa discreta y se puede usar para elegir el siguiente evento seleccionando un número aleatorio z~U(0,R) y eligiendo el primer evento, de modo que z sea menor que la tasa asociada con ese evento. .
Se utiliza una distribución de probabilidad para describir el resultado potencial de una variable aleatoria.
Limita los resultados donde la variable solo puede tomar valores discretos. [4]
Una variable aleatoria X tiene distribución de Bernoulli con parámetro p si tiene dos resultados posibles generalmente codificados 1 (éxito o incumplimiento) o 0 (fracaso o supervivencia) [5] donde están las probabilidades de éxito y fracaso y donde .
Para producir una variable aleatoria X con una distribución de Bernoulli a partir de una distribución uniforme U(0,1) realizada por un generador de números aleatorios, definimos
Definir
Una variable aleatoria Y distribuida binomial con parámetros n y p se obtiene como la suma de n variables aleatorias independientes e idénticamente distribuidas por Bernoulli X 1 , X 2 , ..., X n [4]
Ejemplo: Se lanza una moneda tres veces. Calcula la probabilidad de obtener exactamente dos caras. Este problema se puede resolver observando el espacio muestral. Hay tres formas de conseguir dos caras.
La respuesta es 3/8 (= 0,375). [7]
Un proceso de Poisson es un proceso en el que los eventos ocurren aleatoriamente en un intervalo de tiempo o espacio. [2] [8] La distribución de probabilidad para los procesos de Poisson con tasa constante λ por intervalo de tiempo viene dada por la siguiente ecuación. [4]
Definiendo como el número de eventos que ocurren en el intervalo de tiempo.
Se puede demostrar que los tiempos entre llegadas de eventos se distribuyen exponencialmente con una función de distribución acumulativa (CDF) de . La inversa de la CDF exponencial viene dada por
La simulación de un proceso de Poisson con una tasa constante para el número de eventos que ocurren en el intervalo se puede realizar con el siguiente algoritmo. [9]
Publicado por Dan Gillespie en 1977, y es una búsqueda lineal en la matriz acumulativa. Véase algoritmo de Gillespie .
El algoritmo de simulación estocástica (SSA) de Gillespie es esencialmente un procedimiento exacto para simular numéricamente la evolución temporal de un sistema que reacciona químicamente bien agitado teniendo en cuenta adecuadamente la aleatoriedad inherente a dicho sistema. [10]
Se basa rigurosamente en la misma premisa microfísica que subyace a la ecuación maestra química y ofrece una representación más realista de la evolución de un sistema que la ecuación determinista de velocidad de reacción (RRE) representada matemáticamente por las EDO. [10]
Como ocurre con la ecuación maestra química, la SSA converge, en el límite de un gran número de reactivos, a la misma solución que la ley de acción de masas.
Publicado en 2000 por Gibson y Bruck [11], el siguiente método de reacción mejora con respecto al primer método de reacción al reducir la cantidad de números aleatorios que deben generarse. Para hacer que el muestreo de reacciones sea más eficiente, se utiliza una [cola de prioridad] indexada para almacenar los tiempos de reacción. Para hacer más eficiente el cálculo de las propensiones de reacción, también se utiliza un gráfico de dependencia. Este gráfico de dependencia indica qué propensiones de reacción actualizar después de que se haya activado una reacción en particular. Si bien es más eficiente, el siguiente método de reacción requiere estructuras de datos más complejas que la simulación directa o el primer método de reacción.
Publicado en 2004 [12] y 2005. Estos métodos clasifican la matriz acumulativa para reducir la profundidad de búsqueda promedio del algoritmo. El primero ejecuta una presimulación para estimar la frecuencia de disparo de las reacciones, mientras que el segundo clasifica la matriz acumulativa sobre la marcha.
Publicado en 2006. Se trata de una búsqueda binaria en la matriz acumulativa, lo que reduce la complejidad temporal del peor de los casos del muestreo de reacción a O (log M).
Publicado en 2009, 2010 y 2011 (Ramaswamy 2009, 2010, 2011). Utilice propensiones de reacción parciales factorizadas para reducir el costo computacional a escala con la cantidad de especies en la red, en lugar de la cantidad (mayor) de reacciones. Existen cuatro variantes:
El uso de métodos de propensión parcial se limita a reacciones químicas elementales, es decir, reacciones con como máximo dos reactivos diferentes. Cada reacción química no elemental se puede descomponer de manera equivalente en un conjunto de reacciones elementales, a expensas de un aumento lineal (en el orden de la reacción) en el tamaño de la red.
Un inconveniente general de las simulaciones estocásticas es que, en sistemas grandes, ocurren demasiados eventos que no todos pueden tenerse en cuenta en una simulación. Los siguientes métodos pueden mejorar drásticamente la velocidad de simulación mediante algunas aproximaciones.
Dado que el método SSA realiza un seguimiento de cada transición, no sería práctico implementarlo en determinadas aplicaciones debido a la gran complejidad del tiempo. Gillespie propuso un procedimiento de aproximación, el método del salto tau , que reduce el tiempo de cálculo con una pérdida mínima de precisión. [13] En lugar de tomar pasos incrementales en el tiempo, realizando un seguimiento de X ( t ) en cada paso de tiempo como en el método SSA, el método de salto tau salta de un subintervalo al siguiente, aproximando cuántas transiciones tienen lugar durante un período determinado. subintervalo. Se supone que el valor del salto, τ, es lo suficientemente pequeño como para que no haya cambios significativos en el valor de las tasas de transición a lo largo del subintervalo [ t , t + τ ]. Esta condición se conoce como condición de salto. Por lo tanto, el método de salto tau tiene la ventaja de simular muchas transiciones en un solo salto sin perder una precisión significativa, lo que resulta en una aceleración en el tiempo de cálculo. [14]
Este método se aproxima a los procesos reversibles (que incluyen procesos de paseo aleatorio/difusión) teniendo en cuenta sólo las tasas netas de los eventos opuestos de un proceso reversible. La principal ventaja de este método es que se puede implementar con una simple declaración if reemplazando las tasas de transición anteriores del modelo con tasas nuevas y efectivas. De este modo, el modelo con las tasas de transición sustituidas se puede resolver, por ejemplo, con el SSA convencional. [15]
Mientras que en el espacio de estados discretos se distingue claramente entre estados (valores) particulares, en el espacio continuo no es posible debido a cierta continuidad. El sistema generalmente cambia con el tiempo, las variables del modelo, y luego también cambian continuamente. La simulación continua simula así el sistema a lo largo del tiempo, dadas las ecuaciones diferenciales que determinan las tasas de cambio de las variables de estado. [16] Un ejemplo de sistema continuo es el modelo depredador/presa [17] o el equilibrio entre vagones y postes [18]
Se dice que la variable aleatoria X tiene una distribución normal con parámetros μ y σ , abreviados por X ∈ N ( μ , σ 2 ) , si la densidad de la variable aleatoria viene dada por la fórmula [4]
En realidad, muchas cosas tienen una distribución normal o muy cercana a ella. Por ejemplo, la altura y la inteligencia se distribuyen aproximadamente de forma normal ; Los errores de medición también suelen tener una distribución normal . [19]
La distribución exponencial describe el tiempo entre eventos en un proceso de Poisson , es decir, un proceso en el que los eventos ocurren de forma continua e independiente a una velocidad promedio constante.
La distribución exponencial es popular, por ejemplo, en la teoría de colas cuando queremos modelar el tiempo que tenemos que esperar hasta que ocurra un determinado evento. Los ejemplos incluyen el tiempo hasta que el próximo cliente ingresa a la tienda, el tiempo hasta que una determinada empresa incumpla o el tiempo hasta que alguna máquina tenga un defecto. [4]
La distribución t de Student se utiliza en finanzas como modelos probabilísticos de rendimiento de activos. La función de densidad de la distribución t viene dada por la siguiente ecuación: [4]
Para valores grandes de n , la distribución t no difiere significativamente de una distribución normal estándar . Por lo general, para valores n > 30, la distribución t se considera igual a la distribución normal estándar .
A menudo es posible modelar un mismo sistema utilizando visiones del mundo completamente diferentes. La simulación de eventos discretos de un problema, así como la simulación de eventos continuos del mismo (simulación continua con eventos discretos que interrumpen el flujo continuo) pueden conducir eventualmente a las mismas respuestas. A veces, sin embargo, las técnicas pueden responder diferentes preguntas sobre un sistema. Si necesariamente necesitamos responder a todas las preguntas, o si no sabemos para qué se va a utilizar el modelo, es conveniente aplicar la metodología combinada continua/discreta . [20] Técnicas similares pueden cambiar de una descripción estocástica discreta a una descripción continua determinista de una manera dependiente del tiempo y el espacio. [21] El uso de esta técnica permite capturar el ruido debido a un pequeño número de copias, siendo mucho más rápido de simular que el algoritmo de Gillespie convencional. Además, el uso de la descripción continua determinista permite simulaciones de sistemas arbitrariamente grandes.
Monte Carlo es un procedimiento de estimación. La idea principal es que si es necesario conocer el valor promedio de alguna variable aleatoria y no se puede establecer su distribución, y si es posible tomar muestras de la distribución, podemos estimarla tomando las muestras, de forma independiente, y promediando. a ellos. Si hay suficientes muestras, entonces la ley de los grandes números dice que el promedio debe estar cerca del valor real. El teorema del límite central dice que el promedio tiene una distribución gaussiana alrededor del valor verdadero. [22]
Como ejemplo sencillo, supongamos que necesitamos medir el área de una forma con un contorno irregular y complicado. El enfoque de Monte Carlo consiste en dibujar un cuadrado alrededor de la forma y medir el cuadrado. Luego lanzamos dardos al cuadrado, de la forma más uniforme posible. La fracción de dardos que caen sobre la figura da la relación entre el área de la figura y el área del cuadrado. De hecho, es posible formular casi cualquier problema integral, o cualquier problema de promediación, en esta forma. Es necesario tener una buena manera de saber si estás dentro del contorno y una buena manera de saber cuántos dardos lanzar. Por último, pero no menos importante, debemos lanzar los dardos de manera uniforme, es decir, utilizando un buen generador de números aleatorios . [22]
Existen amplias posibilidades de uso del Método Monte Carlo: [1]
Para experimentos de simulación (incluido Monte Carlo) es necesario generar números aleatorios (como valores de variables). El problema es que la computadora es una máquina altamente determinista : básicamente, detrás de cada proceso siempre hay un algoritmo, un cálculo determinista que cambia las entradas en salidas; por lo tanto, no es fácil generar números aleatorios distribuidos uniformemente en un intervalo o conjunto definido. [1]
Un generador de números aleatorios es un dispositivo capaz de producir una secuencia de números que no pueden identificarse "fácilmente" con propiedades deterministas . Esta secuencia se llama entonces secuencia de números estocásticos . [23]
Los algoritmos generalmente se basan en números pseudoaleatorios , números generados por computadora que imitan números aleatorios verdaderos, para generar una realización, un posible resultado de un proceso. [24]
Los métodos para obtener números aleatorios existen desde hace mucho tiempo y se utilizan en muchos campos diferentes (como los juegos ). Sin embargo, estas cifras adolecen de cierto sesgo. Actualmente, los mejores métodos que se espera produzcan secuencias verdaderamente aleatorias son los métodos naturales que aprovechan la naturaleza aleatoria de los fenómenos cuánticos . [23]