You are on page 1of 12

Simulacin de Montecarlo con Excel

El trabajo presenta a la simulacin de Monte Carlo como tcnica cuantitativa que hace uso de la estadstica y cules son los procesos en los ordenadores para imitar, mediante modelos matemticos, el comportamiento aleatorio de sistemas reales no dinmicos. Concretamente haciendo uso de la planilla de clculo de Microsoft E cel, se describe cmo es posible obtener un n!mero pseudo"aleatorio "proveniente de una distribucin uniforme entre el # y el $" usando la funcin %&E%'()*(. %van+ando en ejemplos mas complejos se construyen modelos de simulacin Monte Carlo cuando las variables aleatorias son discretas o continuas. ,alabras Clave- simulacin, Monte Carlo, comportamiento aleatorio o probabilstico, n!mero pseudo"aleatorio. $." *ntroduccin &a simulacin de Monte Carlo es una tcnica que combina conceptos estadsticos .muestreo aleatorio/ con la capacidad que tienen los ordenadores para 0enerar n!meros pseudo"aleatorios y automati+ar clculos. &os or0enes de esta tcnica estn li0ados al trabajo desarrollado por 1tan 2lam y 3ohn 4on 5eumann a finales de los 6# en el laboratorio de &os %lamos, cuando investi0aban el movimiento aleatorio de los neutrones 78$9. En a:os posteriores, la simulacin de Monte Carlo se ha venido aplicando a una infinidad de mbitos como alternativa a los modelos matemticos e actos o incluso como !nico medio de estimar soluciones para problemas complejos. %s, en la actualidad es posible encontrar modelos que hacen uso de simulacin Monte Carlo en las reas informtica, empresarial, econmica, industrial e incluso social 7;, <9. En otras palabras, la simulacin de Monte Carlo est presente en todos aquellos mbitos en los que el comportamiento aleatorio o probabilstico desempe:a un papel fundamental "precisamente, el nombre de Monte Carlo proviene de la famosa ciudad de Mnaco, donde abundan los casinos de jue0o y donde el a+ar, la probabilidad y el comportamiento aleatorio conforman todo un estilo de vida. 1on muchos los autores que han apostado por utili+ar hojas de clculo para reali+ar simulacin Monte Carlo 7$, =, >9. &a potencia de las hojas de clculo reside en su universalidad, en su facilidad de uso, en su capacidad para recalcular valores y, sobre todo, en las posibilidades que ofrece con respecto al anlisis de escenarios .?@hat"if anaylisisA/. &as !ltimas versiones de E cel incorporan, adems, un len0uaje de pro0ramacin propio, el 4isual Basic for %pplications, con el cual es posible crear autnticas aplicaciones de simulacin destinadas al usuario final. En el mercado e isten de hecho varios complementos de E cel .%dd"*ns/ especficamente dise:ados para reali+ar simulacin Monte Carlo, siendo los ms conocidos- C)isD, Crystall Ball, *nsi0ht. la, 1im'ools. la, etc. 78E F 8;9. Conceptos fundamentales &a funcin %&E%'()*(./ de E cel &as hojas de clculo como E cel .y cualquier len0uaje de pro0ramacin estndar/ son capaces de 0enerar n!meros pseudo"aleatorios provenientes de una distribucin uniforme entre el # y el $. Este tipo de n!meros pseudo"aleatorios son los elementos bsicos a partir de los cuales se desarrolla cualquier simulacin por ordenador. En E cel, es posible obtener un n!mero pseudo"aleatorio "proveniente de una distribucin uniforme entre el # y el $" usando la funcin %&E%'()*(-

&os n!meros 0enerados mediante la funcin %&E%'()*( tienen dos propiedades que los hacen equiparables a n!meros completamente aleatorios$.Cada ve+ que se usa la funcin %&E%'()*(, cualquier n!mero real entre # y $ tiene la misma probabilidad de ser 0enerado .de ah el nombre de distribucin uniforme/. E. &os diferentes n!meros 0enerados son estadsticamente independientes unos de otros .es decir, el valor del n!mero 0enerado en un momento dado no depende de los 0enerados con anterioridad/. &a funcin %&E%'()*( es una funcin voltil de E cel. Esto si0nifica que cada ve+ que pulsamos la tecla GH o cambiemos al0uno de los inputs del modelo, todas las celdas donde apare+ca la funcin %&E%'()*( sern recalculadas de forma automtica. 1e pueden encontrar ejemplos del uso de %&E%'()*( en el propio men! de ayuda de E cel. IJu es la simulacin de Monte CarloK &a simulacin de Monte Carlo es una tcnica cuantitativa que hace uso de la estadstica y los ordenadores para imitar, mediante modelos matemticos, el comportamiento aleatorio de sistemas reales no dinmicos .por lo 0eneral, cuando se trata de sistemas cuyo estado va cambiando con el paso del tiempo, se recurre bien a la simulacin de eventos discretos o bien a la simulacin de sistemas continuos/. &a clave de la simulacin Monte Carlo consiste en crear un modelo matemtico del sistema, proceso o actividad que se quiere anali+ar, identificando aquellas variables .inputs del modelo/ cuyo comportamiento aleatorio determina el comportamiento 0lobal del sistema. 2na ve+ identificados dichos inputs o variables aleatorias, se lleva a cabo un e perimento consistente en .$/ 0enerar F con ayuda del ordenador"muestras aleatorias .valores concretos/ para dichos inputs, y .E/ anali+ar el comportamiento del sistema ante los valores 0enerados. 'ras repetir n veces este e perimento, dispondremos de n observaciones sobre el comportamiento del sistema, lo cual nos ser de utilidad para entender el funcionamiento del mismo Fobviamente, nuestro anlisis ser tanto ms preciso cuanto mayor sea el n!mero n de e perimentos que llevemos a cabo. 4eamos un ejemplo sencilloEn la ima0en inferior se muestra un anlisis histrico de E## das sobre el n!mero de consultas diarias reali+adas a un sistema de informacin empresarial .E*1/ residente en un servidor central. &a tabla incluye el n!mero de consultas diarias .# a ;/ junto con las frecuencias absolutas .n!mero de das que se producen #, $, ..., ; consultas/, las frecuencias relativas .$#LE## M #,#;, .../, y las frecuencias relativas acumuladas.

,odemos 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 N consultas en un da sera de #,N#/, por lo que la tabla anterior nos proporciona la distribucin de probabilidad asociada a una variable

aleatoria discreta .la variable aleatoria es el n!mero de consultas al E*1, que slo puede tomar valores enteros entre # y ;/. 1upon0amos que queremos conocer el n!mero esperado .o medio/ de consultas por da. &a respuesta a esta pre0unta es fcil si recurrimos a la teora de la probabilidadOenotando por P a la variable aleatoria que representa el n!mero diario de consultas al E*1, sabemos que-

,or otra parte, tambin podemos usar simulacin de Monte Carlo para estimar el n!mero esperado de consultas diarias .en este caso se ha podido obtener el valor e acto usando teora de probabilidad, pero ello no siempre ser factible/. 4eamos cmoCuando se cono+ca la distribucin 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 sonQ 7#,## , #,#;/ para el suceso # Q 7#,#; , #,$;/ para el suceso $ Q 7#,$; , #,N;/ para el suceso E Q 7#,N; , #,=;/ para el suceso N Q 7#,=; , #,<;/ para el suceso 6 Q 7#,<; , $,##/ para el suceso ; El 0rfico si0uiente nos muestra cada una de las probabilidades sobre el n!mero de consultas. En l, se aprecia claramente la relacin e istente entre probabilidad de cada suceso y el rea que ste ocupa.

Esto si0nifica que, al 0enerar un n!mero pseudo"aleatorio con el ordenador .proveniente de una distribucin uniforme entre # y $/, estaremos llevando a cabo un e perimento cuyo resultado, obtenido de forma aleatoria y se0!n la distribucin de probabilidad anterior, estar asociado a un suceso. %s por ejemplo, si el ordenador nos proporciona el n!mero pseudo"aleatorio #,E;=>, podremos suponer que ese da se han producido E consultas al E*1. %si0namos pues la funcin %&E%'()*( a una casilla .la R$ en el caso de la ima0en/-

1eleccionando la celda y ?arrastrandoA con el ratn desde el borde inferior derecho de la misma podemos obtener un listado completo de n!meros pseudo"aleatorios-

% continuacin, podemos usar la funcin 1* de E cel para asi0nar un suceso a cada uno de los n!meros pseudo"aleatorios 0enerados .como veremos, otra forma de hacer esta asi0nacin ser usando la funcin B21C%)4/-

)epitiendo el proceso de seleccionar y ?arrastrarA obtendremos al0o similar a-

Ginalmente, usando la funcin ,)(MEO*( ser posible calcular la media de los valores de la columna S-

En este caso, hemos obtenido un valor estimado que corresponde e actamente con el valor real anteriormente calculado va la definicin terica de la media. 1in embar0o, debido a la componente aleatoria intrnseca al modelo, normalmente obtendremos valores ?cercanosA al valor real, siendo dichos valores diferentes unos de otros .cada simulacin proporcionar sus propios resultados/. 1e puede comprobar este hecho pulsando repetidamente sobre la funcin GH .cada ve+ que se pulsa dicha tecla, E cel 0enera nuevos valores aleatorios y, por tanto, nuevos valores para la columna S y la casilla *$/. 1i en lu0ar de usar una muestra aleatoria formada por $## observaciones hubisemos usado una formada por $#, los valores que obtendramos al pulsar repetidamente GH no seran estimaciones tan buenas al valor real. ,or el contrario, es de esperar que si hubisemos usado $.### .o mejor a!n $#.###/ observaciones, los valores que obtendramos en la casilla *$ estaran todos muy cercanos al valor real. Casos prcticos con soft@are

Monte Carlo con variables discretas 4eamos un ejemplo al0o ms complejo del uso de E cel para construir modelos de simulacin Monte Carlo cuando las variables aleatorias sean discretas1upon0amos que trabajamos en un 0ran almacn informtico, y que nos piden consejo para decidir sobre el n!mero de licencias de un determinado sistema operativo que conviene adquirir F las licencias se suministrarn con los ordenadores que se vendan durante el pr imo trimestre, y es l0ico pensar que en pocos meses habr un nuevo sistema operativo en el mercado de caractersticas superiores. Cada licencia de sistema operativo le cuesta al almacn un total de >; Euros, mientras que el precio al que la vende es de $## Euros. Cuando sal0a al mercado la nueva versin del sistema operativo, el almacn podr devolver al distribuidor las licencias sobrantes, obteniendo a cambio un total del E; Euros por cada una. Basndose en los datos histricos de los !ltimos meses, los responsables del almacn han sido capaces de determinar la si0uiente distribucin de probabilidades por lo que a las ventas de licencias del nuevo sistema operativo se refiere-

Construimos nuestro modelo usando las frmulas que se muestran en la fi0ura inferior. En la casilla SE usaremos la funcin %&E%'()*( para 0enerar el valor pseudo"aleatorio que determinar el suceso resultanteT en la celda *E usamos la funcin B21C%)4 para determinar el suceso correspondiente asociado al valor pseudo"aleatorio obtenido Fnotar que usamos tambin la funcin M*5, ya que en nin0!n caso podremos vender ms licencias que las disponibles. El resto de frmulas son bastante claras-

En la ima0en anterior se muestra cmo construir el modelo con una observacin .iteracin/. % fin de 0enerar nuevas observaciones, deberemos seleccionar el ran0o SE-5E y UarrastrarU hacia abajo .tantas casillas como iteraciones deseemos reali+ar/-

Ginalmente, es posible estimar el valor esperado de la variable aleatoria que proporciona los beneficios sin ms que hallar la media de las $## observaciones que acabamos de reali+ar. %simismo, usaremos las funciones OE14E1' e *5'E)4%&(.C(5G*%5V% para hallar, respectivamente, la desviacin estndar de la muestra obtenida y el intervalo de confian+a .a un nivel del H;W/ para el valor esperado-

% partir del modelo anterior es posible tambin reali+ar ?@hat"ifA anlisis .anlisis de escenarios o pre0untas del tipo ?Iqu pasara si cambiamos tal o cual inputKA/. ,ara ello es suficiente con ir cambiando los valores de las celdas con fondo amarillo o rojo .inputs del modelo en este ejemplo/. %simismo, podemos ampliar fcilmente el n!mero de iteraciones .observaciones muestrales/ sin ms que repetir los procesos de seleccionar y ?arrastrarA. En el caso actual, hemos optado por tomar $.### iteraciones para cada una de los posibles inputs asociados a la cantidad de pedido .estos posibles inputs son- $##, $;#, E##, E;#, y N##/. 1i se reali+ase el e perimento, se obtendran unos resultados similares a los que se muestran a continuacin .ya que $.### es un n!mero ya bastante considerable para este ejemplo/-

% partir de los resultados, parece claro que la decisin ptima es hacer un pedido de $;# unidades, ya que con ello se consi0ue el beneficio m imo. Reneracin de n!meros aleatorios provenientes de otras distribuciones &as !ltimas versiones de E cel incorporan un %dd"*n llamado %nlisis de datos. Este complemento proporciona nuevas funcionalidades estadsticas a la hoja de clculo. Entre ellas, nos interesa destacar la de Reneracin de n!meros aleatorios-

Con esta opcin, es posible 0enerar fcilmente observaciones provenientes de diversas distribuciones de variable discreta .Bernoulli, Binomial, ,oisson, Grecuencia relativa, y Oiscreta/ o de variable continua .2niforme y 5ormal/. *ndependientemente del

complemento %nlisis de datos, es posible usar un resultado muy conocido de la teora estadstica, llamado mtodo de la transformada inversa, para derivar las frmulas que permiten obtener valores pseudo"aleatorios provenientes de distribuciones como la 8eibull o la &o0normal. En la tabla si0uiente se muestran al0unas frmulas que, implementadas en celdas de E cel, nos permiten obtener valores pseudo"aleatorios de al0unas de las distribuciones continuas ms usadas-

Distribucin E ponencial 8eibull 5ormal

Parmetros Media M b Escala Gorma M a M b Oesv.

Frmula Excel M "&5.%&E%'()*(.//Xb M bX."&5.%&E%'()*(.//Y.$La/ M O*1').5()M.*54.%&E%'()*(./,Z,[/

Media M Z Estndar M [

&o0normal 2niforme entre a y b

Media de &n.P/ M Z Oesv. Estndar de M O*1').&(R.*54.%&E%'()*(./,Z,[/ &n.P/ M [ E tremo inferior M a M a\.b"a/X%&E%'()*(./ E tremo superior M b

%:adir, finalmente, que es relativamente sencillo implementar funciones 4B% que, haciendo uso del mtodo de la transformada inversa o de otros mtodos similares, permitan la 0eneracin de valores provenientes de casi cualquier distribucin terica. 1imulacin Monte Carlo con variables continuas Como hemos comentado, es posible usar las frmulas anteriores para 0enerar, a partir de la funcin %&E%'()*(./, valores pseudo"aleatorios provenientes de otras distribuciones continuas. En las p0inas si0uientes, veremos dos ejemplos de modelos que hacen uso de la distribucin normal .la distribucin estadstica ms importante y utili+ada/Ejemplo $- 'iempo de consultas a servidores en paralelo 1upon0amos que desde un ordenador cliente se reali+a consultas 1J& a bases de datos situadas en dos servidores distintos. 5uestro objetivo ser estimar el tiempo esperado .tiempo medio/ que deberemos esperar para recibir la respuesta de ambos servidores. Oada la complejidad de la consulta que queremos reali+ar, y basndonos en e periencias anteriores, se calcula que el tiempo necesario para que cada uno de los servidores responda a la misma si0ue una distribucin normal con los parmetros .media y desviacin estndar, en minutos/ que se indican a continuacin-

,ediremos a E cel que 0enere valores pseudo"aleatorios provenientes de dichas distribuciones. %simismo, usaremos la funcin M%P para obtener el tiempo de respuesta .que ser el m imo de los tiempos de respuesta de cada servidor/, y la funcin 1* para determinar qu servidor ha sido el ms rpido en responder-

2saremos tambin las funciones C(5'%) y C(5'%).1* para contar el n!mero de iteraciones y el n!mero de veces que un servidor es ms rpido que el otro-

Ginalmente, las funciones ,)(MEO*(, OE14E1', e *5'E)4%&(.C(5G*%5V% nos servirn para obtener, respectivamente, el tiempo muestral medio .esperado/ de respuesta, la desviacin estndar de la muestra .observaciones que 0eneraremos/, y un intervalo de confian+a, a un nivel del H;W, para el tiempo medio .este intervalo nos permitir saber si nuestra estimacin es buena o si, por el contrario, necesitaremos ms iteraciones/. 2na ve+ introducidas las frmulas anteriores, bastar con seleccionar y ?arrastrarA hacia abajo el ran0o de celdas RN-3N, con lo que se 0enerarn nuevas iteraciones. En la ima0en si0uiente se muestra el resultado obtenido al 0enerar E.#>> iteraciones. (bservar que el tiempo medio estimado de respuesta es de EE,H minutos, y podemos ase0urar, con un nivel de confian+a del H;W, que dicho tiempo medio estar entre EE,< y EN,# minutos.

Ginalmente, se observa tambin que el servidor $ ha respuesto ms rpido que el servidor E en el =>W de las iteraciones. Ejemplo E- *nversin inicial y flujo de caja Consideremos ahora un nuevo problema- supon0amos que disponemos de un capital inicial de E;# Euros que deseamos invertir en una peque:a empresa. 1upondremos tambin que los flujos de caja "tanto los de entrada como los de salida" son aleatorios, si0uiendo stos una distribucin normal.

,ara el primer mes, el valor esperado del flujo de entrada es de ;## Euros, mientras que el valor esperado para el flujo de salida es de 6## Euros. En meses posteriores, el valor esperado ser el valor obtenido para en el mes anterior. ,or su parte, las desviaciones estndar valdrn, en todos los casos, un E;W del valor medio .esperado/ asociado. En base a lo anterior, podemos construir un modelo como se muestra en las si0uientes im0enes-

1eleccionando y ?arrastrandoA hacia abajo el ran0o RN-(N, hemos obtenido los si0uientes resultados para ;.<;H iteraciones-

(bservamos que el valor esperado para el capital final es de unos ;66 Euros, y que podemos afirmar, con un nivel de confian+a del H;W, que dicho valor estar entre ;E< y ;=# Euros. )eferencias Biblio0rficas 7$9 1eila, %.G. .E##$/- Spreadsheet Simulation. ,roceedin0s of the E##$ 8inter 1imulation Conference, pp. >6 F ><. 7E9 1ava0e, 1.&. .$HH</- U*nsi0ht. la- Business %nalysis 1oft@are for Microsoft E celU. Ou bury ,ress. 7N9 Camm, 3.O.T Evans, 3.). .$HH=/- UMana0ement 1cience- Modellin0, %nalysis and *nterpretationU. 1outh F 8estern Colle0e ,ublishin0. 769 8inston, 8.&.T %lbri0ht, 1.C. .$HH>/- U,ractical Mana0ement 1cience- 1preadsheet Modelin0 and %pplicationsU. Ou bury ,ress. 7;9 Redam, 1.R.T Beaudet, 1.'. .E###/- Monte Carlo Simulation using Excel Spreadsheet for Predicting Reliability of a Complex System. ,roceedin0s %nnual )eliability and Maintainability 1ymposium. 7=9 Evans, 3.). .E###/- Spreadsheets as a Tool for Teaching Simulation ]. *nforms 'ransactions (n Education 4olume $, 5umber $. http-LLite.informs.or0L4ol$5o$LevansLevans.html 7>9 EcDstein, 3T )iedmueller, 1.'. .E##E/- YASA ! Yet Another Add"in for Teaching Elementary Monte Carlo Simulation in Excel. *nforms 'ransactions (n Education. 4olume E, 5umber E. http-LLite.informs.or0LvolEnoELEcDstein)iedmuellerL 7<9 3ud0e, R. .$HHH/-Simple Monte Carlo studies on a spreadsheet. Computers in Si0her Education Economics )evie@ .CSEE)/. 4olume $N, *ssue E. http-LL@@@.economics.ltsn.ac.uDLcheerLch$N^ELch$N^Ep$E.htm 7H9 S@arn0, S.B. .E##$/- A Modern Simulation Course for #usiness Students . *nterfaces, N$-N, ,art $ of E, May"3une E##$, pp. ==">;. 7$#9 5ance, ).E., 1ar0ent, ).R. .E##E/- Perspecti$es on the E$olution of Simulation. (perations )esearch, 4ol. ;#, 5o. $, 3anuary"Gebruary E##E, pp. $=$"$>E.

You might also like