Libro Cap 08
Libro Cap 08
Libro Cap 08
CAPITULO 8. INTRODUCCION AL MÉTODO DE
SIMULACIÓN MONTE CARLO
Objetivos del Capítulo
• Introducir los conceptos e ideas clave de la simulación Monte Carlo.
• Introducirse en las capacidades que ofrece Excel en los campos de modelado y
simulación.
• Conocer algunas aplicaciones de la simulación Monte Carlo.
8.0 Introducción
Bajo el nombre de Método Monte Carlo o Simulación Monte Carlo se agrupan una serie de
procedimientos que analizan distribuciones de variables aleatorias usando simulación de
números aleatorios.
El Método de Monte Carlo da solución a una gran variedad de problemas matemáticos
haciendo experimentos con muestreos estadísticos en una computadora. El método es
aplicable a cualquier tipo de problema, ya sea estocástico o determinístico.
Generalmente en estadística los modelos aleatorios se usan para simular fenómenos que
CAPITULO 8. INTRODUCCION AL MÉTODO DE SIMULACIÓN MONTE CARLO
poseen algún componente aleatorio. Pero en el método Monte Carlo, por otro lado, el objeto
de la investigación es el objeto en sí mismo, un suceso aleatorio o pseudo‐aleatorio se usa
para estudiar el modelo.
A veces la aplicación del método Monte Carlo se usa para analizar problemas que no tienen
un componente aleatorio explícito; en estos casos un parámetro determinista del problema
se expresa como una distribución aleatoria y se simula dicha distribución. Un ejemplo sería
el famoso problema de las Agujas de Bufón.
La simulación de Monte Carlo también fue creada para resolver integrales que no se
pueden resolver por métodos analíticos, para solucionar estas integrales se usaron
números aleatorios. Posteriormente se utilizó para cualquier esquema que emplee
números aleatorios, usando variables aleatorias con distribuciones de probabilidad
conocidas, el cual es usado para resolver ciertos problemas estocásticos y determinísticos,
donde el tiempo no juega un papel importante.
La simulación de Monte Carlo es una técnica que combina conceptos estadísticos (muestreo
aleatorio) con la capacidad que tienen los ordenadores para generar números pseudo‐
aleatorios y automatizar cálculos.
se ha venido aplicando a una infinidad de ámbitos como alternativa a los modelos
matemáticos exactos o incluso como único medio de estimar soluciones para problemas
complejos. Así, en la actualidad es posible encontrar modelos que hacen uso de simulación
MC en las áreas informática, empresarial, económica, industrial e incluso social. En otras
palabras, la simulación de Monte Carlo está presente en todos aquellos ámbitos en los que
el comportamiento aleatorio o probabilístico desempeña un papel fundamental ‐
precisamente, el nombre de Monte Carlo proviene de la famosa ciudad de Mónaco, donde
abundan los casinos de juego y donde el azar, la probabilidad y el comportamiento
aleatorio conforman todo un estilo de vida.
8.2 Simulación: Método Monte Carlo
Simulación: es el proceso de diseñar y desarrollar un modelo computarizado de un
sistema o proceso y conducir experimentos con este modelo con el propósito de entender
el comportamiento del sistema o evaluar varias estrategias con las cuales se puede operar
el sistema.
• Modelo de simulación: conjunto de hipótesis acerca del funcionamiento del
sistema expresado como relaciones matemáticas y/o lógicas entre los elementos del
sistema.
• Proceso de simulación: ejecución del modelo a través del tiempo en un ordenador
para generar muestras representativas del comportamiento.
8.2.1 Métodos de simulación
• Simulación estadística o Monte Carlo: Está basada en el muestreo sistemático de
variables aleatorias.
• Simulación continua: Los estados del sistema cambian continuamente su valor.
Estas simulaciones se modelan generalmente con ecuaciones diferenciales.
• Simulación por eventos discretos: Se define el modelo cuyo comportamiento varía
en instantes del tiempo dados. Los momentos en los que se producen los cambios
son los que se identifican como los eventos del sistema o simulación.
8.2 Simulación: Método Monte Carlo
• Simulación por autómatas celulares: Se aplica a casos complejos, en los que se
divide al comportamiento del sistema en subsistemas más pequeños denominadas
células. El resultado de la simulación está dado por la interacción de las diversas
células.
8.2.2 Etapas del proceso de simulación
• Definición, descripción del problema. Plan.
8.2.3 Diagrama de flujo del modelo de simulación
8.3 Algoritmos
El algoritmo de Simulación Monte Carlo Crudo o Puro está fundamentado en la generación
de números aleatorios por el método de Transformación Inversa, el cual se basa en las
distribuciones acumuladas de frecuencias:
• Determinar la/s Variable Aleatoria y sus distribuciones acumuladas(F)
• Iterar tantas veces como muestras necesitamos
o Generar un número aleatorio
o Uniforme (0,1).
o Determinar el valor de la V.A. para el número aleatorio generado de acuerdo
a las clases que tengamos.
• Calcular media, desviación estándar error y realizar el histograma.
• Analizar resultados para distintos tamaños de muestra.
8.3 Algoritmos
Otra opción para trabajar con Monte Carlo, cuando la variable aleatoria no es directamente
el resultado de la simulación o tenemos relaciones entre variables es la siguiente:
0.3
0.2 0.2
0.2
0.1 0.1
0.1
8.3 Algoritmos
0
42 45 48 51 54
0.8 0.7
0.6
0.3 0.4
0.4
0.2 0.2
0.2 0.1 0.1
0.1
0
42 45 48 51 54
Se puede apreciar mejor en el gráfico, trazando una recta desde el eje de la frecuencia hasta
que interseca con la línea de la función acumulada, luego se baja a la coordenada de
unidades y se obtiene el valor correspondiente; en este caso 48.
Cuando trabajamos con variables discretas la función acumulada tiene un intervalo o salto
8.3 Algoritmos
para cada variable (para casos prácticos hay que definir los intervalos y luego con una
función de búsqueda hallar el valor). Para funciones continuas se puede hallar la inversa de
la función acumulada.
8.4 ¿Qué es la Simulación de Monte Carlo?
La simulación de Monte Carlo es una técnica cuantitativa que hace uso de la estadística y
los ordenadores para imitar, mediante modelos matemáticos, el comportamiento aleatorio
de sistemas reales no dinámicos (por lo general, cuando se trata de sistemas cuyo estado va
cambiando con el paso del tiempo, se recurre bien a la simulación de eventos discretos o
bien a la simulación de sistemas continuos).
La clave de la simulación MC consiste en crear un modelo matemático del sistema, proceso
o actividad que se quiere analizar, identificando aquellas variables (inputs del modelo)
8.4 ¿Qué es la Simulación de Monte Carlo?
cuyo comportamiento aleatorio determina el comportamiento global del sistema. Una vez
identificados dichos inputs o variables aleatorias, se lleva a cabo un experimento
consistente en (1) generar – con ayuda del ordenador‐ muestras aleatorias (valores
concretos) para dichos inputs, y (2) analizar el comportamiento del sistema ante los
valores generados. Tras repetir n veces este experimento, dispondremos de n
observaciones sobre el comportamiento del sistema, lo cual nos será de utilidad para
entender el funcionamiento del mismo –obviamente, nuestro análisis será tanto más
preciso cuanto mayor sea el número n de experimentos que llevemos a cabo.
Veamos un ejemplo sencillo:
Podemos interpretar la frecuencia relativa como la probabilidad de que ocurra el suceso
asociado, en este caso, la probabilidad de un determinado número de consultas (así, p.e., la
probabilidad de que se den 3 consultas en un día sería de 0,30), por lo que la tabla anterior
nos proporciona la distribución de probabilidad asociada a una variable aleatoria discreta
(la variable aleatoria es el número de consultas al EIS, que sólo puede tomar valores
enteros entre 0 y 5).
Supongamos que queremos conocer el número esperado (o medio) de consultas por día. La
respuesta a esta pregunta es fácil si recurrimos a la teoría de la probabilidad.
Denotando por X a la variable aleatoria que representa el número diario de consultas al EIS,
sabemos que:
Por otra parte, también podemos usar simulación de Monte Carlo para estimar el número
8.4 ¿Qué es la Simulación de Monte Carlo?
esperado de consultas diarias (en este caso se ha podido obtener el valor exacto usando
teoría de probabilidad, pero ello no siempre será factible). Veamos cómo:
Cuando se conozca la distribución de probabilidad asociada a una variable aleatoria
discreta, será posible usar la columna de frecuencias relativas acumuladas para obtener los
llamados intervalos de números aleatorios asociados a cada suceso. En este caso, los
intervalos obtenidos son:
• [0.00, 0.05) para el suceso 0
• [0.05, 0.15) para el suceso 1
• [0.15, 0.35) para el suceso 2
8.4 ¿Qué es la Simulación de Monte Carlo?
Seleccionando la celda y “arrastrando” con el ratón desde el borde inferior derecho de la
misma podemos obtener un listado completo de números pseudo‐aleatorios:
A continuación, podemos usar la función SI de Excel para asignar un suceso a cada uno de
los números pseudo aleatorios generados (como veremos, otra forma de hacer esta
asignación será usando la función BUSCARV):
Repitiendo el proceso de seleccionar y “arrastrar” obtendremos algo similar a:
Finalmente, usando la función PROMEDIO será posible calcular la media de los valores de la
columna H:
En este caso, hemos obtenido un valor estimado que corresponde exactamente con el valor
real anteriormente calculado vía la definición teórica de la media. Sin embargo, debido a la
componente aleatoria intrínseca al modelo, normalmente obtendremos valores “cercanos”
al valor real, siendo dichos valores diferentes unos de otros (cada simulación
8.4 ¿Qué es la Simulación de Monte Carlo?
proporcionará sus propios resultados). Se puede comprobar este hecho pulsando
repetidamente sobre la función F9 (cada vez que se pulsa dicha tecla, Excel genera nuevos
valores aleatorios y, por tanto, nuevos valores para la columna H y la casilla I1).
Si en lugar de usar una muestra aleatoria formada por 100 observaciones hubiésemos
usado una formada por 10, los valores que obtendríamos al pulsar repetidamente F9 no
serían estimaciones tan buenas al valor real. Por el contrario, es de esperar que si
hubiésemos usado 1.000 (o mejor aún 10.000) observaciones, los valores que
obtendríamos en la casilla I1 estarían todos muy cercanos al valor real.
Construimos nuestro modelo usando las fórmulas que se muestran en la figura inferior. En
la casilla H2 usaremos la función ALEATORIO para generar el valor pseudo‐aleatorio que
determinará el suceso resultante; en la celda I2 usamos la función BUSCARV para
determinar el suceso correspondiente asociado al valor pseudo‐aleatorio obtenido –notar
que usamos también la función MIN, ya que en ningún caso podremos vender más licencias
que las disponibles. El resto de fórmulas son bastante claras:
8.4 ¿Qué es la Simulación de Monte Carlo?
En la imagen anterior se muestra cómo construir el modelo con una observación
(iteración). A fin de generar nuevas observaciones, deberemos seleccionar el rango H2:N2
y "arrastrar" hacia abajo (tantas casillas como iteraciones deseemos realizar):
Finalmente, es posible estimar el valor esperado de la variable aleatoria que proporciona
los beneficios sin más que hallar la media de las 100 observaciones que acabamos de
realizar. Asimismo, usaremos las funciones DESVEST e INTERVALO.CONFIANZA para
hallar, respectivamente, la desviación estándar de la muestra obtenida y el intervalo de
confianza (a un nivel del 95%) para el valor esperado:
La apariencia final de nuestro modelo será:
8.4 ¿Qué es la Simulación de Monte Carlo?
2
0
‐2
‐4
‐6
‐8
100 150 200 250 300
N° de Licencias Adquiridas
A partir de los resultados, parece claro que la decisión óptima es hacer un pedido de 150
8.4 ¿Qué es la Simulación de Monte Carlo?
unidades, ya que con ello se consigue el beneficio máximo.
8.4.2 Generación de Números Aleatorios Provenientes de Otras Distribuciones
Las últimas versiones de Excel incorporan un Add‐In llamado Análisis de datos. Este
complemento proporciona nuevas funcionalidades estadísticas a la hoja de cálculo. Entre
ellas, nos interesa destacar la de Generación de números aleatorios:
Con esta opción, es posible generar fácilmente observaciones provenientes de diversas
distribuciones de variable discreta (Bernoulli, Binomial, Poisson, Frecuencia relativa, y
Discreta) o de variable continua (Uniforme y Normal).
Independientemente del complemento Análisis de datos, es posible usar un resultado muy
conocido de la teoría estadística, llamado método de la transformada inversa, para derivar
las fórmulas que permiten obtener valores pseudo‐aleatorios provenientes de
distribuciones como la Weibull o la Lognormal.
En la tabla siguiente se muestran algunas fórmulas que, implementadas en celdas de Excel,
nos permiten obtener valores pseudo‐aleatorios de algunas de las distribuciones continuas
más usadas:
Distribución Parámetros Formula Excel
Exponencial Media = b = ‐LN(ALEATORIO())*b
Weibull Escala = b Forma = a = b*(‐LN(ALEATORIO())^(1/a)
Normal Media = µ
Desv. Estandar = σ = DISTR.NORM.INV(ALEATORIO(),µ, σ)
Lognormal Media de Ln(X) = µ
Desv. Estandar de Ln(X) = σ = DISTR.LOG.INV(ALEATORIO(),µ, σ)
Uniforme entre a y b Extremo inferior = a
8.4 ¿Qué es la Simulación de Monte Carlo?
Extremo superior = b = a+(b‐a)*ALEATORIO()
Añadir, finalmente, que es relativamente sencillo implementar funciones VBA que,
haciendo uso del método de la transformada inversa o de otros métodos similares, permita
la generación de valores provenientes de casi cualquier distribución teórica.
8.4.3 Simulación MC con Variables Continuas
Como hemos comentado, es posible usar las fórmulas anteriores para generar, a partir de la
función ALEATORIO(), valores pseudo‐aleatorios provenientes de otras distribuciones
Pediremos a Excel que genere valores pseudo‐aleatorios provenientes de dichas
distribuciones. Asimismo, usaremos la función MAX para obtener el tiempo de respuesta
(que será el máximo de los tiempos de respuesta de cada servidor), y la función SI para
determinar qué servidor ha sido el más rápido en responder:
Usaremos también las funciones CONTAR y CONTAR.SI para contar el número de
iteraciones y el número de veces que un servidor es más rápido que el otro:
8.4 ¿Qué es la Simulación de Monte Carlo?
Finalmente, las funciones PROMEDIO, DESVEST, e INTERVALO.CONFIANZA nos servirán
para obtener, respectivamente, el tiempo muestral medio (esperado) de respuesta, la
desviación estándar de la muestra (observaciones que generaremos), y un intervalo de
confianza, a un nivel del 95%, para el tiempo medio (este intervalo nos permitirá saber si
nuestra estimación es buena o si, por el contrario, necesitaremos más iteraciones).
Finalmente, se observa también que el servidor 1 ha respondido más rápido que el servidor
2 en el 68% de las iteraciones.
Ejemplo: Inversión inicial y flujo de caja
Consideremos ahora un nuevo problema: supongamos que disponemos de un capital inicial
de 250 dólares que deseamos invertir en una pequeña empresa. Supondremos también que
los flujos de caja ‐tanto los de entrada como los de salida‐ son aleatorios, siguiendo éstos
una distribución normal.
8.4 ¿Qué es la Simulación de Monte Carlo?
Para el primer mes, el valor esperado del flujo de entrada es de 500 Euros, mientras que el
valor esperado para el flujo de salida es de 400 Euros. En meses posteriores, el valor
esperado será el valor obtenido para en el mes anterior. Por su parte, las desviaciones
estándar valdrán, en todos los casos, un 25% del valor medio (esperado) asociado. En base
a lo anterior, podemos construir un modelo como se muestra en las siguientes imágenes:
Seleccionando y “arrastrando” hacia abajo el rango G3:O3, hemos obtenido los siguientes
resultados para 5.859 iteraciones:
Observamos que el valor esperado para el capital final es de unos 543 dólares, y que
podemos afirmar, con un nivel de confianza del 95%, que dicho valor estará entre 527 y
558 dólares.
8.5 Actividades para el Aprendizaje.
8.5 Actividades para el Aprendizaje.
Luego de visitar estas direcciones de páginas web, elaborar un resumen y/o desarrollar los
ejercicios propuestos para el tema correspondiente:
El método de Monte Carlo: http://www.monografias.com/trabajos12/carlo/carlo.shtml
Simulación: Excel Avanzado, Macro, funciones. http://trucosexcel.blogspot.com/
Resolver los ejercicios al capitulo correspondiente:
Cátedra de Métodos Cuantitativos para los Negocios.
http://www.unsa.edu.ar/mcneco/mcn_tps.html
Programación Matemática
http://www.uv.es/~sala/programacion.htm
Bienvenidos a los cursos del Área de Operaciones – Descargar ejercicios:
http://ucreanop.org/descarga_ejercicios.php
8.5 Actividades para el Aprendizaje.