Вы находитесь на странице: 1из 6

Mtodo de Monte Carlo y la desviacin estndar

Camilo Andres Cruz Cardozo Cod 133630


12 de noviembre de 2014

1.

Monte Carlo

La Simulacin de Monte Carlo es una tcnica que permite llevar a cabo la


valoracin de los proyectos de inversin considerando que una, o varias, de las
variables que se utilizan para la determinacin de los ujos netos de caja no son
variables ciertas, sino que pueden tomar varios valores. Por tanto, se trata de
una tcnica que permite introducir el riesgo en la valoracin de los proyectos de
inversin.
La tcnica de la simulacin de Monte Carlo se basa en simular la realidad
a travs del estudio de una muestra, que se ha generado de forma totalmente
aleatoria. Resulta, por tanto, de gran utilidad en los casos en los que no es
posible obtener informacin sobre la realidad a analizar, o cuando la experimentacin no es posible, o es muy costosa. As, permite tener en cuenta para el
anlisis un elevado nmero de escenarios aleatorios, por lo que, se puede decir
que hace posible llevar la tcnica del anlisis de escenarios al innito ampliando la perspectiva de los escenarios posibles. De esta forma, se pueden realizar
anlisis que se ajusten en mayor medida a la variabilidad real de las variables
consideradas. La aplicacin de esta tcnica se basa en la identicacin de las
variables que se consideran ms signicativas, as como las relaciones existentes
entre ellas (aunque esto puede resultar realmente complejo), para explicar la
realidad a estudiar mediante la sustitucin del universo real, por un universo
terico utilizando nmeros aleatorios.
La simulacin de Monte Carlo data del ao 1940, cuando Neuman y Ulam
la aplicaron en el campo de la experimentacin de armas nucleares. A partir de
entonces, se ha demostrado que es una tcnica que puede ser aplicada en campos
de diversa ndole, utilizndose por primera vez para el anlisis de inversiones en
el ao 1964 por Hertz. Hay algunas aplicaciones informticas especcas, como
es el caso del programa "@Risk"de Palisade, o el ristal Bowl", que permiten
tener en cuenta la correlacin existente entre las variables, y realizar el anlisis
del riesgo en la valoracin de proyectos de inversin utilizando la simulacin de
Monte Carlo.

2.

Programa

Se gener un dado de 6 caras utilizando las libreras propias de ROOT para


generar nmeros aleatorios se lanz un dado 10 veces y se calcul la probabilidad
de salir el numero 3 llenando cada vez un histograma con el valor obtenido,
repitiendo el proceso 1000 veces.
Del histograma se obtuvo la media y la desviacin estndar, accediendo a los
mtodos de TH1F, repitiendo el mismo procedimiento para 50, 100, 500, 1000,
5000, 10000, 500000 lanzamientos, gracando la desviacin estndar y la media
en funcin del nmero de lanzamientos.
Finalmente usando el mtodo TH1F::Fit y un objeto de la clase TF1 se
realiz un ajuste a las distribuciones.

3.

Cdigo y anlisis

En la primera parte del cdigo llamamos las libreras que usaremos para
el programa, de donde caben resaltar la librera vector que nos indica que en
algn momento usaremos un vector de dicha librera, la librera T F 1 me permite
manear funciones preestablecidas y a librera T H1F la cual esta encargada de
manejar todo lo referente a histogramas, la librera T Graph que nos indica
que en algn momento realizaremos una grca en un marco creado gracias
a T Canvas y siendo modicadas por T Style encargada de manejar el tema de
estilo y presentacin de nuestras grcas y marcos. Cabe resaltar la importancia
de T Random una librera especializada en el manejo de nmeros aleatorios.

Denimos una funcin llamada makeseed o creador de semillas, en este caso


nuestra funcin depender de un ao, un mes, un da, una hora, un minuto y
un segundo especcos en este caso almacenados en una estructura temporal
llamada birthday o cumpleaos sugiriendo que usemos dicha fecha personal,
a partir de los cuales podemos calcular el nmero de segundos que han pasado
desde entonces gracias al mtodo dif f timey almacenado en el entero sec valor
que evidentemente cambiara muy rpido y ser diferente cada vez que lo necesitemos. En este caso denimos a r un elemento del tipo T Random e cual a
partir de una semilla me genera un numero cualquiera entre [0, 1], como nuestra
semilla ira cambiando tambin lo har nuestro nmero aleatorio.

Empezamos con la creacin del cuerpo de nuestro programa en donde vemos un


elemento generalizado dado por gStyle usando el mtodo SetOptF it y usando
el carcter 111, lnea encargada de modicar gracas y asignar un estilo especico al trazo de nuestra grca. Luego denimos nuestras variables especcas,
denimos tres enteros nt que nos indicara el nmero de repeticiones, en este
3

caso 1000, n y N que nos indicaran el nmero de dados y el nmero de caras


respectivamente, en este caso un dado de seis caras, y un decimal p, junto a
un elemento vectorial N um, de siete elementos en donde se almacenaran el nmero de lanzamientos, 50, 100, 500, 1000 y 50000. A la par denimos a g y o,
dos elementos de T Graph en donde se almacenaran los datos de las grcas,
y denimos a hr y hr2 dos elementos de T H1F , es decir dos histogramas los
cuales reciben, un nombre, un ttulo, la cantidad de bin o pasos, el punto inicial
y el nal. Por ltimo y de gran importancia, denimos a graf un vector de
histogramas.

Es en esta parte en la que creamos nuestro dado empezando con un ciclo


sobre los elementos del vector N um que contiene el nmero de lanzamientos,
estos valores son usados en un nuevo ciclo para determinar los lmites de cada iteracin, dentro de un ciclo que incluye el nmero de intentos repitiendo
el proceso 1000 veces para cada cantidad de lanzamientos, denimos el entero
r5 el cual se encuentra antes del ciclo que determinara el nmero de caras de
nuestro dado, en este ltimo ciclo se cran dos nmeros aleatorios usando nuestra
variable r bajo el mtodo Rndm() para denir dos nmeros decimales r1 y r2
que como sabemos sern nmeros entre cero y uno, por lo cual denimos r3
y r4 donde almacenamos nmeros enteros entre [1, 6] usando nuestros nmeros
aleatorios multiplicndolo por el nmero de caras y tomando la parte entera,
terminando el ciclo y almacenando el valor obtenido en el histograma hr, llenando el histograma con 1000 valores aleatorios, observando una distribucin
especica. Usando el mtodo GetBinContent con el n de obtener exactamente
el nmero de entradas para un valor especico, e este caso para el numero 3 y
dividiendo sobre el total de datos con el n de calcular la probabilidad p para
dicho valor y almacenarla en el segundo histograma hr2 en funcin del nmero
de lanzamientos, cerramos el ciclo y reseteamos el histograma.

Terminando el ltimo ciclo se almacenan los puntos en las grcas g y o


usando el mtodo SetP oint, en donde obtenemos la media de cada histograma
mediante GetM ean y la desviacin estndar con GetRM S cada uno en funcin
del nmero de lanzamientos, almacenamos en graf el histograma hr2 y los
reseteamos con el n de volver a empezar el ciclo para un nuevo nmero de
lanzamientos.

Finalizamos deniendo el tamao del marco y dividindolo en dos columnas


con 5 las, donde las dos primeras gracas corresponden a g y o seguidas del
histograma para cada probabilidad segn el nmero de lanzamientos de menor
a mayor de izquierda a derecha.
Sabemos segn la teora y las observaciones que para el mtodo de monte
Carlo nuestra media tendr un comportamiento constante en forma de recta,
y = ax + b

(1)

Mientras que nuestra desviacin estndar tiene forma potencial negativa es


decir que nuestra desviacin disminuye a medida que aumenta el nmero de
lanzamientos.
y = axb

(2)

Realizando el ajuste directamente sobre el graco, deniendo nuestras funciones como elementos de T F 1 y aplicando el mtodo F it sobre los puntos de
la grca, obtenemos que para la media
y = (6,123 0,1835) 109 x + (0,1665 0,0003)

(3)

y = (0,3693 0,0285)x0,49550,0172

(4)

Donde se observa una alta precisin y exactitud, ajustndose adecuadamente al


resultado esperado segn la teora.

Вам также может понравиться