PROCEDIMIENTO PARA REALIZAR LA SIMULACION DE MONTE CARLO EN @RISK
Con el programa @RISK se hará una simulación de Monte Carlo en la estimación de costos. Los
siguientes pasos explicados serán de la estructura del software. La esencia de este, consiste en un
sampling o muestreo a partir de un rango de valores que el usuario define en la hoja de cálculo, en
este caso es Microsoft Excel, y lo plasma en un gráfico usando la distribución de probabilidades
que también se define previamente.
1. Definición del modelo
El programa brinda una gama de posibilidades para definir la distribución de las variables. Para ver
estas opciones, hacemos click en Define Distributions
Si defino la distribución triangular para el costo de la actividad A, selecciono Triangular en la
ventana de definición de distribuciones y a continuación defino el valor pesimista, el valor
optimista y el valor probable.
En este caso, se han definido los siguientes parámetros para la distribución Triangular: el valor
pesimista o mínimo en 5, el máximo en 35 y el más probable en 20. No es necesario introducir
unidades monetarias o de tiempo en ningún caso, ya que el software trabaja con valores
absolutos.
En el caso en que el costo de la actividad A tenga otra distribución superpuesta, se puede agregar
una haciendo click en Add overlay y se selecciona la distribución adicional. Cabe señalar que
pueden agregarse varias distribuciones al mismo tiempo.
Si se tiene una base de datos de valores históricos, donde la distribución es desconocida, lo
recomendable sería crear una distribución teórica que se ajuste a dichos valores. En ese caso, se
hace click en Distribution Fitting y se introduce la base de datos.
En el caso en que diferentes variables tengan correlaciones entre sí, debe modelarse haciendo
click en Define Correlations. Muchas veces las variables son interdependientes entre sí, y es
importante tomar este factor en cuenta a la hora de correr la simulación.
Para generar la simulación es necesario establecer una celda para poder procesar los resultados
con diversas funciones. Para esto, se hace click en Add Output y se selecciona una celda.
La opción de Model Window sirve para visualizar un resumen de las distribuciones definidas y sus
parámetros (se pueden editar desde esa misma ventana)
2. Configuración de simulación
El número de iteraciones se define antes de correr la simulación; cuanto más grande sea
este número, mejor va a ser la representación de valores en la distribución determinada.
Asimismo, pueden generarse diversas simulaciones como se puede apreciar en el gráfico.
Los pequeños botones que aparecen debajo del número de simulaciones corresponden,
en orden de izquierda a derecha, a: opciones avanzadas de simulación (se definen macros,
convergencias, visualización, etc.), realizar un muestreo, mostrar valores de outputs en
gráfico de forma automática, mostrar resumen de valores en nueva ventana, modo demo
y modo tiempo real.
A continuación se presenta un ejemplo sencillo para correr una simulación.
Supongamos que tenemos que evaluar el presupuesto de un proyecto de inversión, en el
que tenemos partidas diversas con diferentes costos bases unitarios y un costo base total
de $18500. Se desea hacer la simulación de Monte Carlo para determinar la probabilidad
de ocurrencia de distintos costos totales del proyecto. Para ello, en este ejemplo, se va a
estimar el valor mínimo, más probable y máximo de cada variable a juicio nuestro. En este
caso se ha definido dichos valores con porcentajes del 90%, 100% y 125% respectivamente
en todos los casos.
En la columna J de “Simulado” se debe introducir el tipo de distribución elegida para cada
variable (costos de elementos), en este caso usaremos la distribución
Triangular. Seleccionamos la celda J34 para “Costo de Terreno” y hacemos click en Define
Distributions, se escoge la distribución Triangular y los parámetros ya mencionados. Otra
manera más directa de hacerlo es introducir en la barra de fórmulas lo siguiente:
“=RiskTriang(G34,H34,I34)” , el cual hace referencia a las celdas de valores mínimo, más
probable y máximo del “Costo de terreno”.
Arrastramos la fórmula en la columna J para todas las variables, desde la fila 34 hasta la
41, y obtenemos valores simulados, pero como aún no hemos corrido la simulación
general, el software genera un valor al azar sólo para visualizar un número en la celda.
Ahora bien, cabe recordar que el interés de la simulación es superponer todas las variables
para obtener los datos probabilísticos de la sumatoria total de costos. Para saber el monto
total simulado, creamos una celda especificando este requerimiento. Por ejemplo, vamos
a seleccionar la celda J43 para este propósito.
Se hace click en Add Output en la celda J43, colocamos un título para la simulación, en
este caso es “Total Project cost”, y luego se ingresa la sumatoria de resultantes
probabilísticas para cada variable.
Otro modo de hacerlo directamente es introduciendo “=RiskOutput("Total project
cost")+SUMA(J34:J41)” en la celda J43
El paso siguiente es correr la simulación. Para este ejemplo en particular, vamos a probar
una simulación con 500 iteraciones. Hacemos click en Start Simulation para empezar la
simulación.
La simulación en este caso en particular fue muy rápida. Bastó esperar un par de segundos
para terminar con todas las iteraciones. La resultante fue como sigue:
3. Visualización y Análisis de resultados
@RISK ofrece múltiples formas para visualizar los resultados. El modelo predeterminado
es la presentación de histogramas que se ha generado a partir de la simulación, como se
puede apreciar en el gráfico de la página anterior. Debajo del encabezado se puede
apreciar una barra con porcentajes:
Esto quiere decir que el 90% de los casos el presupuesto total oscila entre $18.211 y
$19.687. Asimismo, al costado del gráfico se indica que la Media es de $18.962. Una forma
bastante útil de visualizar la resultante probabilística es el gráfico de probabilidad
acumulada ascendente, tal como se ve a continuación:
Podemos concluir con este gráfico que para asegurar el presupuesto con un 95% de
confianza (probabilidad acumulada) se necesita de $19687. Este monto sobrepasa en
$1187 al costo base. El resultado de este análisis, en este caso, es que “se necesita una
contingencia de $1187 para cumplir el presupuesto con un 95% de confianza”.
También se puede visualizar los coeficientes de regresión de cada variable para el costo
total. Estos coeficientes nos indican qué tanto influye cada variable con un coeficiente
ponderado que varía del 0 al 1. Mientras mayor sea el coeficiente, mayor será su impacto
en la sumatoria total.
Se pueden obtener detalles estadísticos como máximos y mínimos de cada variable,
desviaciones estándar, media, varianza, moda y los percentiles cada 5%.
Asimismo, el software permite visualizar el sampling o muestreo de cada variable versus el
costo total, en un gráfico de dispersión en 2D. Como se sabe, el proceso de muestreo
toma valores al azar dentro del rango definido, y se asigna un valor de acuerdo a la
distribución de probabilidad escogida.
Los resultados se exportan en Excel. En este caso, se ve el ploteo de costo de edificios vs.
Costo total del proyecto, y se adjuntan los valores de cada iteración.
Finalmente, se puede generar un reporte en Excel que resume todo lo mencionado
anteriormente, haciendo click en el botón Excel reports.
El software permite además realizar tres tipos de análisis avanzados, que son:
• Búsqueda objetivo (Goal seek)
• Análisis de Tensión (Stress Analysis)
• Análisis de Sensibilidad avanzado (Advanced Sensitivity Analysis)
La función Goal Seek resulta muy similar a la función 'buscar objetivo' de Excel pero la
diferencia es que en @RISK se utilizan múltiples simulaciones (no los cálculos
determinísticos que utiliza Excel) para conseguir los resultados deseados.
Para el caso del ejemplo, va a buscarse un valor de costo base para ‘Marketing’ (celda C40,
que inicialmente vale $1500), con tal que la sumatoria total (celda J43) sea de $18500.
Luego de aplicar la función Goal seek, obtenemos lo siguiente:
Como vemos, el resultado ha vuelto a hacer nuevas iteraciones con las demás variables. Se
observa que el nuevo costo base obtenido para Marketing es de $1143, con la finalidad de
que la nueva media del costo total simulado se aproxime a $18500. En este caso, por el
número de iteraciones escogido (100), el valor de la media ha sido de $18587,
representando un error pequeño de $87 (equivale a 0.47% del monto deseado).
Esta herramienta es sumamente potente porque nos permite hacer el cálculo
probabilístico ajustándolo a una restricción, como puede ser por ejemplo el monto total
disponible para invertir en un proyecto. Para esto, debemos ‘liberar’ una variable para que
el software pueda iterar y así pueda ajustar el dado solicitado.
La función Stress Analysis o Análisis de Tensión consiste en mostrar diferentes escenarios
instantáneamente. Permite analizar los efectos de ajustar distintos valores percentiles
entre las muestras que se están tomando durante la simulación. Una vez que se
especifican los valores extremos de las entradas o inputs, se puede ver cómo las diferentes
situaciones afectarían a la resultante. Entonces, se procesan y visualizan diferentes
escenarios al mismo tiempo sin tener que cambiar el modelo. En el ejemplo, aplicamos la
función a la celda J43 (resultante):
En este caso se va a configurar tres escenarios. El primero con las distribuciones de costo
de terreno, costo de edificios y materias primas ajustadas entre los percentiles 5% y 95%
originales, el segundo escenario con el salario ajustado entre los percentiles 10% y 90%, y
el tercer escenario con los costos de vehículos y marketing ajustados entre los percentiles
8% y 92%.
Se hace click en Analyze y se obtienen los siguientes resultados:
Se puede apreciar que la variación de la distribución dentro de los percentiles definidos en
todas las variables sí afecta a la resultante original, o baseline. Vemos en el primer gráfico
de que la variación más grande ha sido en el rubro de buildings o edificaciones, y la menor
en el rubro de vehículos. Esto se debe al nivel de incidencia que tienen sobre el monto
total.
Se aprecia también que todas las resultantes han bajado su valor en todos los escenarios
con respecto al original. Esto se debe en este caso a que la distancia entre el valor más
probable y el valor mínimo de cada variable siempre ha sido menor que la distancia entre
el valor más probable y el valor máximo. Entonces, al reducir la amplitud de las
distribuciones en los percentiles especificados anteriormente, la media se ha movido
ligeramente hacia la izquierda, con un cambio casi imperceptible como se puede apreciar.
Finalmente, la función Advanced Sensitivity Analysis o Análisis de Sensibilidad Avanzada
permite determinar la sensibilidad o efecto a la variación de los inputs o entradas en el
modelo resultante. Con esta herramienta se puede jugar con cualquier cantidad de
funciones de distribución de probabilidad o celdas de datos estáticas y, además,
proporciona la información de qué tan sensibles son a los cambios, tal como se explicó
anteriormente. La ventaja que posee esta herramienta en @RISK es que permite
incorporar diferentes tipos de informes y exportarlos a Excel.
Para aplicar esta función en el ejemplo, hacemos click en Advanced Sensitivity Analysis y
colocamos en el campo cell to monitor la celda J43, que corresponde a la celda donde
figura la resultante de la simulación.
A continuación se ingresan los inputs, tal como se ve en la imagen. El método de variación
seleccionado son percentiles de distribución, aunque otras alternativas son: porcentaje de
cambios del valor base, tabla de valores y simulación por valores desde un rango definido.
Una vez que se han definido los parámetros e inputs de la función, se hace click en
Analyze. Luego de esperar unos segundos, la corrida genera cuatro informes para el
análisis de sensibilidad, los cuales se describen a continuación.
El primero es el reporte resumen del análisis de sensibilidad, donde se muestran los
valores generados por la simulación y sus parámetros estadísticos. En este caso, el análisis
se ha limitado en probar cada variable con los percentiles 1%, 5%, 25%, 50%, 75%, 95% y
99%, generando así 7 valores posibles para cada variable iterada con la resultante (en el
cuadro el valor de la variable figura en la columna value y la resultante figura en la
columna mean).
El software también presenta dos gráficos de percentiles: el gráfico de análisis de
percentiles, y el gráfico de cambios porcentuales. El primero nos grafica, para cada
variable, la media del Costo Total del proyecto versus la distribución de la variable
determinada según los percentiles ya mencionados.
De este gráfico podemos deducir que las variables Edificios y Materias primas son más
sensibles al costo total del proyecto, especialmente cuando sus valores alcanzan tanto
percentiles bajos como altos. La variable con menor incidencia es la de Vehículos.
En el gráfico de cambios porcentuales se observa la incidencia por cambios porcentuales
en las variables evaluadas. En este caso no se ha ploteado la simulación en el gráfico como
en el gráfico de análisis de percentiles donde se considera la distribución de cada variable,
sino que se grafica determinísticamente la pendiente de la resultante total (en este caso la
media del costo total del proyecto) en función a las variables, que en este ejemplo son
proporcionales y en primer grado, lo cual genera líneas rectas. Vemos que son más
sensibles las variables de costo de edificios y materias primas, y las menos sensibles son
tecnologías de la información y vehículos.
Por último, el análisis de sensibilidad muestra otra forma de visualizar los resultados,
mediante el gráfico de tornado.
Este gráfico resulta interesante porque muestra la sensibilidad en forma de barras a
diferencia de los gráficos de percentiles, donde la sensibilidad de visualiza con pendientes.
En el caso del gráfico tornado, a mayor longitud de barra, mayor la sensibilidad de la
variable. En el ejemplo, se ve que la variable edificios es más sensible para alcanzar valores
altos de la resultante que para valores bajos.