aleatorio en excel

13
7/25/2019 ALEATORIO en Excel http://slidepdf.com/reader/full/aleatorio-en-excel 1/13 CREACIÓN DE UNA CAMPANA DE GAUSS CON EXCEL Usar el fichero: campana!lsm Veamos cómo crear una campana de Gauss. Trataremos de ver gráficamente el Teorema Central del Límite. Partimos de una serie de números aleatorios que se distribuen según una distribución uniforme entre ! ". #$!%"& Los aleatorios se obtienen con la función de '(cel) =ALEATORIO() 'l teorema central del límite nos dice que necesitaríamos infinitos valores% pero lo *aremos con únicamente "+ valores. Calculamos la media de estos valores con la función) =PROMEDIO(datos) 'sta media se encuentra en la celda C"% cada ve, que escribimos algo en una celda% o cada ve, que pulsamos la tecla -% se recalculan los valores% a que se basan en números aleatorios. /ueremos que los valores de la celda C" 0el promedio1 se copien secuencialmente en la columna '% de forma automática. Para conseguir nuestro ob2etivo utili,aremos una macro. La macro ano"a permite escribir los valores de los promedios en la columna '% poniendo tantos como necesitemos. 'n la imagen el bucle -34...5'6T llega *asta "!.!!! valores. #IS$OGRAMA Para crear el *istograma de frecuencias definimos los intervalos. 'legimos +! intervalos para obtenerlos en la columna G *acemos una serie que comien,a en ! finali,a en "% con un intervalo de !%!7. 1

Upload: albert90151

Post on 28-Feb-2018

248 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ALEATORIO en Excel

7/25/2019 ALEATORIO en Excel

http://slidepdf.com/reader/full/aleatorio-en-excel 1/13

CREACIÓN DE UNA CAMPANA DE GAUSS CON EXCEL

Usar el fichero: campana!lsm

Veamos cómo crear una campana de Gauss. Trataremos de ver gráficamente el Teorema Central del Límite.

Partimos de una serie de números aleatorios que se distribuen según una distribución uniforme entre ! ". #$!%"&

Los aleatorios se obtienen con la función de '(cel) =ALEATORIO()

'l  teorema central del límite  nos dice que necesitaríamos infinitos valores% pero lo *aremos con únicamente "+valores.

Calculamos la media de estos valores con la función) =PROMEDIO(datos)

'sta media se encuentra en la celda C"% cada ve, que escribimos algo en una celda% o cada ve, que pulsamos latecla -% se recalculan los valores% a que se basan en números aleatorios.

/ueremos que los valores de la celda C" 0el promedio1 se copien secuencialmente en la columna '% de formaautomática. Para conseguir nuestro ob2etivo utili,aremos una macro.

La macro ano"a permite escribir los valores de los promedios en la columna '% poniendo tantos como necesitemos.'n la imagen el bucle -34...5'6T llega *asta "!.!!! valores.

#IS$OGRAMA

Para crear el *istograma de frecuencias definimos los intervalos. 'legimos +! intervalos para obtenerlos en lacolumna G *acemos una serie que comien,a en ! finali,a en "% con un intervalo de !%!7.

1

Page 2: ALEATORIO en Excel

7/25/2019 ALEATORIO en Excel

http://slidepdf.com/reader/full/aleatorio-en-excel 2/13

8 su derec*a de2amos preparada una ,ona donde mediante la función -48C#'5C98 determinaremos cuantosdatos% de entre las "!.!!! medias generadas% se encuentran dentro de cada intervalo.

La función -recuencia tiene la siguiente sinta(is) =FRECUENCIA(datos;grupos)

• :onde los %a"os son los valores de la columna '% que es donde se encuentran las "!.!!! anotaciones de los

 promedios generados.

• :onde &r'pos es el rango G")G+" que es done se encuentran los intervalos que *emos definido.

's una función matricial que requiere tres pasos)

( ;eleccionar con el ratón 0o con el teclado1 la ,ona donde la función de2ará sus resultados. 'n este caso abarca

más de una celda% concretamente es la ,ona amarilla) ;e escribe la función matricial propiamente dic*a. 'n este caso% se escribe la función -recuencia

*  5o se valida pulsando 95T43. ;e *an de pulsar simultáneamente las tres teclas siguientes)C35T43L<=8>?;C#L8;<95T43

Para saber más sobre funciones matriciales consulte el siguiente post)

+'nciones ma"riciales en E!cel

;i ponemos en *ori,ontal los valores obtenidos con la función -recuencia% con un poco de imaginación se puede

ver a la campana de Gauss.

2

Page 3: ALEATORIO en Excel

7/25/2019 ALEATORIO en Excel

http://slidepdf.com/reader/full/aleatorio-en-excel 3/13

4ealicemos el gráfico.

MEDIA MÓ,IL

;i pulsamos sobre el gráfico con el botón derec*o del ratón% podemos elegir @8gregar línea de tendencia@% detodas ellas elegir la =edia =óvil. 8sí obtendremos el siguiente gráfico.

LO$ER-A PRIMI$I,A

Usar el fichero: lo"eria!ls

Veamos un caso de simulación del 2uego de la Lotería Primitiva. ;e trata de simular un gran número de 2ugadas comprobar cuántos aciertos de A% B% 7% se producen. La macro no pretende audar a ganar dinero con este 2uegode a,ar. ;us pretensiones son formativas% a que aprenderemos a programar macros con matrices funciones. 8 la

vista de los pobres resultados alcan,ados% posiblemente la consecuencia sea que usted no vuelva a 2ugar a la lotería primitiva.

REGLAS

3

Page 4: ALEATORIO en Excel

7/25/2019 ALEATORIO en Excel

http://slidepdf.com/reader/full/aleatorio-en-excel 4/13

:isponemos de B números% entre " B. ;e deben elegir de ellos% sin repetición. La 2ugada ganadora estácompuesta por otros números% igualmente elegidos entre los B disponibles. ;e compara nuestra 2ugada con laganadora. 4eciben premio los 2ugadores que tienen una combinación de números que coincide con la ganadora en Ao B o 7 o . 'l premio maor se obtiene si tienes coincidencias% el menor si tienes A coincidencias. La cuantíadel premio varía en función del número de acertantes e(istentes en cada categoría.

9nicialmente estas fueron las reglas. Posteriormente aDadieron la e(istencia de un número complementario% que dalugar a un premio intermedio entre el de acertar 7 . ;e trata de acertar 7 más el número complementario. Lae(istencia de esta nueva regla no la vamos a considerar en nuestra simulación para simplificar el caso.

+UNCIÓN GENERA

Eemos creado una función que genera números aleatorios sin repetición entre " B.

4

Page 5: ALEATORIO en Excel

7/25/2019 ALEATORIO en Excel

http://slidepdf.com/reader/full/aleatorio-en-excel 5/13

3bservar que se inclue la instrucción  Randomize que en Visual Fasic permite iniciali,ar la semilla de los númerosaleatorios. 'quivale a bara2ar las cartas de una bara2a para sacar nuevas cartas al a,ar.

MACRO

:isponemos de una macro que es la que dirige el flu2o del programa. Llama a la función Genera inicialmente parasolicitarle la combinación ganadora% posteriormente cada ve, que se reali,a una 2ugada.

5

Page 6: ALEATORIO en Excel

7/25/2019 ALEATORIO en Excel

http://slidepdf.com/reader/full/aleatorio-en-excel 6/13

;e comparan todos los elementos de la 2ugada con la ganadora% se determina el número de aciertos. ;i los aciertosson A% o B o 7 o % se llevan a una matri, F01 que acumula el número de aciertos de cada categoría.

• F0A1 acumula los acierto de A

• F0B1 acumula los acierto de B

• F071 acumula los acierto de 7

• F01 acumula los acierto de

• F0"1 F0+1 no se utili,an para nada.

CON$INUA

6

Page 7: ALEATORIO en Excel

7/25/2019 ALEATORIO en Excel

http://slidepdf.com/reader/full/aleatorio-en-excel 7/13

#na variante sobre la macro anterior es otra macro que traba2a de forma continua que no para *asta que el usuariola detiene% por e2emplo pulsando la tecla 'sc. :espus de pulsar 'sc sale una pantalla avisando de la interrupciónde la macro% en ella debe pulsas sobre H-inali,arH.

'sta macro cada "!!.!!! 2ugadas reali,adas muestra en pantalla los resultados alcan,ados. 'sto nos permite ver laevolución de los acierto.

Código:

Option Expi!it 

 Pri"at# Fun!tion $#n#ra() As %&t#()

 Di' A() As %&t#

 Di' i As Long 

 Di' As %&t#

 Di' U As %&t#

 Di' r#p# As %oo#an

 Rando'i*#

 A(+) = Int(,- . Rnd / +) For i = 0 To  

 Do

U = Int(,- . Rnd) / +

r#p# = Fas#

 For = + To i 1 +

 I2 U = A() T3#n r#p# = Tru#4 Exit For 

 N#xt

 Loop 53i# r#p#

 A(i) = U 

 N#xt i$#n#ra = A

 End Fun!tion

6u7 pri'iti"a8!ontinua()

 Di' i As %&t#

 Di' As Dou7#

 Di' 9 As %&t#

 Di' s As %&t# :a!u'ua as a!#rtadas

 Di' %() As Long :%()< %(,)< %()< %() a!u'uan as ugadas ganadas d# <,<< 

 Di' $() As %&t# :!o'7ina!i>n ganadora

 Di' ?() As %&t#

$ = $#n#ra()

 For i = + To :I'pri'i'os a $anadora

C#s(i / ,< 0) = $(i)

 N#xt i

 Do

  = / + : #s a ugada

 ? = $#n#ra()

 s = @

 For i = + To  

 For 9 = + To  

 I2 $(i) = ?(9) T3#n s = s / +4 Exit For 

 N#xt 9 

 N#xt i

 For i = To  

7

Page 8: ALEATORIO en Excel

7/25/2019 ALEATORIO en Excel

http://slidepdf.com/reader/full/aleatorio-en-excel 8/13

 I2 s = i T3#n %(i) = %(i) / +

 N#xt i

 I2 Int( +@@@@@) B ( +@@@@@) = @ T3#n

 For i = To :I'pri'i'os os r#sutados

C#s(i / 0< ) = %(i)

 N#xt i

C#s(+@< ) =

 End I2 

 Loop

 End 6u7

Tras de2ar funcionando mi portatil durante oc*o *oras media% conseguí algo más de cuatro mil millones de 2ugadas 0B."+.I!!.!!!1 siendo los aciertos obtenidos los siguientes.

:e aciertos no se consiguió ningún acierto. 'sto probablemente no sea mu representativo debido a que estamos

mane2ando números pseudoaleatorios% que no son verdaderamente aleatorios.

's posible que se me2oraran los resultados obtenidos utili,ando no una única 2ugada ganadora% sino una ganadora por cada apuesta reali,ada.

Pero% independientemente de este caso% lo que se ve con claridad es que no es mu rentable% en trminos medios% 2ugar a la lotería. 8unque siempre nos quedará el consuelo de pensar que... @a alguien le toca@.

GENERACIÓN DE N.MEROS ALEA$ORIOS .NICOS /SIN REPE$ICIÓN0

 Usar el fichero RND'nicos!ls

Generar números aleatorios en '(cel es tarea sencilla. Con la función =ALEATORIO()% con la función=ALEATORIOENTRE % en lengua2e de Visual Fasic con la función  RND% que es la abreviatura de random. Por elcontrario% si lo que deseamos es generar una serie de números aleatorios sin repetición la tarea se complica un poco%a que debemos ir comprobando por cada número nuevo% si se encuentra entre los anteriormente generados encaso afirmativo desec*arle generar otro.

8

Page 9: ALEATORIO en Excel

7/25/2019 ALEATORIO en Excel

http://slidepdf.com/reader/full/aleatorio-en-excel 9/13

La siguiente macro nos permite reali,ar la tarea descrita.

9

Page 10: ALEATORIO en Excel

7/25/2019 ALEATORIO en Excel

http://slidepdf.com/reader/full/aleatorio-en-excel 10/13

'(iste otra variante de esta macro que utili,a el comando  Find  para buscar el nuevo número aleatorio generadoentre los anteriores. ;i le encuentra entre los a generados en la columna F buscará un nuevo número aleatorio.

8l comando Find  es necesario aDadirle la propiedad  Loo9At4=x53o# para que localice e(actamente el número buscado. ;i esto no se *iciera así% sucede que busca por las cifras% si está buscando el número "% piensa que seencuentra% por e2emplo% en la cifra "!I% o en la J"% esto es% siempre que apare,ca un ".

SIMULACIÓN DE MON$ECARLO: APLICACIÓN +INANCIERA

 Usar el fichero: sim'la1ono!ls

'n este fic*ero de '(cel reali,amos un caso de simulación de =ontecarlo aplicado a 4enta -i2a. =ásconcretamente% lo que *acemos es traba2ar con bonos en los que el cupón anual no es de cuantía cierta sinoaleatoria.

'l cupón se a2usta a una distribución normal de media 7!! desviación 7!. 507!!K7!1.

=DI6TRNORMIN(ALEATORIO();@@;@)

10

Page 11: ALEATORIO en Excel

7/25/2019 ALEATORIO en Excel

http://slidepdf.com/reader/full/aleatorio-en-excel 11/13

Conocida la 'TT9 0'structura Temporal de los Tipos de 9nteres1 o Curva de Tipos podemos calcular el precio de un bono. Para el bono 8 0celda amarilla1 el precio se calcula con la siguiente e(presión)

=B6UMA((Fuosa(+/ETTI)Ti#'po))G

Los corc*etes indican que se trata de una fórmula matricial que se introduce no pulsando 95T43% sino pulsandoControl<=aúsculas<95T43.

'n la celda -7 0color a,ul1 indicamos en cuantos aDos madura el Fono F% utili,ando la fórmula)

=ALEATORIOENTRE(H;-)

'sta fórmula genera números aleatorios enteros entre un mínimo un má(imo. 'n este caso *emos escrito entre J

. ;e utili,a para indicar la duración variable en aDos del bono F.

;i la fórmula fuera =ALEATORIOENTRE(-;-) no supondría variación aleatoria% a que el número de aDos deduración sería siempre .

11

Page 12: ALEATORIO en Excel

7/25/2019 ALEATORIO en Excel

http://slidepdf.com/reader/full/aleatorio-en-excel 12/13

8l pulsar la tecla - 0recálculo manual1 los valores aleatorios se recalculan. 'sto supone que cambien el importe delos cupones de los bonos e incluso la duración del Fono F. Lo que implica que la T94 0Tasa 9nterna de4entabilidad1 que e(presa la rentabilidad del bono sea una variable aleatoria.

Vamos a estudiar la T94 del Fono F. 8l tratarse de una variable aleatoria la identificaremos estudiando sudistribución de probabilidad. Por el Teorema Central del Límite sabemos que al traba2ar con múltiples funciones dedistribución% en el caso e(tremo 0cuando n tiende a infinito% o en este caso cuando el número de iteraciones es

suficientemente grande1 casi siempre la distribución que se obtienen en una 5ormal o Campana de Gauss.

Para generar las iteraciones% recalculamos la T94 del Fono F un elevado número de veces% por e2emplo "!.!!! anotamos en la columna E las concrecciones de la T94 así obtenida. Con esos "!.!!! valores de T94 efectuamos unanálisis de frecuencias% creando un *istograma de frecuencias tal como se vio en un post anterior. 'l análisis del*istograma nos permite a2ustar la distribución a una 5ormal% cua media varian,a podemos calcular.

'n el caso de que la duración del Fono F sea aleatoria entre J % obtenemos dos Campanas de Gauss.

12

Page 13: ALEATORIO en Excel

7/25/2019 ALEATORIO en Excel

http://slidepdf.com/reader/full/aleatorio-en-excel 13/13

#tili,amos una macro para ir anotando en la columna E las diferentes T94 que se obtienen en las iteraciones.

6u7 'ont#!aro()

 Di' n :n'#ro d# int#ra!ion#s

 Di' i

 Appi!ation6!r##nUpdating = Fas#

n = Input%ox(JIntrodu*!a # n'#ro d# it#ra!ion#sJ< 8 

JEntrada d# datosJ< +@@@@)

 For i = + To n

C#s(i / < H) = Rang#(JF+-J)

 N#xt i

 Appi!ation6!r##nUpdating = Tru#

 End 6u7

SIMULACIÓN DE UNA DIS$RI2UCIÓN NORMAL

'n '(cel disponemos de una función de distribución que genera directamente valores a2ustados a una distribuciónnormal% pero en esta ocasión vamos a generarlos sin recurrir a las funciones de '(cel. La denominada transformadade Fo(=Mller permite generar una distribución 5ormal. Para ello se utili,an dos distribuciones #niformes $!K"&%que en '(cel se obtienen con la función) =ALEATORIO()

La función es la siguiente) =/RAI?((B0.LN(ALEATORIO()))).6ENO(0.PI().ALEATORIO())

Podríamos programar una función que nos d una 5ormal de media mu desviación típica sigma.

Por e2emplo% la función =xNORMAL(+@@;0) nos proporcionará un número aleatorio que se a2usta a una distribución

normal de media "!! desviación típica +.

13