Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
Aleatorios , Variables aleatorias, Método de monte carlo
Flores Hernández Jovanna Ivette
04 de enero del 2020.
Instituto Tecnológico De Cancún.
Simulación.
ii
Contenido Número aleatorio ............................................................................................................. 3 Algoritmo de Fisher-Yates ............................................................................................... 3
Descripción del algoritmo ................................................................................................ 3 Variable aleatoria ............................................................................................................. 4 Definición de variable aleatoria ....................................................................................... 5
Concepto intuitivo ................................................................................................................ 5 Inducción de la probabilidad a variables aleatorias ......................................................... 6
Distribución acumulativa o función de distribución ........................................................ 7 Las variables aleatorias discretas ..................................................................................... 8
Generación de variables discretas .................................................................................... 8 Método de inversión de la función de distribución .......................................................... 9 Las variables aleatorias continuas .................................................................................... 9 El Método de Monte Carlo .............................................................................................. 9
Ejemplo de la simulación de Montecarlo ....................................................................... 11
3
Número aleatorio
Un número aleatorio es un resultado de una combinación variable al azar especificada por
una función de distribución. Cuando no se especifica ninguna distribución, se presupone
que se utiliza la distribución uniforme continua en el intervalo [0,1).
En los ordenadores personales es fácil simular la generación de números aleatorios,
mediante mecanismos de generación de números pseudoaleatorios, que, sin ser aleatorios
(siguen una fórmula), lo aparentan. (Ran#)
Los números pseudoaleatorios aparentan ser aleatorios porque solo puede medirse la
equiprobabilidad de un número aleatorio, mientras que su impredecibilidad es
inmensurable.
Algoritmo de Fisher-Yates
Este algoritmo (o alguna variante del mismo), es el que se usa típicamente para barajar en
los juegos de azar.
También es el algoritmo que permite recorrer toda una selección (por ejemplo, una lista
musical), de forma aleatoria una sola vez (una reproducción por cada elemento en la lista).
Ver más detalles en la sección más abajo.
El algoritmo Fisher-Yates, es un algoritmo de permutaciones que técnicamente encaja en la
categoría de los algoritmos de ordenamiento, aunque en este caso, el fin perseguido es el
opuesto, desordenar los ítems que contiene. Y por tanto debería constar en las bibliotecas
de ordenamiento como Random Sort al menos. (wiki, NA)
Descripción del algoritmo
La forma más simple de entenderlo es partir de la forma popular:
Se escribe cada número en un papelito doblado (construir el array), se introducen todos los
números en un sombrero, se agita el contenido dentro del sombrero (se barajan), luego se
van sacando papelitos que son dispuestos en el mismo orden en que se sacan, hasta que no
quede ninguno. El resultado es la lista barajada.
La descripción (grosso modo) que dan Fisher y Yates es la siguiente: Se escribe en una
línea los números del orden de la serie de 0 (ó 1) hasta el final de la serie (se supone una
serie corta, manejable mediante lápiz y papel) y se dispone debajo otra línea vacía. Y se
hace lo siguiente:
Se elige uno al azar.
Se escribe en otra línea (a la derecha de los que ya haya escritos).
Se tacha de la línea anterior (el número salido al azar).
Se repiten estos 3 pasos, hasta que solo quede 1, en la línea de arriba sin tachar, entonces
se toma directamente y se pasa a la de abajo.
https://es.wikipedia.org/wiki/Variable_estad%C3%ADsticahttps://es.wikipedia.org/wiki/Funci%C3%B3n_de_distribuci%C3%B3nhttps://es.wikipedia.org/wiki/Intervalo_(matem%C3%A1tica)https://es.wikipedia.org/wiki/N%C3%BAmero_seudo-aleatorio
4
La descripción de Durstenfeld, varía de la de Fisher y Yates, en que al llevarla a cabo en un
programa se trata de ahorrar memoria y por tanto trata de usar el mismo array, para ello, va
intercambiando el valor de la posición al azar, y lo remplaza por el último del array no
remplazado ya. Es decir, al iniciar el algoritmo, el primero elegido se remplaza por el
último, en el siguiente ciclo se elige al azar entre todos menos el último, que ahora se
remplaza por el penúltimo, y de nuevo se elige otro al azar entre todos menos los dos
últimos, etc... Básicamente, Durstenfeld, escribe el resultado a la izquierda del previo, en
tanto que Fisher-Yates, lo hacía a la derecha.
Es un error común pensar que la aleatoriedad de la lista es dependiente del algoritmo de
barajado (siempre que sea correcto, que para cada posición sea elegida una posición al
azar), cuando en realidad es dependiente del algoritmo de aleatoriedad/pseudoaleatoriedad.
La lista simplemente es reordenada de otra manera, siempre contiene los mismos valores,
solo cambian sus posiciones, que son dependientes del algoritmo de aleatoriedad (que no
se está implementando, en ningún caso). En cualquier caso, una vez construido el
algoritmo, puede o debe probarse su imparcialidad demostrando las desviaciones de
probabilidad. (Estadistica, NA)
Variable aleatoria
Una variable aleatoria es una función que asigna un valor, usualmente numérico, al
resultado de un experimento aleatorio. Por ejemplo, los posibles resultados de tirar un dado
dos veces: (1, 1), (1, 2), etc. o un número real (p.e., la temperatura máxima medida a lo
largo del día en una ciudad concreta).
Los valores posibles de una variable aleatoria pueden representar los posibles resultados de
un experimento aún no realizado, o los posibles valores de una cantidad cuyo valor
actualmente existente es incierto (p.e., como resultado de medición incompleta o
imprecisa). Intuitivamente, una variable aleatoria puede tomarse como una cantidad cuyo
valor no es fijo pero puede tomar diferentes valores; una distribución de probabilidad se
usa para describir la probabilidad de que se den los diferentes valores. En términos
formales una variable aleatoria es una función definida sobre un espacio de probabilidad.
Las variables aleatorias suelen tomar valores reales, pero se pueden considerar valores
aleatorios como valores lógicos, funciones o cualquier tipo de elementos (de un espacio
medible). El término elemento aleatorio se utiliza para englobar todo ese tipo de conceptos
relacionados. Un concepto relacionado es el de proceso estocástico, un conjunto de
variables aleatorias ordenadas (habitualmente por orden o tiempo).
https://es.wikipedia.org/wiki/Sesgo_muestralhttps://es.wikipedia.org/wiki/Pruebas_de_aleatoriedadhttps://es.wikipedia.org/wiki/Pruebas_de_aleatoriedadhttps://es.wikipedia.org/wiki/Experimento_aleatoriohttps://es.wikipedia.org/wiki/Distribuci%C3%B3n_de_probabilidadhttps://es.wikipedia.org/wiki/Espacio_de_probabilidadhttps://es.wikipedia.org/w/index.php?title=Elemento_aleatorio&action=edit&redlink=1https://es.wikipedia.org/wiki/Proceso_estoc%C3%A1stico
5
Definición de variable aleatoria
Concepto intuitivo
Una variable aleatoria puede concebirse como un valor numérico que está afectado por el
azar. Dada una variable aleatoria no es posible conocer con certeza el valor que tomará esta
al ser medida o determinada, aunque sí se conoce que existe una distribución de
probabilidad asociada al conjunto de valores posibles. Por ejemplo, en una epidemia de
cólera, se sabe que una persona cualquiera puede enfermar o no (suceso), pero no se sabe
cuál de los dos sucesos va a ocurrir. Solamente se puede decir que existe una probabilidad
de que la persona enferme.
Para trabajar de manera sólida con variables aleatorias en general es necesario considerar
un gran número de experimentos aleatorios, para su tratamiento estadístico, cuantificar los
resultados de modo que se asigne un número real a cada uno de los resultados posibles del
experimento. De este modo se establece una relación funcional entre elementos del espacio
muestral asociado al experimento y números reales.
Variable aleatoria
Una función que asocia un número real, perfectamente definido, a cada punto muestral.
A veces las variables aleatorias (v.a.) están ya implícitas en los puntos muestrales.
Ejemplo 1: Experiencia consistente en medir la presión sistólica de 100 individuos. Un
punto muestral (resultado de un experimento) es ya un número (presión sistólica). La v.a.
está implícita.
Ejemplo 2: En el ejemplo de la mujer portadora de hemofilia.
W = {sss, ssn, sns, snn, nss, nsn, nns, nnn}
Se podría definir una variable que asignara a cada punto muestral el número de orden en el
espacio muestral.
X: sss 1; ssn 2; sns 3;...
Pero otra posible v.a.: a cada punto muestral el número de s. X: sss 3; ssn 2; ...
Los conjuntos pueden ser:
discretos: número finito o infinito numerable de elementos.
continuos: número infinito no numerable de elementos.
Las v.a. definidas sobre espacios muestrales discretos se llaman v.a. discretas y las
definidas sobre espacios muestrales continuos se llaman continuas.
Una v.a. puede ser continua, aunque nosotros sólo podamos acceder a un subconjunto
finito de valores. P.e. la presión arterial es una v.a. continua pero sólo podemos acceder a
un conjunto finito de valores por la limitación de los aparatos de medida.
En general, las medidas dan lugar a v.a. continuas y los conteos a v.a. discretas.
https://es.wikipedia.org/wiki/Valor_num%C3%A9ricohttps://es.wikipedia.org/wiki/Distribuci%C3%B3n_de_probabilidadhttps://es.wikipedia.org/wiki/Distribuci%C3%B3n_de_probabilidadhttps://es.wikipedia.org/wiki/Experimento_aleatoriohttps://es.wikipedia.org/wiki/Evento_estad%C3%ADstico#Evento_o_suceso_elementalhttps://es.wikipedia.org/wiki/Correlaci%C3%B3nhttps://es.wikipedia.org/wiki/Espacio_muestralhttps://es.wikipedia.org/wiki/Espacio_muestralhttp://www.hrc.es/bioest/Probabilidad_12.html#eje1
6
Inducción de la probabilidad a variables aleatorias
Las v.a permiten definir la probabilidad como una función numérica (de variable real) en
lugar de como una función de conjunto como se había definido antes
Ejemplo 3: Tiramos una moneda 3 veces. Representamos cara por c y cruz por z.
W = {ccc, ccz, czc, zcc, czz, zcz, zzc, zzz}
La probabilidad de cada suceso elemental es 1/8. Por ejemplo p(ccc)=1/8, ya que la
probabilidad de sacar cara en una tirada es 1/2 según la definición clásica y las tiradas
son independientes.
Definimos la v.a. X: número de caras, que puede tomar los valores {0, 1, 2, 3}. Se buscan
todos los puntos muestrales que dan lugar a cada valor de la variable y a ese valor se le
asigna la probabilidad del suceso correspondiente.
x Sucesos px
0 {zzz} 1/8
1 {czz, zcz, zzc} 3/8
2 {ccz, czc, zcc} 3/8
3 {ccc} 1/8
A esta función se le denomina función densidad de probabilidad (fdp), que
desgraciadamente "funciona" de distinta manera en las variables discreta que en las
continuas. En el caso de las variables discretas, como en el ejemplo, es una función que
para cada valor de la variable da su probabilidad.
Ejemplo 4: Supongamos la variable tipo histológico de un tumor, con los valores 1, 2, 3, 4.
Si la fdp fuera x f(x)
1 0,22
2 0,27
3 0,30
4 0,21
significaría que la probabilidad del tipo 2 es 0,27, etc.
http://www.hrc.es/bioest/Probabilidad_13.htmlhttp://www.hrc.es/bioest/Probabilidad_1.html#clasicahttp://www.hrc.es/bioest/Probabilidad_16.html
7
Para variables continuas la probabilidad de que una variable tome cualquier valor concreto
es 0, por lo tanto, la fdp sólo permite calcular la probabilidad para un intervalo del tipo
(a
8
Ejemplo 5: Se tira un dado. Se define como v.a. el número que sale ¿Cuál es su media?
La variable X puede tomar los valores 1, 2, ..., 6 y para todos ellos f(x) = 1/6. En
consecuencia, la media es
Obsérvese que es un número que la v.a. no puede alcanzar. ¿Qué significa? No mucho.
Se define ahora una función sobre X: el premio: si sale 1 ó 2 se gana 100 ptas, si sale 3 se
gana 500 y si sale 4, 5 ó 6 no se gana nada X h(x) 1 100 2 100 3 500 4 0 5 0 6 0
¿Cuál es el valor medio de esta función?
¿qué significa? es el valor medio a la larga: si se juega un número grande de veces la
ganancia final es como si en cada jugada se hubiera ganado 116,6 pts. Si la apuesta costara
menos de eso el juego sería ventajoso para el jugador (así se enriqueció Voltaire), si
costara más, para la banca. (llamar a esto honestidad del juego le costó el puesto de
ministro a Laplace). (cajal, NA)
Las variables aleatorias discretas
Las variables aleatorias discretas son las que sólo pueden tomar resultados enteros.
Ejemplo
El resultado de la tirada de un dado, el número de gente que acude a un evento...
Generación de variables discretas
A lo largo de esta sección, consideraremos una variable aleatoria X cuya función
puntual es probabilidad es P (X = xi) = pi ≥ 0, i ∈ I y Σi∈I pi = 1.
9
Método de inversión de la función de distribución
Para general valores de X a partir de números aleatorios, dividimos el intervalo (0, 1) en tantas
partes como valores tome la variable X, de modo que el i-´esimo intervalo tenga probabilidad pi.
(PDF, s.f.)
Las variables aleatorias continuas
Las variables aleatorias continuas pueden tomar cualquier valor real dentro de su intervalo.
Ejemplo
La duración de una bombilla, la altura o peso de una persona, la temperatura de una
habitación...
El Método de Monte Carlo
El método de Monte Carlo es una técnica numérica para calcular probabilidades y otras
cantidades relacionadas, utilizando secuencias de números aleatorios.
Para el caso de una sola variable el procedimiento es la siguiente: Generar una serie de
números aleatorios, r1, r2,…,rm, uniformemente distribuidos en [0,1]
Usar esta secuencia para producir otra secuencia, x1, x2,…,xm, distribuida de acuerdo a la
pdf en la que estamos interesados.
Usar la secuencia de valores x para estimar alguna propiedad de f(x). Los valores de x
pueden tratarse como medidas simuladas y a partir de ellos puede estimarse la probabilidad
de que los x tomen valores en una cierta región. Formalmente un cálculo MC no es otra
cosa que una integración.
En general, para integrales unidimensionales pueden usarse otros métodos numéricos más
optimizados. El método MC es, sin embargo, muy útil para integraciones
multidimensionales
Generación de números aleatorios
Son necesarios para proporcionar la secuencia aleatoria inicial (uniformemente distribuida
entre 0 y 1).
10
Existen numerosos algoritmos de generación de números (pseudo) aleatorios. En
particular, las diferentes variantes de RANLUX, disponibles en todas las bibliotecas
matemáticas modernas (CERN, GSL, etc.)
Un ejemplo sencillo es el algoritmo MLCG (multiplicative linear congruential generator)
ni+1 = (ani)mod m,
ni = entero
a = multiplicador
m= módulo
n0 semilla
a=3, m=7, n0 = 1→ ni+1 = (3ni) mod 7
n0 = 1
n1 =(3⋅1)mod7=3 n2 =(3⋅3)mod7=2 n3 =(3⋅2)mod7=6 n4 =(3⋅6)mod7=4 n5 =(3⋅4)mod7=5 n6 =(3⋅5)mod7=1
n1,n2…siguen una secuencia periódica en el rango [1,m-1]. En general se escoge a y m
para obtener un periodo largo: Por ejemplo, en una máquina de 32 bits, m=2147483399,
a=40692 proporcionan buenos resultados y el máximo periodo.
Para obtener valores uniformemente distribuidos entre 0 y 1 usamos la transformación:
r i = ni/mi
La secuencia n1,n2… no es aleatoria, sino por el contrario determinista (y reproducible!)
pero para todos los efectos puede considerarse como una secuencia de números aleatorios.
11
Ejemplo de la simulación de Montecarlo
Supongamos que queremos contratar a un gestor que realice operaciones por nosotros en la
bolsa de valores. El gestor presume de haber ganado 50% de rentabilidad durante el último
año con una cuenta de valores de 20.000 dólares. Para confirmar que lo que dice es verdad,
le pedimos su track record auditado. Es decir, el registro de todas sus
operaciones verificado por una auditora (para evitar estafas y cuentas falsas). El gestor nos
facilita toda la documentación y procedemos a valorar la cuenta de resultados.
Vamos a suponer que disponemos de 20.000 dólares. Introducimos las variables
correspondientes en nuestro programa informático y extraemos el siguiente gráfico:
Con los resultados facilitados por el gestor que queremos contratar, se han realizado
10.000 simulaciones. Además, los resultados se han proyectado cuatro años. Esto es,
10.000 escenarios diferentes para esos resultados durante cuatro años. En la gran mayoría
de escenarios se genera una rentabilidad positiva, pero existe una pequeña probabilidad de
perder dinero. La simulación de Montecarlo nos facilita una infinidad de combinaciones
para evaluar escenarios de los que a simple vista no somos conscientes.
Ejemplo:
Supongamos que tenemos un satélite, que para su funcionamiento depende de que al
menos 2 paneles solares de los 5 que tiene disponibles estén en funcionamiento, y
queremos calcular φ la vida útil esperada del satélite (el tiempo promedio de
funcionamiento hasta que falla, usualmente conocido en la literatura como MTTF - Mean
Time To Failure). Supongamos que cada panel solar tiene una vida útil que es aleatoria, y
esta uniformemente distribuida en el rango [1000 hs, 5000 hs] (valor promedio: 3000 hs).
Para estimar por Monte Carlo el valor de φ, haremos n experimentos, cada uno de los
cuales consistirá en sortear el tiempo de falla de cada uno de los paneles solares del
satélite, y observar cual es el momento en el cual han fallado 4 de los mismos, esta es la
https://economipedia.com/definiciones/track-record.htmlhttps://economipedia.com/definiciones/informe-de-auditoria.html
12
variable aleatoria cuya esperanza es el tiempo promedio de funcionamiento del satélite. El
valor promedio de las n observaciones nos proporciona una estimación de φ.
Table 1: Una simulación detallada con n = 6 experimentos.
De esta simulación, tenemos un valor estimado para la vida útil esperada del satélite de
3683. Un indicador del error que podemos estar cometiendo es la varianza o
equivalentemente la desviación estándar de Sn, que en este caso es (haciendo los cálculos)
297.
AL GOR I T MOS
El algoritmo de Simulación Monte Carlo Crudo o Puro está fundamentado en la
generación de números aleatorios por el método de Transformación Inversa, el cual se basa en
las distribuciones acumuladas de frecuencias:
Determinar la/s V.A. y sus distribuciones acumuladas(F)
Generar un número aleatorio
uniforme (0,1).
Determinar el valor de la V.A. para el número
aleatorio generado de acuerdo a las clases que
tengamos.
Calcular media, desviación estándar error y realizar el histograma.
Analizar resultados para distintos tamaños de muestra.
Iterar tantas veces como muestras
necesitamos
1
Otra opción para trabajar con Monte Carlo, cuando la variable aleatoria no es
directamente el resultado de la simulación o tenemos relaciones entre variables es
la siguiente:
Diseñar el modelo lógico de decisión
Especificar distribuciones de probabilidad para las variables aleatorias
relevantes.
Incluir posibles dependencias entre variables.
Muestrear valores de las variables aleatorias.
Calcular el resultado del modelo según los valores del muestreo
(iteración) y registrar el resultado
Repetir el proceso hasta tener una muestra estadísticamente
representativa
Obtener la distribución de frecuencias del resultado de las iteraciones
Calcular media, desvío.
Analizar los resultados
Las principales características a tener en cuenta para la implementación o
utilización del algoritmo son:
El sistema debe ser descripto por 1 o más funciones de distribución de probabilidad (fdp)
Generador de números aleatorios: como se generan los números
aleatorios es importante para evitar que se produzca correlación entre los
valores muestrales.
Establecer límites y reglas de muestreo para las fdp: conocemos que valores pueden adoptar las variables.
Definir Scoring: Cuando un valor aleatorio tiene o no sentido para el modelo a simular.
Estimación Error: ¿Con que error trabajamos, cuanto error podemos
aceptar para que una corrida sea válida? Técnicas de reducción de varianza.
Paralelización y vectorización: En aplicaciones con muchas variables se estudia trabajar con varios procesadores paralelos para realizar la
simulación.
2
EJ E MP L O P RAC TI C O
Tenemos la siguiente distribución de probabilidades para una demanda aleatoria y
queremos ver que sucede con el promedio de la demanda en varias iteraciones:
Utilizando la distribución acumulada(F(x) es la probabilidad que la variable
aleatoria tome valores menores o iguales a x) podemos determinar cual es el valor
obtenido de unidades cuando se genera un número aleatorio a partir de una
distribución continua uniforme. Este método de generación de variable aleatoria se
llama Transformación Inversa.
Unidades
Frecuencia
Frecuencia Acumulada
42 0.10 0.10
45 0.20 0.30
48 0.40 0.70
51 0.20 0.90
54 0.10 1.00
Generando los valores aleatorios vamos a ver como se obtiene el valor de la
demanda para cada día, interesándonos en este caso como es el orden de aparición
de los valores. Se busca el número aleatorio generado en la tabla de probabilidades
acumuladas, una vez
42 45 48 51 54
Demanda F
recu
en
cia
3
encontrado (si no es el valor exacto, éste debe ser menor que el de la fila
seleccionada pero mayor que el de la fila anterior), de esa fila tomada como
solución se toma el valor de las unidades (Cuando trabajamos en Excel debemos
tomar el límite inferior del intervalo para busca en las acumuladas, para poder
emplear la función BUSCARV (), para 42 sería 0, para 43 0,100001 y así
sucesivamente). Ejemplo: Supongamos que el número aleatorio generado sea 0,52,
¿a qué valor de unidades corresponde? Nos fijamos en la columna de frecuencias
acumuladas, ese valor exacto no aparece, el siguiente mayor es 0,70 y corresponde
a 48 unidades.
Se puede apreciar mejor en el gráfico, trazando una recta desde el eje de la
frecuencia hasta que interseca con la línea de la función acumulada, luego se baja
a la coordenada de unidades y se obtiene el valor correspondiente; en este caso 48.
Cuando trabajamos con variables discretas la función acumulada tiene un intervalo
o salto para cada variable (para
casos prácticos hay que definir los intervalos y luego con una función de búsqueda
hallar el valor). Para funciones continuas se puede hallar la inversa de la función
acumulada.
De esta forma logramos a partir de la distribución de densidad calcular los
valores de la variable aleatoria dada.
54 51 48
Unidades
42 45
0.10
0.30
0.70
0.90 1.00
1.20
1.00
0.80
0.60
0.20
0.00
Demanda
Fre
cuen
cia
s
Número de
Simulación
Números
aleatorios
Valor de la
Demanda
1 0.92 54
2 0.71 51
3 0.85 51
... ... ...
n 0.46 48
4
En la siguiente tabla, vemos como a medida que aumenta el numero de
simulaciones, el valor simulado se acerca al valor original de la media y
desviación estándar, además de la disminución del error típico. Cantidad de
simulaciones
Media
Desvío
Error
10 48.60 3.41 1.08
100 48.12 3.16 0.32
1000 47.87 3.28 0.10
10000 47.87 3.30 0.03