Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Estadística
Índice
• Introducción habituales
• Generación de números – método de Metropolis
aleatorios • Simulaciones
– uniformes entre 0 y 1 – Ejemplos de
– según una distribución simulaciones sencillas
cualquiera – Método de Bootstrap
– muestreo • Fenómenos de transporte:
• Aplicaciones propagación de una
• Generación de números partícula en un medio
aleatorios en muchas
dimensiones
– problema con métodos
Introducción
• intentaremos revisar las ideas fundamentales sobre ejemplos sencillos
• muchos ejemplos sacados de la física de partículas pero equivalentes en
muchos otros campos:
– una partícula que se propaga en un medio,
• puede ser una partícula elemental en un detector, en una
estrella, en un reactor nuclear, una mota de polvo en el aire, una
mancha de contaminación en el mar, un fotón en una fibra
óptica, una enfermedad en una población...
• Un mensaje general, estos métodos son muy potentes pero:
– no son la solución a todos los problemas
– si existe solución analítica aproximada puede ser mucho mejor
– o tal vez solución numérica
Introducción
• ¿Qué es una simulación? ¿qué es un método de MC? ¿es lo mismo?
– son conceptos muy amplio y bastante difusos
– para nosotros:
• método de MonteCarlo es utilizar números aleatorios para
resolver un problema
• simulación, utilizar números aleatorios para imitar un proceso
(físico en nuestro caso) inherentemente aleatorio y evaluar
magnitudes relacionadas
• ¿no es lo mismo?
• veremos que se pueden usar MC para resolver problemas no
relacionados con la estadística
Calculemos p
• ¿Sabes calcular p con un
trozo de tiza?
• inscribir un círculo radio 1
en un cuadrado
• lanzar al azar y contar
cuantas caen dentro del
total
• p=4*Ndentro/Ntotal
• No hacen falta
ordenadores!
Tipos generales de aplicación de MC
• cálculo de integrales y problemas asociados
– no son aleatorios
– el caso del cálculo de pi es un ejemplo de esto
• Resolución de problemas estadísticos:
– calcular intervalos de confianza, medias, medianas,
desviaciones...
• simulaciones:
– replicar un “experimento”
– un ejemplo clásico: transporte de radiación
Integración por números aleatorios
• Según la definición de integral como suma se puede ver
que:
𝑁
1 𝑖 𝑓(𝑥𝑖 )
• 0
𝑓 𝑥 𝑑𝑥 =< 𝑓 >≈ con x siguiendo una
𝑁
distribución uniforme
• más en general
𝑁
𝑏 𝑖 𝑓(𝑥𝑖 )
• 𝑎
𝑓 𝑥 𝑔(𝑥)𝑑𝑥 ≈ si g(x) es una distribución de
𝑁
probabilidad y generamos los número aleatorios de
acuerdo con esta probabilidad
• el método se puede extender a otros problemas (ec
integrales, minimización...)
Integrar por métodos numéricos
• Simplemente generar números de acuerdo con la
distribución de probabilidad
• evaluar la función en esos puntos
– no tiene por qué ser una función analítica, sólo se
evalúa en los puntos
• podemos calcular también la dispersión de estos valores lo
que nos da una idea del error que cometemos
– el error en la media de un conjunto de números que
siguen una distribución normal D=s/√N
• esto es cierto también para integrar en N dimensiones
– si N grande convergencia más rápida
• y para áreas/volúmenes/hypervolúmenes complicados
• algunos ejemplos...
Generación de números aleatorios
• Partimos de un generador de números aleatorios uniforme
entre 0 y 1
– disponible en todo tipo de aplicaciones
– generalmente series de números enteros generados de
forma recursiva a partir de una semilla
– son números pseudo-aleatorios: hay que comprobar su
calidad para vuestra aplicación:
• no basta con hacer una muestra de prueba, pintarlo y
ver que son aleatorios y siguen la ley que queremos,
pueden aparecer problemas de correlación
• existen tests para comprobar la calidad del
generador
• si es crítico para vuestro problema, hay que
estudiarlo
Generación de números aleatorios
• ¿cómo generar cualquier distribución a partir de un
generador de números uniformes? En una variable
• Recordad:
– si x sigue una ley de media 0 y desviación 1, podemos
construir y=m+s x
– si queremos hacer un cambio de variable xy
𝜌 𝑥 𝑑𝑥 = ℎ 𝑦 𝑑𝑦
• Si y es una variable aleatoria uniforme h(y)=1 entre 0 y 1
𝑥
– 𝜌 𝑥 𝑑𝑥 = 𝑑𝑦 ⇒ 𝑦 = −∞
𝜌 𝑥 𝑑𝑥 = 𝐹(𝑥) Función de
distribución
– x=F-1(y) seguirá la ley deseada
• observad que F(x), como y, definido entre 0 y 1
Generación de números aleatorios
• ejemplo sencillo e-x
𝑥 −𝑥
• 𝑦=𝐹 𝑥 = 0
𝑒 = 1 − 𝑒 −𝑥
• x = 𝐹 −1 𝑦 = −ln(1 − 𝑦)
• Procedimiento
– generamos número aleatorio uniforme entre 0 y 1
– la variable −ln(1 − 𝑦) se comporta como esta
exponencial
– si queremos con un “tiempo de vida” distinto se
multiplica por una constante
– tx seguirá una ley e-x/t
Números aleatorios según una pdf cualquiera
• Procedimiento, SI la pdf es integrable e invertible analíticamente
1. calculamos F(x), resolviendo la integral
2. obtenemos un número aleatorio según pdf uniforme
3. sacamos x=F-1(y) que seguirá la pdf deseada
(ver ejemplo de pdf exponencial)
• Caso particular de variables discretas
– F(x) a saltos, como suma de las prob de cada valor permitido
– para un y aleatorio uniforme, se saca el valor discreto xi que hace
𝑖−1 𝑖
0 𝑝𝑗 < 𝑥 < 0 𝑝𝑗
y
Números aleatorios según una pdf cualquiera
• ¿Y si no es integrable/invertible?: Existen métodos y “trucos”
• Integrar numéricamente y tabular
– Si integramos numéricamente podemos construir una
tabla, o una función de distribución a trozos
– Podemos operar como si fuera una variable discreta con
saltos muy pequeños
– no suele ser un método muy eficiente
– a veces los programas nos proporcionan funciones que no
consideramos analíticas habitualmente: por ejemplo la
función de error para generar números gaussianos
𝑥 2
𝑥 1 −2 1 𝑥
•𝐹 𝑥 = −∞ 2𝜋
𝑒 = + erf( )
2 √2
• a veces se ofrece su inversa a partir de la función
gamma
Números aleatorios según una pdf cualquiera
• “método de la composición”
– descomponer la pdf como sumas de pdf manejables
– por ejemplo, suma de 3 pdf exponenciales
– 𝜌 𝑥 = 𝑎 ∗ 𝑒 −𝑥 + 𝑏 ∗ 𝑒 −2𝑥 +c∗ 𝑒 −3𝑥 (a,b y c tales que
la integral es 1)
– Se calcula la prob correspondiente a cada pdf
• (∫fi)
– se genera un número aleatorio discreto de acuerdo con
esas probabilidades
– se escoge cual de las pdf individuales se han escogido
– se lanza un número aleatorio de acuerdo con esta
distribución
Generar n.a. según pdf normal
• Muy habitualmente tenemos que generar números de
acuerdo con una pdf normal
• no siempre nos lo ofrece el generador incorporado
• no se encuentra entre los casos ”fáciles” anteriores
• Se resuelve de la siguiente manera:
– planteamos el problema de generar 2 números según
esta pdf x e y
– si se pasa a polares el problema es integrable/invertible
en r2 y q
– se sacan dos números aleatorios z= r2 y q según estas
distribuciones
– se obtiene x=√2z*cos(q) (se ignora y, o se calcula como
y=√2z*sin(q))
• ejemplo de generación y aplicación a “prop. de errores”
Métodos de rechazo
• Si no valen otros métodos y
podemos acotar la pdf...
• Se generan dos números
aleatorios uniformes
– uno en el rango de las x,
otro entre 0 y el valor
máximo
• Si el punto queda bajo la
pdf se acepta en otro caso
se rechaza
• Los puntos elegidos siguen
la ley deseada
• ejemplo x2 entre -1 y 1
Métodos de rechazo
• El método tiene una eficiencia (cuantos de los números que
generamos se aprovechan) dada por el cociente de áreas
– puede hacerse ineficiente
• si el rango de las variables va a infinito hay que truncar
• obliga a conocer el máximo de la función
• se puede extender fácilmente a N-variables, correlacionadas
o no
• existe una extensión llamada muestreo de importancia que
optimiza la eficiencia
“importance” sampling
• Queremos generar números • Se generan dos números
de acuerdo con f(x) aleatorios x (según g) y R
• Buscamos una función g(x) (uniforme entre 0 y 1), se
de la que tengamos un acepta si Rf0(x)<f(x)
generador de números • Es mucho más eficiente si la
aleatorios y verifique: función se aproxima de
– g(x) se aproxima a f(x) verdad a la real
– existe una cte C, tal que
f0(x)=C*g(x)>f(x) en
todo el intervalo
Números aleatorios en N-Dimensiones
• Buscamos obtener números aleatorios de acuerdo con una densidad de
probabilidad genérica definida por más de una variable: r(x)
• Los métodos habituales de muestreo (sampling) se pueden extender a
N-Dimensiones ...
• ...pero son muy poco eficientes:
– Típicamente la eficiencia del método (cuántos números aleatorios
necesitamos para obtener uno que nos valga) viene dada por el
cociente entre el área subtendida por la función de densidad que
muestreamos y un área que englobe toda la función
• ya es poco eficiente para casos en que la función varía mucho
– en n dimensiones son hipervolúmenes
• curse of dimensionality... típicamente la eficiencia escala como
potencias de la dimensión eN→0 si e<1 y N grande
– por ejemplo, si lo usáramos para hacer sampling de e-x2 (no
debemos hacerlo!!!) entre -10 y 10
• para dimensión 1, tendremos una eficiencia de ~9%
• para dimensión 10, 3·10-11
Números aleatorios en N-Dimensiones
• Antes de ir a métodos multidimensionales hay que comprobar siempre
si el problema se puede factorizar:
– generar n distribuciones uni-dimensionales es siempre mucho más
eficiente que generar una n-dimensional
• Algunas sugerencias para reducir la dimensión:
– comprobar si las variables (o algunas de ellas) son independientes,
en ese caso factorizar directamente
– comprobar si las variables sólo están correlacionadas linealmente:
transformar en independientes (como en PCA)
– pensar si hay algún cambio de variable que las pueda hacer
independientes, p ej, cambio de coordenadas
cartesianas↔esféricas↔polares
– existe alguna simplificación razonable que lo haga lineal?
• Si nada funciona, un método sencillo y eficiente:
– Algoritmo de Metropolis
Algoritmo de Metropolis
• Propuesto en 1953 por Nicholas Metropolis
• Una extensión muy utilizada propuesta Hastings en 1970
– se habla a menudo del método de Metropolis-Hastings
• Una versión simplificada del procedimiento:
– se comienza con un punto cualquiera del espacio permitido r, es el
llamado walker (si se obtiene como número aleatorio de una
distribución aproximada convergerá más rápido)
– se obtiene un r’=r+d donde d es un vector obtenido de forma que
cada una de sus componentes es un número aleatorio de una ley
uniforme entre –a y a. (random walk)
– se evalúa q=r(r’)/r(r)
– se obtiene un número aleatorio t según una ley uniforme entre 0 y
1
– si t<q se hace ri+1= r’, en otro caso ri+1= r
• obviamente si q>1 siempre se acepta el nuevo punto
– si repetimos esto un número suficiente de veces converge a un
número aleatorio según r(r)
Algoritmo de Metropolis
• En la práctica se empieza con varios walkers según una distribución
aproximada (p.ej, despreciando correlaciones)
• En cada iteración se actualizan todos los walkers (con random walks
independientes)
• Al cabo de n iteraciones, tenemos una realización de la p.d.f.
• Se puede ir viendo como converge alguna magnitud asociada al p.d.f.
(una integral, una velocidad media, un r.m.s., una temperatura...)
• La elección del rango de random walk es arbitraria:
– un valor demasiado pequeño hará la convergencia lenta
– un valor demasiado grande, complicará ver estructuras
• en el límite, estaríamos en un sampling estándar
– típicamente es apropiado un valor del orden de las estructuras
• Aspectos importantes del método:
– no hace falta normalizar la función de probabilidad
– sólo hay que calcularla en los puntos concretos del walker
– no tenemos que conocer/estimar el valor máximo, ni el rango
(hipervolumen que englobe la pdf)
Dos ejemplos
• Obtener números según una distribución gaussiana
(recordad que hay métodos mejores en este caso)
– empezamos con una uniforme entre -2 y 2
– para a=1 hay una buena convergencia en 5 o 6 pasos
– para a=0.1 en 18 aún no se parece demasiado
– para a=10 se parece al cabo de unas 10, pero no mejora
demasiado
• lo mismo para una gaussiana doble
– para a=1 converge algo más lento, unos 15 pasos
– para a=10, sale bien en 7-8 pasos
Más ejemplos
• El método de Metropolis se puede aplicar de forma sencilla a casos de
formulación matemática no trivial
• Por ejemplo el caso de esferas rígidas en una caja según la ley que sea,
pero sin poderse solapar ni solapar con los bordes
– basta con asignar probabilidad 0 a los casos en que los walkers
lleven a condiciones de solapamiento
– hay que asegurarse que en el primer paso no hay walkers en zonas
de probabilidad 0 (habría división por 0)