47 votos

¿Cuándo utilizar las simulaciones?

Así que esta es una pregunta muy simple y básica. Sin embargo, cuando estaba en la escuela, presté muy poca atención a todo el concepto de las simulaciones en clase y eso me ha dejado un poco aterrorizado de ese proceso.

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

  2. ¿Cuáles son algunas de las situaciones/problemas prácticos en los que se utilizan las simulaciones?

Preferiría que los ejemplos que se den sean en R.

46voto

jldugger Puntos 7490

A modelo cuantitativo emula algún comportamiento del mundo mediante (a) la representación de objetos por algunas de sus propiedades numéricas y (b) la combinación de esos números de una manera definida para producir salidas numéricas que también representan propiedades de interés.

Figure 1: a deterministic model

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

Como ejemplo, tal vez el modelo anterior sume sus tres entradas. R El código de este modelo podría ser el siguiente

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 es simplemente un número,

-0.1

No podemos conocer el mundo a la perfección: Aunque el modelo funcione exactamente igual que el mundo, nuestra información es imperfecta y las cosas en el mundo varían. Las simulaciones (estocásticas) nos ayudan a entender cómo esa incertidumbre y variación en las entradas del modelo deberían traducirse en incertidumbre y variación en los resultados. Lo hacen variando las entradas al azar, ejecutando el modelo para cada variación y resumiendo el resultado colectivo.

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

Figure: Random inputs

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

La figura muestra las frecuencias con histogramas para representar las distribuciones de los números. El previsto Las frecuencias de entrada se muestran para las entradas de la izquierda, mientras que las calculado La frecuencia de salida, 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 utiliza en una simulación estocástica, el resultado es una distribución (como el largo gris que se muestra a la derecha). La dispersión de la distribución de los resultados nos indica cómo se puede esperar que varíen los resultados 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 resultado se ha resumido con un histograma de todos los números generados al iterar el modelo con estas entradas aleatorias:

Histogram

Mirando entre bastidores, 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)

La salida muestra los cinco primeros de $100,000$ iteraciones, con una columna por iteración:

        [,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 pueden utilizarse en todas partes. En la práctica, el coste previsto de la realización de la simulación debería ser menor que el beneficio probable. ¿Cuáles son las ventajas de comprender y cuantificar la variabilidad? Hay dos áreas principales en las que esto es importante:

  • En busca de la verdad como en la ciencia y el derecho. Un número por sí mismo es útil, pero es mucho más útil saber lo exacto o seguro que es ese número.

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

Los sistemas informáticos se han vuelto lo suficientemente potentes como para ejecutar modelos realistas y complejos de forma repetida. Los programas informáticos han evolucionado para poder generar y resumir valores aleatorios de forma rápida y sencilla (como el segundo R ejemplo). Estos dos factores se han combinado en los últimos 20 años (y más) hasta el punto de que la simulación es una rutina. Lo que queda es ayudar a la gente (1) a especificar las distribuciones adecuadas de las entradas y (2) a entender la distribución de las salidas. Este es el ámbito del pensamiento humano, en el que los ordenadores han sido hasta ahora de poca ayuda.

34voto

Dipstick Puntos 4869

En primer lugar, permítame decir que no hay una respuesta única para su pregunta. Hay múltiples ejemplos de cuándo se puede (o debe) utilizar la simulación. Intentaré dar algunos ejemplos a continuación. En segundo lugar, observe que hay múltiples formas de definir una "simulación" Así que la respuesta depende, al menos en parte, de la definición que se elija.

Ejemplos:

1. Usted es un estadístico bayesiano Por lo tanto, la simulación es su método preferido para hacer estadísticas. Hay maneras no basadas en la simulación de acercarse a la estadística bayesiana, pero en la mayoría de los casos se utiliza la simulación. Para saber más consulte "Análisis bayesiano de datos" libro de Gelman (o otros posibles recursos).

2. Quiere evaluar el rendimiento del método estadístico. Digamos que ha diseñado alguna prueba estadística $T$ que fue diseñado para estimar algún parámetro $\theta$ datos empíricos. Ahora quieres comprobar si realmente hace lo que quieres que haga. Podría tomar alguna muestra de datos y utilizar su prueba sobre estos datos - sin embargo si se necesita una prueba estadística para saber el $\theta$ Entonces, ¿cómo sabes si tu prueba funciona bien teniendo sólo los datos ? Por supuesto, puede comparar los resultados con las estimaciones de otra prueba estadística, pero ¿qué ocurre si la otra prueba no estima $\theta$ correctamente ? En este caso puedes utilizar la simulación. Lo que puedes hacer es generar algunos datos falsos dado su parámetro $\theta$ y luego comprobar si su valor estimado es el mismo que el valor real de $\theta$ (que conoces de antemano ya que lo has elegido). El uso de la simulación también le permite comprobar diferentes escenarios (tamaño de la muestra, diferentes distribuciones de datos, diferente cantidad de ruido en sus datos, etc.).

3. No tienes los datos o son muy limitados. Digamos que quieres saber cuál sería el posible resultado de una guerra nuclear. Desgraciadamente (ojalá) no ha habido ninguna guerra nuclear antes, así que no tienes ningún dato. En este caso se puede utilizar una simulación por ordenador en la que se hacen algunas suposiciones sobre la realidad y luego se deja que los ordenadores creen realidades virtuales paralelas en las que se produce la guerra nuclear, de modo que se tienen algunas muestras de posible 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 mediante modelos de regresión y multinivel/jerárquicos" donde describen la estimación bayesiana basada en la simulación como un "siguiente paso" en la modelización de la regresión.

5. Quiere conocer los posibles resultados de un proceso complicado. Imagina que quieres predecir el resultado futuro de algún proceso complicado, el problema es sin embargo que el comportamiento de tu proceso es caótico y dadas diferentes entradas obtienes diferentes salidas, mientras que el número de entradas posibles es muy grande. En general, esto es así porque los métodos de simulación de Montecarlo fueron inventados por los físicos y matemáticos que trabajaban en la bomba nuclear durante la Segunda Guerra Mundial. Con la simulación se prueban diferentes entradas y se recogen muestras para tener una idea general de los posibles resultados.

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

7. Poner a prueba un modelo teórico frente a la realidad. Tienes un modelo teórico que describe algún proceso, por ejemplo, la propagación de una epidemia a través de una red social. Puedes utilizar el modelo para generar algunos datos y así poder comparar si lo simulado es similar a los datos reales. Lada Adamic ofrece múltiples ejemplos de este tipo de uso para el Análisis de Redes Sociales en su Clase de Coursera (ver algunas demostraciones aquí ).

8. Para generar los datos de la "hipótesis 0". Se genera un dato falso (aleatorio) para poder comparar los datos reales con él. Si hubiera efectos o tendencias significativas en sus datos, éstos deberían diferir de los datos generados al azar. Este enfoque es el que defienden Buja et al. (2009) en su artículo "Inferencia estadística para el análisis exploratorio de datos y el diagnóstico de modelos" donde proponen cómo el uso de gráficos podría facilitar un análisis exploratorio de los datos y la comprobación de las hipótesis (véase también la documentación de nullabor paquete R que implementa esas ideas).

22voto

user777 Puntos 10934

Creo que la discusión de la respuesta de TrynnaDoStat ilustra bien la cuestión: utilizamos las simulaciones cuando el problema es imposible de resolver analíticamente (por ejemplo, las distribuciones posteriores de los parámetros en un modelo jerárquico), o cuando simplemente estamos demasiado molestos para dedicar tiempo a elaborar 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 mucho entre los estadísticos. La gente como @whuber puede, aparentemente, echar un vistazo a un problema y ver inmediatamente la solución, mientras que los simples mortales como yo tendremos que considerar cuidadosamente el problema y tal vez hacer algo de lectura antes de escribir una rutina de simulación para hacer el trabajo duro.

Ten en cuenta que las simulaciones no son necesariamente una panacea, ya que con grandes conjuntos de datos, o modelos complicados, o ambas cosas, pasarás enormes cantidades de tiempo (de ordenador) estimando y comprobando tu simulación. Desde luego, no merece la pena el esfuerzo si se puede conseguir el mismo objetivo con una hora de reflexión.

14voto

TrynnaDoStat Puntos 3590

Las simulaciones se hacen a menudo cuando no se puede obtener una forma cerrada para algo (como una distribución) o se quiere una forma minuciosa y rápida de obtener ese algo.

Por ejemplo, digamos que estoy ejecutando una regresión logística utilizando una variable $X$ para explicar $Y$ . Sé que la distribución del coeficiente $\beta$ para $X$ es asintóticamente normal desde la teoría MLE. Pero digamos que estoy interesado en la diferencia de dos probabilidades estimadas $f(\beta) = P(Y=1|X=1) - P(Y=1|X=0)$ . Puede ser muy difícil (o imposible) derivar la distribución exacta de esta función pero, como conozco la distribución de $\beta$ Puedo simular valores de $\beta$ y conéctalo a $f(\beta)$ para obtener una distribución empírica.

11voto

trish Puntos 31

Las simulaciones son una forma excelente de comprobar si se pueden obtener estimaciones útiles de un modelo.

Para ello, se generarán/simularán datos falsos que sigan la distribución implícita en el modelo. A continuación, ajuste su modelo a esos datos. Este es un caso ideal: su modelo es, de hecho, verdadero. Por lo tanto, si el ajuste es ruidoso o inexacto, sabrá que hay un problema en el procedimiento de estimación o en el propio modelo.

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

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


Las simulaciones también se utilizan para realizar comprobación del modelo predictivo como defienden Andrew Gelman y otros. Esto equivale a introducir los datos del predictor en el modelo y luego simular datos de respuesta falsos a partir de la distribución implícita, para ver si los datos simulados se acercan lo suficiente (según el criterio que se utilice) a los reales.

Tenga en cuenta que esto es no lo mismo que sólo calcular los valores ajustados. En un modelo de regresión, por ejemplo, los valores ajustados son promedios condicionales; para realizar una comprobación predictiva de un modelo de regresión, habría que extraer una vez de la distribución gaussiana centrada en cada valor ajustado.

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