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]
Se generan realizaciones de estas variables aleatorias 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 recopila 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 se encuentren 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 se transforman luego en variables aleatorias con distribuciones de probabilidad que se utilizan en el modelo del sistema. [2]
Estocástico originalmente significaba "relativo a la conjetura"; del griego stokhastikos "capaz de adivinar, conjeturar"; de stokhazesthai "adivinar"; de stokhos "una suposición, objetivo, blanco, marca". El sentido de "determinado aleatoriamente" fue registrado por primera vez en 1934, del alemán Stochastik. [3]
Para determinar el próximo 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 acumulativa de la matriz y la celda final contiene el número R, donde R es la tasa total de eventos. Esta matriz acumulativa es ahora una distribución acumulativa discreta y se puede utilizar para elegir el próximo evento eligiendo 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.
Una distribución de probabilidad se utiliza para describir el resultado potencial de una variable aleatoria.
Limita los resultados donde la variable sólo puede tomar valores discretos. [4]
Una variable aleatoria X tiene una distribución de Bernoulli con el parámetro p si tiene dos resultados posibles, generalmente codificados como 1 (éxito o incumplimiento) o 0 (fracaso o supervivencia) [5], donde las probabilidades de éxito y fracaso son y donde .
Para producir una variable aleatoria X con una distribución de Bernoulli a partir de una distribución uniforme U(0,1) hecha por un generador de números aleatorios, definimos tal que la probabilidad para y . [2]
Definir Para una moneda justa, ambas realizaciones son igualmente probables. Podemos generar realizaciones de esta variable aleatoria X a partir de una distribución uniforme proporcionada por un generador de números aleatorios (RNG) al tener si el RNG genera un valor entre 0 y 0,5 y si el RNG genera un valor entre 0,5 y 1. Por supuesto, los dos resultados pueden no ser igualmente probables (por ejemplo, el éxito de un tratamiento médico). [6]
Una variable aleatoria distribuida binomialmente Y con parámetros n y p se obtiene como la suma de n variables aleatorias independientes e idénticamente distribuidas según Bernoulli X 1 , X 2 , ..., X n [4]
Ejemplo: Se lanza una moneda tres veces. Halla la probabilidad de obtener exactamente dos caras. Este problema se puede resolver observando el espacio muestral. Hay tres formas de obtener 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 está dada por la siguiente ecuación. [4]
Se define 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 está dada por donde es una variable aleatoria distribuida uniformemente. [2]
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, 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 de reacción química 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 proporciona una representación más realista de la evolución de un sistema que la ecuación de velocidad de reacción determinista (RRE) representada matemáticamente por EDO. [10]
Al igual que la ecuación maestra química, la SSA converge, en el límite de grandes números de reactivos, a la misma solución que la ley de acción de masas.
Publicado en 2000 por Gibson y Bruck [11], el método de la siguiente reacción mejora el método de la primera reacción al reducir la cantidad de números aleatorios que se deben generar. Para que el muestreo de reacciones sea más eficiente, se utiliza una [cola de prioridad] indexada para almacenar los tiempos de reacción. Para que el cálculo de las propensiones de reacción sea más eficiente, también se utiliza un gráfico de dependencia. Este gráfico de dependencia indica qué propensiones de reacción se deben actualizar después de que se haya desencadenado una reacción particular. Si bien es más eficiente, el método de la siguiente reacción requiere estructuras de datos más complejas que la simulación directa o el método de la primera reacción.
Publicado en 2004 [12] y 2005. Estos métodos ordenan la matriz acumulativa para reducir la profundidad de búsqueda promedio del algoritmo. El primero ejecuta una presimulación para estimar la frecuencia de activación de las reacciones, mientras que el segundo ordena la matriz acumulativa sobre la marcha.
Publicado en 2006. Se trata de una búsqueda binaria en la matriz acumulativa, reduciendo así la complejidad temporal del peor caso del muestreo de reacción a O (log M).
Publicado en 2009, 2010 y 2011 (Ramaswamy 2009, 2010, 2011). Utiliza propensiones de reacción parciales factorizadas para reducir el costo computacional y escalar con la cantidad de especies en la red, en lugar de la cantidad (mayor) de reacciones. Existen cuatro variantes:
El uso de los métodos de propensión parcial se limita a las reacciones químicas elementales, es decir, reacciones con dos reactivos diferentes como máximo. Toda reacción química no elemental se puede descomponer de forma equivalente en un conjunto de reacciones elementales, a expensas de un aumento lineal (en el orden de la reacción) del tamaño de la red.
Una desventaja general de las simulaciones estocásticas es que, en el caso de sistemas grandes, ocurren demasiados eventos que no se pueden tener en cuenta en una simulación. Los siguientes métodos pueden mejorar drásticamente la velocidad de la simulación mediante algunas aproximaciones.
Dado que el método SSA realiza un seguimiento de cada transición, sería poco práctico implementarlo para ciertas aplicaciones debido a la alta complejidad temporal. Gillespie propuso un procedimiento de aproximación, el método de salto tau que disminuye el tiempo computacional 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 subintervalo dado. Se supone que el valor del salto, τ, es lo suficientemente pequeño como para que no haya un cambio significativo en el valor de las tasas de transición a lo largo del subintervalo [ t , t + τ ]. Esta condición se conoce como la condición de salto. El método de salto tau tiene, por lo tanto, la ventaja de simular muchas transiciones en un salto sin perder precisión significativa, lo que resulta en una aceleración en el tiempo computacional. [14]
Este método aproxima los procesos reversibles (que incluyen los procesos de difusión/caminata aleatoria) tomando en cuenta únicamente 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 que reemplaza las tasas de transición anteriores del modelo con nuevas tasas efectivas. El modelo con las tasas de transición reemplazadas se puede resolver, por ejemplo, con el SSA convencional. [15]
Mientras que en el espacio de estados discretos se distingue claramente entre estados particulares (valores), en el espacio continuo esto no es posible debido a cierta continuidad. El sistema suele cambiar con el tiempo, las variables del modelo también cambian continuamente. La simulación continua simula 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 de carros con postes [18].
Se dice que la variable aleatoria X se distribuye normalmente con parámetros μ y σ , abreviado 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 tienen una distribución aproximadamente 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 tasa 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 se produzca un determinado acontecimiento. Algunos ejemplos son el tiempo que transcurre hasta que el siguiente cliente entra en la tienda, el tiempo que transcurre hasta que una determinada empresa deja de pagar o el tiempo que transcurre hasta que una máquina presenta un defecto. [4]
Las distribuciones t de Student se utilizan en finanzas como modelos probabilísticos de rendimientos de activos. La función de densidad de la distribución t viene dada por la siguiente ecuación: [4] donde es el número de grados de libertad y es la función gamma .
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 mediante el uso de 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 los eventos discretos que interrumpen el flujo continuo) pueden conducir eventualmente a las mismas respuestas. Sin embargo, a veces, las técnicas pueden responder diferentes preguntas sobre un sistema. Si necesariamente necesitamos responder a todas las preguntas, o si no sabemos para qué propósitos se utilizará el modelo, es conveniente aplicar una metodología continua/discreta combinada . [20] Técnicas similares pueden cambiar de una descripción discreta y estocástica a una descripción determinista y continua de una manera dependiente del tiempo y el espacio. [21] El uso de esta técnica permite la captura de ruido debido a pequeños números de copias, al mismo tiempo que es mucho más rápido de simular que el algoritmo Gillespie convencional. Además, el uso de la descripción determinista continua permite las 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 determinar su distribución, y si es posible tomar muestras de la distribución, podemos estimarla tomando las muestras, de forma independiente, y promediándolas. Si hay suficientes muestras, entonces la ley de los grandes números dice que el promedio debe estar cerca del valor verdadero. El teorema del límite central dice que el promedio tiene una distribución gaussiana alrededor del valor verdadero. [22]
Como ejemplo simple, supongamos que necesitamos medir el área de una forma con un contorno complicado e irregular. El método de Monte Carlo consiste en dibujar un cuadrado alrededor de la forma y medirlo. Luego, lanzamos dardos al cuadrado, de la manera más uniforme posible. La fracción de dardos que caen sobre la forma da la relación entre el área de la forma y el área del cuadrado. De hecho, es posible formular casi cualquier problema integral, o cualquier problema de promedio, en esta forma. Es necesario tener una buena manera de saber si estás dentro del contorno y una buena manera de calcular cuántos dardos lanzar. Por último, pero no menos importante, necesitamos 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 de Monte Carlo: [1]
Para los experimentos de simulación (incluido el de 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 por salidas; por lo tanto, no es fácil generar números aleatorios distribuidos uniformemente sobre 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 se pueden identificar "fácilmente" con propiedades deterministas . Esta secuencia se denomina 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, estos números sufren un cierto sesgo. Actualmente, los mejores métodos que se espera que produzcan secuencias verdaderamente aleatorias son los métodos naturales que aprovechan la naturaleza aleatoria de los fenómenos cuánticos . [23]