¿Cuándo usar simulaciones?


40

Entonces esta es una pregunta muy simple y estúpida. Sin embargo, cuando estaba en la escuela, presté muy poca atención al concepto completo de simulaciones en clase y eso me dejó un poco aterrorizado de ese proceso.

  1. ¿Puedes explicar el proceso de simulación en términos simples? (podría ser para generar datos, coeficientes de regresión, etc.)

  2. ¿Cuáles son algunas situaciones / problemas prácticos cuando uno usaría simulaciones?

Preferiría cualquier ejemplo dado para estar en R.


10
(2) ya tiene más de mil respuestas en este sitio: busque simulación .
whuber

@Tim Lo único que no está de acuerdo en mi comentario es que nuestro sitio tiene más de mil respuestas que contienen simulaciones, pero ese es un hecho objetivo cuya verdad puede verificar usted mismo. No hice ningún reclamo, explícito o implícito, de que esto represente una lista completa o representativa de nada. Sin embargo, como conjunto de ejemplos reales, es mucho más rico y detallado de lo que cualquier respuesta individual podría esperar lograr y, como tal, es un recurso valioso para cualquier persona que desee continuar con la pregunta (2).
whuber

@whuber ok, buen punto.
Tim

Respuestas:


42

Un modelo cuantitativo emula cierto comportamiento del mundo (a) representando objetos por algunas de sus propiedades numéricas y (b) combinando esos números de una manera definida para producir salidas numéricas que también representan propiedades de interés.

Figura 1: un modelo determinista

En este esquema, se combinan tres entradas numéricas a la izquierda para producir una salida numérica a la derecha. Las líneas numéricas indican posibles valores de las entradas y salidas; los puntos muestran valores específicos en uso. Hoy en día, las computadoras digitales suelen realizar los cálculos, pero no son esenciales: los modelos se han calculado con lápiz y papel o mediante la construcción de dispositivos "analógicos" en madera, metal y circuitos electrónicos.

Como ejemplo, quizás el modelo anterior suma sus tres entradas. Rel código para este modelo podría verse así

inputs <- c(-1.3, 1.2, 0) # Specify inputs (three numbers)
output <- sum(inputs)     # Run the model
print(output)             # Display the output (a number)

Su salida simplemente es un número,

-0,1

No podemos conocer el mundo a la perfección: incluso si el modelo funciona exactamente como lo hace el mundo, nuestra información es imperfecta y las cosas en el mundo varían. Las simulaciones (estocásticas) nos ayudan a comprender cómo esa incertidumbre y variación en las entradas del modelo deberían traducirse en incertidumbre y variación en las salidas. Lo hacen variando las entradas al azar, ejecutando el modelo para cada variación y resumiendo la salida colectiva.

"Aleatoriamente" no significa arbitrariamente. El modelador debe especificar (ya sea a sabiendas o no, explícita o implícitamente) las frecuencias previstas de todas las entradas. Las frecuencias de las salidas proporcionan el resumen más detallado de los resultados.

Figura: Entradas aleatorias

El mismo modelo, que se muestra con entradas aleatorias y la salida aleatoria resultante (calculada).

La figura muestra frecuencias con histogramas para representar distribuciones de números. Las frecuencias de entrada previstas se muestran para las entradas a la izquierda, mientras que la frecuencia de salida calculada , obtenida al ejecutar el modelo muchas veces, se muestra a la derecha.

Cada conjunto de entradas a un modelo determinista produce una salida numérica predecible. Sin embargo, cuando el modelo se usa en una simulación estocástica, la salida es una distribución (como la larga gris que se muestra a la derecha). La distribución de la distribución de salida nos dice cómo se puede esperar que varíen las salidas del modelo cuando varían sus entradas.

El ejemplo de código anterior podría modificarse así para convertirlo en una simulación:

n <- 1e5 # Number of iterations
inputs <- rbind(rgamma(n, 3, 3) - 2,
                runif(n, -2, 2),
                rnorm(n, 0, 1/2))
output <- apply(inputs, 2, sum)
hist(output, freq=FALSE, col="Gray")

Su salida se ha resumido con un histograma de todos los números generados iterando el modelo con estas entradas aleatorias:

Histograma

Mirando detrás de escena, podemos inspeccionar algunas de las muchas entradas aleatorias que se pasaron a este modelo:

rownames(inputs) <- c("First", "Second", "Third")
print(inputs[, 1:5], digits=2)

100,000

        [,1]  [,2]  [,3]  [,4]  [,5]
First  -1.62 -0.72 -1.11 -1.57 -1.25
Second  0.52  0.67  0.92  1.54  0.24
Third  -0.39  1.45  0.74 -0.48  0.33

Podría decirse que la respuesta a la segunda pregunta es que las simulaciones se pueden usar en todas partes. Como cuestión práctica, el costo esperado de ejecutar la simulación debería ser menor que el beneficio probable. ¿Cuáles son los beneficios de comprender y cuantificar la variabilidad? Hay dos áreas principales donde esto es importante:

  • Buscando la verdad , como en la ciencia y el derecho. Un número en sí mismo es útil, pero es mucho más útil saber qué tan exacto o seguro es ese número.

  • Toma de decisiones, como en los negocios y la vida cotidiana. Las decisiones equilibran riesgos y beneficios. Los riesgos dependen de la posibilidad de malos resultados. Las simulaciones estocásticas ayudan a evaluar esa posibilidad.

Los sistemas de computación se han vuelto lo suficientemente potentes como para ejecutar modelos realistas y complejos repetidamente. El software ha evolucionado para admitir la generación y el resumen de valores aleatorios de forma rápida y sencilla (como Rmuestra el segundo ejemplo). Estos dos factores se han combinado en los últimos 20 años (y más) hasta el punto en que la simulación es una rutina. Lo que queda es ayudar a las personas (1) a especificar distribuciones apropiadas de entradas y (2) comprender la distribución de salidas. Ese es el dominio del pensamiento humano, donde las computadoras hasta ahora han sido de poca ayuda.


1
¡Qué gran respuesta! Especialmente me gusta "" Aleatoriamente "no significa arbitrariamente".
Haitao Du

29

Primero, déjame decirte que no hay una respuesta única para tu pregunta. Hay varios ejemplos de cuándo puede (o tiene que) usar la simulación. Trataré de darle algunos ejemplos a continuación. En segundo lugar, observe que hay varias formas en que puede definir una "simulación" , por lo que la respuesta depende, al menos en parte, de la definición que elija.

Ejemplos:

1. Usted es un estadístico bayesiano , por lo que la simulación es su método de elección para hacer estadísticas. Existen enfoques de formas no basadas en simulación para las estadísticas bayesianas, sin embargo, en la gran mayoría de los casos se usa la simulación. Para obtener más información, consulte el libro "Análisis de datos bayesianos" de Gelman (u otros recursos posibles).

Tθθθθθ

3. No tiene los datos o es muy limitado. Digamos que quieres saber cuál sería el posible resultado de una guerra nuclear. Desafortunadamente (con suerte) no hubo una guerra nuclear antes, por lo que no tiene ningún dato. En este caso, puede usar la simulación por computadora donde hace algunas suposiciones sobre la realidad y luego deja que las computadoras creen realidades virtuales paralelas donde ocurre la guerra nuclear, por lo que tiene algunas muestras de posibles resultados.

4. Su modelo estadístico no se ajusta al software o es complicado.Este enfoque es defendido, por ejemplo, por Gelman y Hill en "Análisis de datos usando regresión y modelos multinivel / jerárquicos" , donde describen la estimación bayesiana basada en la simulación como un "siguiente paso" en el modelado de regresión.

5. Desea conocer los posibles resultados de un proceso complicado. Imagine que desea pronosticar el resultado futuro de un proceso complicado, sin embargo, el problema es que el comportamiento de su proceso es caótico y, dado que hay diferentes entradas, obtiene diferentes salidas, mientras que el número de entradas posibles es muy grande. En general, este fue el caso porque los métodos de simulación de Monte Carlo fueron inventados por físicos y matemáticos que trabajaban en bombas nucleares durante la Segunda Guerra Mundial. Con la simulación, prueba diferentes entradas y reúne muestras para tener una idea general sobre los posibles resultados.

6. Sus datos no cumplen con los criterios para algún método estadístico , por ejemplo, tiene una distribución sesgada mientras que debería ser normal. En algunos casos esto no es realmente un problema , sin embargo, a veces lo es, por lo que los métodos basados ​​en simulación como bootstrap se inventaron .

7. Probar un modelo teórico contra la realidad. Tiene un modelo teórico que describe algún proceso, por ejemplo, propagación de epidemia a través de una red social. Puede usar el modelo para generar algunos datos para poder comparar si el simulado es similar a los datos reales. Lada Adamic da varios ejemplos de tal uso para el análisis de redes sociales en su clase de Coursera (vea algunas demostraciones aquí ).

8. Generar datos de "hipótesis 0". Genera datos falsos (aleatorios) para comparar los datos reales con ellos. Si hubo algún efecto o tendencia significativa en sus datos, entonces debería diferir de los datos generados al azar. Este enfoque es defendido por Buja et al. (2009) en su documento "Inferencia estadística para análisis de datos exploratorios y diagnósticos de modelos" donde proponen cómo el uso de parcelas podría facilitar un análisis de datos exploratorios y pruebas de hipótesis (ver también la documentación del paquete de nullabor R que implementa esas ideas).


22

Creo que la discusión de la respuesta de TrynnaDoStat ilustra bien el punto: utilizamos simulaciones cada vez que el problema es imposible de resolver analíticamente (por ejemplo, las distribuciones posteriores de parámetros en un modelo jerárquico), o cuando simplemente estamos demasiado molestos para dedicarle tiempo. resolviendo la solución analíticamente.

Según lo que he observado en este sitio web, el umbral de "lo suficientemente molesto como para simular" varía ampliamente entre los estadísticos. Aparentemente, personas como @whuber pueden mirar un problema e inmediatamente ver la solución, mientras que simples mortales como yo tendrán que considerar cuidadosamente el problema y quizás leer un poco antes de escribir una rutina de simulación para hacer el trabajo duro.

Tenga en cuenta que las simulaciones no son necesariamente una panacea, ya que con grandes conjuntos de datos o modelos complicados, o ambos, pasará enormes cantidades de tiempo (en computadora) estimando y verificando su simulación. Ciertamente no vale la pena el esfuerzo si pudiera lograr el mismo objetivo con una hora de cuidadosa consideración.


14

Las simulaciones a menudo se realizan cuando no se puede obtener una forma cerrada para algo (como una distribución) o si se desea una forma rápida y precisa de obtener algo.

XYβXF(β)=PAGS(Y=1El |X=1)-PAGS(Y=1El |X=0 0)ββF(β)


No llamaría a las simulaciones "rápidas", esos son métodos computacionalmente exhaustivos y, a menudo, toman mucho más tiempo que el método ML.
Tim

2
Es muchísimo más rápido que derivar la distribución.
TrynnaDoStat

3
¿Con qué frecuencia ejecuta un algoritmo ML durante más de una semana sin parar ...?
Tim

Tangente re: "la distribución del coeficiente β para X es normal" - No había pensado mucho en esto, pero después de alguna simulación, encuentro que a menudo no es cierto con submuestras de menos de 500 y / o con coeficientes cuyo promedio está más allá de cierta fuerza, digamos, +/- 3. ¿Suena bien?
rolando2

La teoría MLE nos dice que, bajo ciertas condiciones de regularidad, el MLE es asintóticamente normal. Añadiré esto a mi respuesta.
TrynnaDoStat

11

Las simulaciones son una excelente manera de verificar si puede obtener estimaciones útiles de un modelo.

Lo haría generando / simulando datos falsos que siguen la distribución implícita en su modelo. Luego continúe y ajuste su modelo a esos datos. Este es un caso ideal: su modelo es, de hecho, verdadero. Entonces, si el ajuste es ruidoso o inexacto, entonces sabe que hay un problema con el procedimiento de estimación o con el modelo en sí.

Del mismo modo, puede simular datos utilizando el proceso de generación de datos "incorrecto" y utilizar esos datos falsos para evaluar cómo se ven afectadas sus estimaciones al violar los supuestos del modelo. Esto a menudo se llama análisis de sensibilidad .

Estos puntos son similares a los ítems 2 y 8 en la respuesta de Tim, y también una versión algo más ad-hoc del procedimiento en la respuesta de whuber.


Las simulaciones también se utilizan para realizar comprobaciones de modelos predictivos según lo recomendado por Andrew Gelman y otros. Esto equivale a volver a conectar los datos de su predictor al modelo y luego simular los datos de respuesta falsos de la distribución implícita, para ver si sus datos simulados están lo suficientemente cerca (por cualquier criterio que esté usando) a la realidad.

Tenga en cuenta que esto no es lo mismo que calcular valores ajustados. En un modelo de regresión, por ejemplo, los valores ajustados son promedios condicionales; Para ejecutar una verificación predictiva en un modelo de regresión, deberá dibujar una vez desde la distribución gaussiana centrada en cada valor ajustado.


6

El caso más simple para la simulación. Supongamos que tiene un modelo de pronóstico para la cantidad de impagos de préstamos, también tiene un modelo para pérdidas en préstamos en mora. Ahora debe pronosticar la pérdida total que el producto de los valores predeterminados y las pérdidas dadas por defecto. No puede simplemente multiplicar los valores predeterminados y las pérdidas en valores predeterminados para obtener los intervalos de confianza de la pérdida total.

La razón es que si tienes una variable aleatoria Xyo, del cual conoce las densidades, no significa que pueda obtener fácilmente la densidad del producto X1X2. Por otro lado, si conoce la correlación entre los números, es fácil simular los números correlacionados y obtener la distribución simulada de las pérdidas.

Este documento tiene una descripción a nivel de MBA de este caso de uso para la estimación del riesgo de operación, donde tiene las distribuciones de frecuencia y montos de pérdidas, y las combina para obtener la distribución de pérdidas totales.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.