16
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.

Aleatorios , Variables aleatorias, Método de monte carlo...2020/02/06  · Las v.a. definidas sobre espacios muestrales discretos se llaman v.a. discretas y las definidas sobre espacios

  • 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