Apuntes Practicas en EXCEL Simulacion de Montecarlo

5

Click here to load reader

Transcript of Apuntes Practicas en EXCEL Simulacion de Montecarlo

Page 1: Apuntes Practicas en EXCEL Simulacion de Montecarlo

MICROSOFT EXCEL PARA DIRECCIÓN FINANCIERA I.

1. Resolución de problemas de simulación de Montecarlo mediante el uso de la hoja de cálculo. Mediante el modelo de Hertz o Simulación de Montecarlo, trataremos de calcular probabilidades, la esperanza de rentabilidad o el riesgo de un proyecto. Para ello, si R es la variable aleatoria que muestra la rentabilidad del proyecto (el VAN, la TIR...), lo que haremos será obtener un número suficientemente elevado de casos de la variable R para poder conocer su distribución de probabilidad. Para ello, es necesario conocer primero cómo está formada la variable aleatoria R, es decir, debemos descomponerla en las distintas variables aleatorias que la componen (por ejemplo, desembolso inicial, tasa de actualización, flujos de caja, precio de venta, unidades vendidas, costes fijos, costes variables, tipo impositivo, cuota de amortización, valor residual, duración del proyecto...). En el método de Hertz puede ser variable aleatoria cualquier componente de la fórmula de la rentabilidad (del Van, de la Tir...), pero con la exigencia de que dicha variable aleatoria debe ser totalmente conocida, es decir, no basta con saber que el número de unidades de producto vendidas para un año es normal, sino que hay que saber que es normal, con una esperanza de X unidades y una desviación típica de Y. Una vez definidas todas las variables aleatorias cuya función de densidad conocemos, y la relación funcional entre ellas que nos da como resultado la variable de rentabilidad, iremos obteniendo valores posibles de todas y cada una de las variables aleatorias. Al sustituir estos valores en la función de rentabilidad, obtendremos un valor de la rentabilidad del proyecto. No obstante, es necesario señalar que el valor obtenido es nada más que un posible valor. No sabemos si es un valor muy representativo (como podría ser la esperanza o la moda) o si es un valor extremo, muy remoto de obtener. Un solo valor no nos da información alguna. Veamos ahora cómo podemos realizar una simulación con la hoja de cálculo Microsoft Excel de la rentabilidad de un proyecto de inversión. Para ello, supongamos un proyecto simple con los siguientes datos: desembolso inicial: se distribuye normal con esperanza de 1.000 euros y desviación de 200; flujos de caja: los flujos de caja anuales se calculan como el número de productos vendidos por el margen obtenido por cada producto. Las ventas de cada año se distribuyen uniformemente entre 500 y 800 productos, mientras que el margen se distribuye normalmente con media 5 euros y desviación típica 1 euro; duración: la duración es aleatoria según la tabla adjunta: Duración en años 2 3 4 Probabilidad 20% 50% 30% El desembolso inicial y la duración son directamente dependientes, e independientes del resto de variables; a su vez, margen y ventas están negativamente relacionados. Calcular la esperanza y la desviación típica de la TIR del proyecto, así como la probabilidad de que el proyecto resulte rentable para una K=10%. Paso 1: el primer paso consiste en definir la variable de rentabilidad (TIR) y descubrir todas las variables aleatorias. En este caso, la TIR vendría dada por la expresión siguiente:

∑= +

⋅+−==

n

iiii

rMV

ArTIR~

1 )~1(

~~~

0/~

Las variables aleatorias que componen la TIR y sus características son las siguientes: Desembolso inicial: A à N (1.000, 200) Ventas del año i: Vià U (500, 800) Margen del año i: Mià N (5 , 1) Duración: n à discreta según tabla.

Page 2: Apuntes Practicas en EXCEL Simulacion de Montecarlo

Paso 2: el segundo paso consiste en ir obteniendo distintos valores para las distintas variables aleatorias obtenidas, para finalizar en el cálculo de un valor de la rentabilidad. Este proceso se denomina simulación. Para ello es necesario conocer las funciones de distribución o de probabilidad acumulada de las variables aleatorias y obtener, mediante la generación de números aleatorios, un valor correspondiente a dicha variable. Comencemos con la variable desembolso inicial. Para ello, nos situamos al comienzo de la hoja. En la primera fila iremos introduciendo los nombres que nos sirvan de guía y recordatorio de las operaciones que realizaremos debajo. Así, introduciremos lo siguiente:

A B C D Número aleatorio A Valor A =ALEATORIO()

=DISTR.NORM.INV(A2;1000;200)

En la primera columna introducimos la función =ALEATORIO()1. Esta función nos arrojará un número aleatorio entre 0 y 1, que nos servirá para obtener el valor de la variable. Para ello, buscaremos qué valor de la variable hace que la función de distribución de la misma sea igual a dicho valor aleatorio. Es decir, si la variable es X, su función de distribución es F y el número aleatorio es a, buscaremos un valor x, tal que F(x)=a. Nótese por tanto que lo que conocemos es el resultado de la función de distribución, pero no el valor que nos hace obtener dicho resultado. Por tanto, necesitaríamos utilizar la inversa de la función de la distribución. En el caso del desembolso inicial A, se distribuía según una normal. Para obtener valores inversos de una normal en EXCEL se utiliza la función =DISTR.NORM.INV(p;m;d), donde p es la probabilidad que queremos que valga la función de distribución normal (en nuestro caso, el número aleatorio), m es la esperanza de la distribución y d es la desviación típica. Así, por ejemplo, si el número aleatorio hubiera sido 0,123, el valor obtenido para A sería 768. Una vez obtenido el valor de la primera variable aleatoria, repetimos el proceso con el resto de variables aleatorias. Por ejemplo, la duración. Para ello, lo primero sería obtener el número aleatorio necesario para la simulación. Sin embargo, el problema nos advierte que duración y desembolso inicial son directamente dependientes. Para conseguir simular la correlación positiva entre las variables, es necesario que las simulaciones de ambas variables se realicen con el mismo número aleatorio. Así que el número necesario para la simulación del tiempo es el que está en la celda A2. Pasamos por tanto a realizar la simulación para la duración. En este caso, la variable es discreta y con una función sui generis. Su función de probabilidad acumulada sería: Duración en años 2 3 4 Probabilidad 20% 50% 30% Acumulada 20% 70% 100% Para obtener la duración del proyecto, seguiremos la siguiente regla de decisión: a) Si el número aleatorio es igual o menor que 20%, el valor será 2. b) Si el número aleatorio está entre 20% y 70%, el valor será 3. c) Si el número aleatorio es mayor que 70%, el valor será 4. Para introducir esta regla de decisión en la hoja de cálculo, emplearemos la función =SI(condición;verdadero;falso), donde condición es la condición que se intenta comprobar, verdadero el valor que tomará la celda o la acción a realizar en caso de ser verdadero y falso el valor o la acción a realizar en caso de ser falso. Introduciremos por tanto dicha regla de decisión:

1 Con cada nueva operación, la hoja de cálculo calculará un nuevo número aleatorio, así que los resultados estarán variando constantemente. Esto no representa ningún problema, si bien puede resultar un poco desconcertante al principio.

Page 3: Apuntes Practicas en EXCEL Simulacion de Montecarlo

A B C D Número aleatorio A Valor A Duración =ALEATORIO()

=DISTR.NORM.INV(A2;1000;200)

=SI(A2<=20%;2;si(A2<=70%;3;4))

Para calcular la duración, primero preguntamos si el número aleatorio (A2) es menor o igual que 20%. Si lo es, la duración valdrá 2. Si no, volvemos a preguntar si el número es menor que 70%; en caso afirmativo, la duración será 3; en caso negativo, será 4. Siguiendo con el ejemplo anterior, si el número aleatorio es 0,123, la duración del proyecto serían 2 años. Calculemos ahora el valor para la variable Ventas del primer año. Esta variable es independiente de las anteriores, luego será necesario calcular un nuevo número aleatorio para ella:

A B C D E Número aleatorio A

Valor A Duración Número aleatorio Ventas

Ventas año 1

=ALEATORIO()

=DISTR.NORM.INV(A2;1000;200)

=SI(A2<=20%;2;si(A2<=70%;3;4))

=ALEATORIO()

=D2*(800-500)+500

Las ventas se distribuyen según una variable uniforme, cuya función de distribución inversa (no existe una función predefinida en EXCEL para calcularla) es la siguiente:

PPOnX +−⋅= )(

Donde X es el valor de la variable buscado, n es la probabilidad obtenida con el número aleatorio, O es el valor máximo de la variable y P el valor mínimo. Así, por ejemplo, para un número aleatorio de 0,356, obtendríamos unas ventas de 607. Pasemos ahora a calcular el valor del margen del año 1. Esta variable se distribuye normalmente, por lo que emplearemos la función ya conocida de DISTR.NORM.INV. Además, esta variable está inversamente relacionada con las ventas, por lo que el número aleatorio que deberemos emplear en esta variable será el complementario a 1 del obtenido para las ventas (es decir, 1-nº para las ventas). Por tanto, en la columna F, incluiríamos lo siguiente:

D E F G H Número aleatorio Ventas

Ventas año 1 Margen año 1 Desembolso inicial Flujo de caja 1

=ALEATORIO()

=D2*(800-500)+500 =DISTR.NORM.INV(1-D2; 5; 1)

=-B2 =E2 * F2

Para el número aleatorio de ventas del ejemplo (0,356), el complementario a 1 sería 0,644, con lo que el valor del margen para el año 1 sería 5,37. Calculamos ahora en la columna G el flujo de caja del período 1, que es igual a las ventas del año por el margen. En el ejemplo, el valor sería de 3.258 euros. Ahora es necesario calcular los flujos de caja para los años 2, 3 y 4. No obstante, como las variables aleatorias que los componen son directamente dependientes entre sí a lo largo del tiempo (mismo número aleatorio) e igualmente distribuidas (misma función de distribución), el valor para los flujos de caja de los años 2, 3 y 4, en caso de existir, serían iguales a los del año 1. Pero el flujo de caja del año 4 existirá sólo si la duración es igual a 4 años, y el del año 3 sólo si la duración es 3 o 4, ya que en caso contrario serían nulos. Calculamos por tanto los flujos de caja para los 4 años de la siguiente forma:

G H I J K L Desembolso inicial Flujo de caja 1 Flujo de caja 2 Flujo de caja 3 Flujo de caja 4 TIR =-B2 =E2 * F2 =-H2 =si(C2>2;H2,0) =si(C2>3;H2;0) =TIR(G2:K2) Una vez obtenidos los cuatro flujos de caja, ya podemos calcular la TIR con la función TIR. No obstante, esta función exige que los valores utilizados estén consecutivos en filas o columnas, así que por ello hemos incluido el desembolso inicial delante del primer flujo de caja. El resultado para el ejemplo es del 244%.

Page 4: Apuntes Practicas en EXCEL Simulacion de Montecarlo

Paso 3. Una vez finalizada la simulación, tenemos un valor de la rentabilidad del proyecto, pero lo único que sabemos en nuestro ejemplo, es que la TIR puede valer 137%. No sabemos si puede valer más o menos, si es un valor bastante normal o si es un valor extremo. Para conocer todo esto, debemos de obtener muchos más valores, es decir, repetir el paso 2 (simulación) 5, 10, 15, 20.000 veces o las que sean necesarias. Sin embargo, la capacidad de EXCEL para copiar y pegar hacen que el proceso sea sumamente sencillo. Para realizar por ejemplo 1.000 simulaciones, seleccionaremos la fila 2, que es en la que hemos realizado los cálculos, y ejecutaremos el comando copiar (dándole al botón de copiar, seleccionando copiar en el menú Edición o pulsando CTRL+C). Seguidamente, seleccionaremos las celdas de la primera columna, desde la número 3 hasta la número 1001 (aunque se puede utilizar el ratón, la forma más rápida y segura de realizar esta selección es con el teclado, pulsando la tecla de mayúsculas y Avpág para avanzar rápido y los cursores hasta llegar al destino). Una vez seleccionadas las 999 celdas, pulsaremos INTRO o Pegar, con lo que habremos realizado las 1.000 simulaciones. Paso 4. Cálculo de esperanzas y desviaciones típicas. Ahora tenemos 1.000 valores de la TIR del proyecto. Si queremos calcular la esperanza de la TIR, un buen estimador sería la media aritmética de los valores obtenidos. Así, podemos calcular, por ejemplo en la columna M el promedio de los 1.000 valores:

L M N O P Q TIR Esperanza Desviación Típica =TIR(G2:K2) =PROMEDIO(L2:

L1001) =DESVESTP(L2:L1001)

Para ello usamos la función PROMEDIO. Asimismo, en la columna N podemos calcular la desviación típica de la variable con la función DESVESTP2. Paso 5. Cálculo de probabilidades. Deseamos ahora saber con qué probabilidad el proyecto es rentable. Para ello, sabemos que será rentable cuando la TIR sea superior al 10%, que es el valor de K. Así que vamos a utilizar la columna O para comprobar en cada caso si la TIR es superior o no al 10%:

L M N O P Q TIR Esperanza Desviación Típica ¿Rentable? Probabilidad =TIR(G2:K2) =PROMEDIO(L2:

L1001) =DESVESTP(L2:L1001)

=SI(L2>10%;1;0) =SUMA(O2:O1001)/1000

Así, si el proyecto es rentable, la celda O2 tomará el valor de 1 si el proyecto es rentable y 0 si no lo es. Copiaremos esta celda desde O3 hasta O1001, con lo que tendremos el diagnóstico de rentabilidad para cada caso. A continuación, en la celda P2, sumaremos la columna O, obteniendo así el número de casos que han resultado rentables, y, dividiéndolo por el número total de casos (1.000), obtendremos la probabilidad de que el proyecto sea rentable. Paso 6. Distribución de probabilidad. Aunque existen varios tests estadísticos que se pueden realizar para conocer si la distribución de la medida de rentabilidad buscada (TIR o VAN) se asemeja a alguna de las distribuciones conocidas (normal, beta, gamma...), nosotros nos contentaremos con un estudio más simple e intuitivo, basado en la observación del histograma para los datos obtenidos. Para poder obtener el histograma, es necesario que la hoja de cálculo Excel tenga instaladas las herramientas para análisis estadístico. Dichas herramientas estarán instaladas si aparece en el menú herramientas la opción “Análisis de datos...”. Si no es así, se deberán instalar. Para ello, en el menú herramientas, se seleccionará la opción complementos, y, dentro del cuadro de diálogo que se abre, se

2 Los resultados de estas funciones cambiarán, puesto que dependen de los número aleatorios utilizados. No obstante, cuanto mayor sea el número de simulaciones, menor variación sufrirán estos valores.

Page 5: Apuntes Practicas en EXCEL Simulacion de Montecarlo

seleccionará la opción “Herramientas para análisis”. Tras esto aparecerá ya en el menú herramientas la opción “Análisis de datos...”. Seleccionando esta opción, se nos abrirá un nuevo cuadro de diálogo en el que seleccionaremos la opción “Histograma”. En el rango de entrada incluiremos los valores obtenidos para la TIR (de L2 a L1001). En el rango de salida, elegiremos la celda de la hoja de cálculo donde queremos que nos muestre el histograma (por ejemplo, R2). A continuación seleccionaremos la opción “crear gráfico”, y pulsaremos Aceptar. Como resultado obtenemos el siguiente gráfico:

Donde se observa la función de densidad de la TIR. Vemos que, aunque con ligeras diferencias, resulta notablemente similar a una función Normal. En el fichero de Microsoft Excel denominado “Apuntes Excel”, se encuentra resuelto este problema en la hoja denominada “Hertz”. EJERCICIO PROPUESTO: Vuelva a calcular el ejercicio anterior, pero usando el VAN como función de rentabilidad. Suponga un coste de capital aleatorio, distribuido normalmente con media 5% y desviación 1%.

Histograma

020406080

100120140

1,022

2696

11

1,632

3043

85

2,242

3391

6

2,852

3739

34

3,462

4087

08

4,072

4434

82

4,682

4782

56

5,292

5130

3

5,902

5478

04

6,512

5825

79

7,122

6173

53

Clase

Fre

cuen

cia

Frecuencia