2010-05-26 11 views
14

¿Cuándo se debe usar el método Monte-Carlo?¿Por qué usar el método Monte-Carlo?

Por ejemplo, ¿por qué Joel decidió utilizar el método Monte-Carlo para Evidence Based Scheduling en lugar de procesar metódicamente todos los datos de usuario del año pasado?

+0

¿Qué quiere decir con 'procesar metódicamente' los datos del usuario? muestras aleatorias es una forma bastante básica de sumar curvas de campana, ¿cómo lo harías? – amwinter

+2

¿No podría procesar todos los datos disponibles y presentar las mismas estadísticas diciendo que "el 75% de los datos es mayor que X, el 50% de los datos es mayor que Y, y el 25% de los datos es mayor que Z"? – Gili

Respuesta

12

Supongamos que quiere estimar alguna cantidad de interés. En el ejemplo de Joel, "fecha de envío" es lo que desea estimar. En la mayoría de estas situaciones, existen factores aleatorios que afectan nuestras estimaciones.

Cuando tiene una cantidad aleatoria, normalmente quiere saber su media y la desviación estándar para que pueda tomar las medidas adecuadas. En situaciones simples, puede modelar la cantidad como una distribución estándar (por ejemplo, distribución normal) para la que existen fórmulas analíticas para la media y la desviación estándar. Sin embargo, existen muchas situaciones donde las fórmulas analíticas no existen. En tales situaciones, en lugar de una solución analítica para la media y la desviación estándar, recurrimos a la simulación. La idea es:

Paso 1: Generar los factores que influyen en la cantidad de interés utilizando distribuciones apropiadas

Paso 2: cantidad Compute de interés

Repita los pasos 1 y 2 muchas veces y calcular la media empírica y desviación estándar para lo que quieres saber.

Lo anterior es, con mucho, la aplicación típica de la aplicación monte carlo. Vea el enlace de wikipedia proporcionado por Jarrod para varias de estas aplicaciones y algunos ejemplos de aplicaciones interesantes donde no hay aleatoriedad inherente (por ejemplo, estimación de pi).

+0

Me gusta su respuesta, excepto que los pasos que da son muy vagos. ¿Puedes hacerlos más precisos de alguna manera? – Gili

+1

Bueno, monte carlo es una vasta área con muchas aplicaciones. Como ejemplo, supongamos que desea tener algunos datos sobre varias características del proyecto (por ejemplo, no de desarrolladores, SO objetivo, etc.) y tiempos de envío (por ejemplo, 3 meses, 6 meses, etc.). Es posible que ya conozca la relación entre las características del proyecto y los tiempos de envío. Por ejemplo, Ship Times ~ N (mu, sigma^2) I (Ship Times> 0) donde N (.) Indica una distribución normal, mu y sigma son función de las características del proyecto y I (Ship Times> 0) expresa el hecho que los tiempos de envío no pueden ser negativos. – vad

+1

Es posible que desee saber las consecuencias de cambiar algún parámetro del proyecto (por ejemplo, aumentar el número de desarrolladores) en los tiempos de envío. Desafortunadamente, no existe una expresión de forma cerrada para la media de una normal truncada. Por lo tanto, lo que haría es: Paso 1: Generar una normal truncada mediante muestreo rechazo o transformada inversa método Paso 2. Tienda tiempo de la nave (en este caso el paso 2 implica ningún cálculo) Repita los pasos 1 y 2 N veces y calcule el desarrollo promedio y estándar de los tiempos de envío que almacenó en el paso 2. Lo anterior supone que usted conoce la relación entre los parámetros del proyecto y mu y sigma. – vad

3

Wikipedia tiene un buen artículo sobre los métodos de simulación de monte carlo. He usado monte carlo en algunas ocasiones, en pocas palabras, los métodos de MC tienden a dar respuestas precisas al tratar de proyectar resultados usando conjuntos de muestras que son bastante aleatorios y alguien normalmente usa la intuición para tratar de adivinar una tendencia. Desafortunadamente, tratar de explicar los métodos MC es bastante difícil, así que echa un vistazo al artículo.

+0

Si tengo datos de x calificación del juego y no de instalaciones. Problema: predecir el número de instalaciones para el juego ¿Es este el caso correcto para usar la simulación MC? –

1

Como las estimaciones suelen estar bastante distribuidas al programar las tareas de programación, tiene más sentido tratarlas estadísticamente.

Si tomamos un proyecto que lleva 100 tareas, los errores en las estimaciones se igualarán y terminará con una distribución que muestra la probabilidad de que el proyecto se complete como un rango.

También evita algunos problemas graves como el almacenamiento en memoria intermedia de tarea y el síndrome del alumno sesgando los resultados aún más.

2

A veces, comprobar todas las opciones es simplemente prohibitivo.

16

Los métodos Monte Carlo se usan comúnmente when the dimensionality of the problem is too high for traditional schemes. Un gran documento introductorio sobre el tema es Persi Diaconis 'The Markov Chain Monte Carlo Revolution.

+0

Interesante artículo, pero rápidamente me perdí en los detalles. – Gili

+0

Un buen papel, pero tengo que decir que para un físico de partículas que usa "Revolución" en el título de un artículo de MC escrito después de 2009 parece un poco extraño. Hemos estado haciendo esto el tiempo suficiente para que Metropolis * sea * un esquema tradicional. – dmckee

+0

@dmckee Ese documento fue dirigido, creo, hacia una amplia audiencia de matemáticos que comprende no solo matemáticos aplicados o estadísticos, sino también personas involucradas en otras áreas como álgebra, análisis, etc., donde los métodos de Monte Carlo no son tan ampliamente conocidos. – jmbr