técnicas computacionales en la estadística

Transcripción

técnicas computacionales en la estadística
TÉCNICAS COMPUTACIONALES EN LA
ESTADÍSTICA BAYESIANA
Luis A. Barboza
Grupo de Estadı́stica Bayesiana (GEB)
Universidad de Costa Rica
Julio 2014
Técnicas computacionales en Estadı́stica Bayesiana
1
Contenidos
1
Repaso de Estadı́stica Bayesiana
2
Métodos basados en muestreo
3
Introducción a la técnicas MCMC
Metropolis-Hastings
Muestreo de Gibbs
4
Introducción a OpenBUGS
Técnicas computacionales en Estadı́stica Bayesiana
2
Situación Base
• Suponga que realizamos un experimento en donde una moneda se tira
al aire N veces.
• Se puede asumir que el hecho de que un resultado sea cara (1) o cruz
(0) no depende ni dependerá de otros intentos.
• Suponga que Y representa el resultado de tirar la moneda:
(
1 si el resultado es cara
Y =
0 si el resultado es cruz.
Técnicas computacionales en Estadı́stica Bayesiana
3
Situación Base
• Bajo las condiciones anteriores se podrı́a considerar Y ∼ Bernoulli(θ)
donde θ es la probabilidad de que el resultado sea “cara”:
Pθ [Y = 1] = θ,
Pθ [Y = 0] = 1 − θ
• De manera general:
Pθ [Y = y ] = θy (1 − θ)1−y
Técnicas computacionales en Estadı́stica Bayesiana
4
Situación Base
• La verosimilitud de todos los lanzamientos es:
Pθ [Y1 = y1 , . . . , YN = yN ] =
=
N
Y
i=1
N
Y
Pθ [Yi = yi ]
θyi (1 − θ)1−yi
i=1
• Y esta quedarı́a:
Pθ [Y1 = y1 , . . . , YN = yN ] = θz (1 − θ)N−z
P
donde z = i yi .
Técnicas computacionales en Estadı́stica Bayesiana
5
Densidad previa
• En el enfoque bayesiano, se asume que el parámetro θ es una variable
aleatoria con distribución previa.
• En este caso asumiremos que θ ∼ Beta(a, b), es decir:
Pa,b [θ] =
1
· θa−1 (1 − θ)b−1 .
B(a, b)
para a > 0, b > 0 y θ ∈ [0, 1]. La escogencia permite obtener una
posterior conjugada.
• Ejercicio 1: Grafique Pa,b [θ] para distintos valores de a, b > 0 y
θ ∈ [0, 1].
Técnicas computacionales en Estadı́stica Bayesiana
6
Links importantes
• R: http://cran.r-project.org/
• RStudio: http://www.rstudio.com/products/RStudio/
Técnicas computacionales en Estadı́stica Bayesiana
7
Distribución Posterior
• Sea Y = (Y1 , . . . , YN ) y y = (y1 , . . . , yN ). Usando la fórmula de
Bayes:
P[θ|Y = y] ∝ Pθ [Y = y] · Pa,b [θ]
= θz (1 − θ)N−z θa−1 (1 − θ)b−1
∝
θz+a−1 (1 − θ)N−z+b−1
.
B(z + a, N − z + b)
es decir θ|Y = y ∼ Beta(z + a, N − z + b), donde z =
Técnicas computacionales en Estadı́stica Bayesiana
P
i
yi .
8
Distribución Posterior
• Si X ∼ Beta(a, b) entonces E [X ] =
posterior de θ es:
a
a+b .
Por lo tanto la media
z +a
a+b+N
z
N
a
a+b
=
·
+
·
.
N a+b+N
a+b a+b+N
E [θ|Y = y] =
y esta serı́a un promedio ponderado de la media empı́rica (ȳ =
a
la media previa ( a+b
).
Técnicas computacionales en Estadı́stica Bayesiana
z
N)
y
9
Ejercicio 2
1
Genere una muestra de N = 500 lanzamientos de moneda con
θ = 0.4.
2
Asuma que los primeros 50 lanzamientos representan información
previa e infiera los hiperparámetros a y b a partir de esta submuestra.
3
Utilice Bayes para deducir la distribución posterior de θ dada la
muestra restante.
Grafique la distribución posterior y calcule:
4
Media posterior de θ. Compárela con la media empı́rica.
Intervalo de predicción de θ con un nivel de confianza del 95%.
Calcule la probabilidad posterior de la hipótesis H0 : θ < 0.38.
Técnicas computacionales en Estadı́stica Bayesiana
10
Previa no informativa
• Asuma que la distribución previa de θ es uniforme en [0,1].
• En este caso:
P[θ|Y = y] ∝ θz (1 − θ)N−z
es decir, θ|Y = y ∼ Beta(z + 1, N − z + 1).
• Note que Unif(0, 1) = Beta(1, 1).
• Continuación Ejercicio 2: Repita los puntos anteriores con la previa
uniforme.
Técnicas computacionales en Estadı́stica Bayesiana
11
Métodos basados en muestreo
Objetivo principal: Obtener una muestra de la probabilidad conjunta de los
parámetros.
• Muestreo independiente.
• Muestreo no independiente (con dependencia markoviana).
Técnicas computacionales en Estadı́stica Bayesiana
12
Muestreo independiente
Idea: Dada una distribución posterior P[θ|Y = y], queremos obtener una
muestra independiente.
• Continuación Ejemplo 2:
Obtenga una muestra independiente para ambas distribuciones
posteriores.
Calcule la media empı́rica y el intervalo de predicción empı́rico de θ al
95%.
Evalúe el efecto de incrementar el tamaño de muestra en el punto
anterior.
Técnicas computacionales en Estadı́stica Bayesiana
13
Limitaciones del muestreo independiente
• Se necesita conocer explı́citamente la distribución posterior conjunta
de los parámetros para obtener una muestra independiente.
• Hay casos en que la complejidad del modelo bayesiano no permite
obtener una distribución posterior conjunta, por ejemplo cuando el
número de parámetros es muy grande.
Técnicas computacionales en Estadı́stica Bayesiana
14
Muestreo dependiente
• En el caso en que la complejidad de los modelos bayesianos no
permite el muestreo independiente, podemos recurrir a algoritmos que
simulan procesos dependientes:
Algoritmo de Metropolis-Hastings.
Muestreo de Gibbs.
• Estos algoritmos pertenecen al conjunto de técnicas llamadas Cadenas
de Markov vı́a Monte Carlo (MCMC).
Técnicas computacionales en Estadı́stica Bayesiana
15
Algo de historia...
• Nicholas Metropolis et al. (1953): Cálculo de una integral múltiple
utilizada en modelos de equilibrio termodinámico (distribución de
Boltzmann).
• W. Hastings (1970): generaliza el algoritmo de Metropolis. Ya el
algoritmo era ampliamente usado por quı́micos y fı́sicos.
• Geman y Geman (1984): estudian un caso del algoritmo de
Metropolis-Hastings, aplicado al procesamiento de imágenes
(Muestreo de Gibbs). Tanner y Wong (1987): Concepto de “Data
Augmentation”
• Gelfand y Smith (1990).
• Green (1995): Generalización del algoritmo de Metropolis-Hastings.
Técnicas computacionales en Estadı́stica Bayesiana
16
Cadenas de Markov
Definición (Cadena de Markov)
Una sucesión X1 , X2 , . . . de variables aleatorias tal que:
P(Xn+1 ∈ A|X1 , . . . , Xn ) = P(Xn+1 ∈ A|Xn )
• A K (Xn , Xn+1 ) = P(Xn+1 |Xn ) se le llama kernel de transición (o
probabilidades de transición) de la cadena de Markov.
• Ejemplo: Una caminata aleatoria simple:
Xn+1 = Xn + n ,
n ∼ N(0, 1)
es una cadena de Markov con kernel K (Xn , Xn+1 ) = N(Xn , 1).
• Si el proceso es discreto, se le llama “estados” a los valores que
asume la cadena.
Técnicas computacionales en Estadı́stica Bayesiana
17
Cadenas de Markov (Propiedades)
• Una cadena de Markov es irreducible si es posible comunicarse con
cualquier estado en un número finito de pasos (caso discreto).
• Esta propiedad es importante porque mide la sensibilidad de la cadena
ante cambios en los valores iniciales.
Técnicas computacionales en Estadı́stica Bayesiana
18
Cadenas de Markov (Propiedades)
• Una cadena de Markov es recurrente si el número esperado de visitas
a cualquier estado (o conjunto) es infinito, dado que la cadena
empieza en un punto arbitrario del espacio muestral.
• Con esta propiedad nos garantizamos que la cadena va a visitar
cualquier región del espacio muestral frecuentemente.
Técnicas computacionales en Estadı́stica Bayesiana
19
Cadenas de Markov (Propiedades)
• Un sucesión de variables aleatorias es estacionaria si la distribución
conjunta de (Xn+1 , . . . , Xn+k ) no depende de n.
• Una cadena de Markov es estacionaria sii la distribución marginal de
Xn no depende de n.
• Es decir, existe una medida de probabilidad π tal que:
Xn ∼ π
para todo n.
• A π se le llama distribución estacionaria o invariante.
• Resultado: toda cadena recurrente es estacionaria.
Técnicas computacionales en Estadı́stica Bayesiana
20
Cadenas de Markov (Propiedades)
• Una cadena de Markov es reversible si:
P(Xn+1 ∈ A|Xn+2 ) = P(Xn+1 ∈ A|Xn )
• Una cadena satisface la condición de balance con la función f si:
K (y , x)f (y ) = K (x, y )f (x).
Teorema
Si una cadena de Markov satisface la condición de balance con la función
de densidad π, entonces:
• La cadena tiene densidad estacionaria π.
• La cadena es recurrente.
Técnicas computacionales en Estadı́stica Bayesiana
21
Ley de Grandes Números
Teorema (Teorema Ergódico)
Si Xn es una cadena de Markov recurrente y estacionaria (con medida
estacionaria π), entonces:
n
1X
c.s.
Xn −→ Eπ [X ].
n
i=1
Si Xn satisface el teorema anterior, se dice que Xn es ergódica.
Técnicas computacionales en Estadı́stica Bayesiana
22
MCMC
• Dada una función de densidad f , queremos obtener una muestra de f
sin simular directamente de ella.
• Solución:
Definición (MCMC)
Un método de cadena de Markov vı́a Monte Carlo (MCMC) para la
simulación de una densidad f es cualquier método que produce una
cadena de Markov ergódica cuya distribución estacionaria es f . [Robert
y Casella (2004)].
• Ventajas: métodos estables, con velocidad de convergencia aceptable.
Menos varianza que el Monte Carlo ordinario.
Técnicas computacionales en Estadı́stica Bayesiana
23
MCMC
Proceso computacional:
• Tome un valor inicial arbitrario X0
• Calcule Xn para n ≥ 1 a partir del método MCMC.
• Descarte los primeros B elementos de la muestra (“burn-in period”).
• Utilice el resto de la muestra para calcular: cuantiles, momentos,
intervalos de proyección, etc.
Técnicas computacionales en Estadı́stica Bayesiana
24
Metropolis-Hastings
Componentes:
• Densidad objetivo f . En el caso bayesiano, f es la densidad posterior
de algún parámetro(s).
• Densidad condicional o densidad propuesta q(y |x). Fácil de simular.
• Se requiere que se conozca la expresión f (y )/q(y |x), salvo alguna
constante dependiendo de x.
Técnicas computacionales en Estadı́stica Bayesiana
25
Metropolis-Hastings (Algoritmo)
Dado Xn = xn :
1
Genere una variable aleatoria Yn ∼ q(y |xn ),
2
Tome:
Xn+1
(
Yn
=
xn
con probabilidad ρ(xn , Yn ),
con probabilidad 1 − ρ(xn , Yn ),
donde:
ρ(x, y ) = min
f (y ) q(x|y )
,1 .
f (x) q(y |x)
A ρ(x, y ) se le llama: probabilidad de aceptación.
Técnicas computacionales en Estadı́stica Bayesiana
26
Metropolis-Hastings (Convergencia)
• Si q y f tienen el mismo soporte, entonces el kernel de la cadena de
Markov satisface la condición de balance con densidad f .
• La cadena tiene densidad estacionaria f .
• La cadena es irreducible y recurrente. Por lo tanto la cadena de M-H
es ergódica.
Técnicas computacionales en Estadı́stica Bayesiana
27
Muestreo de Gibbs (Preliminares)
• Suponga que para p > 1, se puede escribir un elemento muestral
X = (X1 , . . . , Xp ).
• Suponga que es posible simular variables aleatorias a partir de las
probabilidades condicionales f1 , . . . , fp :
Xi |x1 , x2 , . . . , xi−1 , xi+1 , . . . , xp ∼ fi (xi |x1 , x2 , . . . , xi−1 , xi+1 , . . . , xp )
para i = 1, . . . , p.
• En el caso bayesiano, fi : probabilidades condicionales posteriores de
parámetros.
Técnicas computacionales en Estadı́stica Bayesiana
28
Muestreo de Gibbs (Algoritmo)
(n)
(n)
Dado x(n) = (x1 , . . . , xp ), genere:
(n+1)
∼ f1 (x1 |x2 , . . . , xp );
(n+1)
∼ f2 (x2 |x1
1. X1
2. X2
(n)
(n+1)
(n)
(n)
(n)
, x3 , . . . , xp );
..
.
(n+1)
p. Xp
(n+1)
∼ fp (xp |x1
(n+1)
, . . . , xp−1 ).
Ventaja: Por lo general fi son unidimensionales. En el caso bayesiano fi
puede derivarse de una familia conjugada o a través de una cadena M-H.
Técnicas computacionales en Estadı́stica Bayesiana
29
Muestreo de Gibbs (Convergencia)
• Las propiedades de estacionaridad y irreducibilidad se satisfacen con
una modificación de la cadena Xn .
• Se puede probar que la modificación es ergódica, y por lo tanto el
proceso Xn es ergódico. A pesar de que Xn no siempre es una cadena
de Markov.
Técnicas computacionales en Estadı́stica Bayesiana
30
OpenBUGS
• Proyecto BUGS (Bayesian Inference using Gibbs Sampling). David
Spiegelhalter (Cambridge, UK). 1989.
• WinBUGS: provee interfaz gráfica a BUGS en Windows. Última
versión: Agosto 2007.
• OpenBUGS: versión libre de WinBUGS, con soporte continuo.
Funciona en Windows, Linux y Mac OS.
Tiene comunicación directa con R, a través del paquete BRugs.
Técnicas computacionales en Estadı́stica Bayesiana
31
OpenBUGS
Número de Cadenas
Número de iteraciones
Parámetros iniciales
OPENBUGS
Metropolis-Hastings
Muestreo de Gibbs
Cadenas de Markov
Gráficos y estadísticos de evaluación
Técnicas computacionales en Estadı́stica Bayesiana
32
Ejemplo 3
• Volvamos al ejemplo de las monedas. Supongamos que obtenemos 20
realizaciones:
y = (1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
• Se va a suponer que los hiperparámetros de la distribución beta son
a = 1 y b = 1. (previa no informativa)
• Abrimos OpenBUGS y seleccionamos File− >New.
Técnicas computacionales en Estadı́stica Bayesiana
33
Definición del modelo en BUGS
model{
#Verosimilitud
for(i in 1:N){
y[i]~dbern(theta)
}
#Distribucion previa
theta~dbeta(aprev,bprev)
aprev <-1
bprev <-1
}
data
list(y=c(1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0),N=20)
inits
list(theta=0.5)
Técnicas computacionales en Estadı́stica Bayesiana
34
Pasos
• Model− >Specification.
Verificación del modelo.
Carga de los datos.
Compilación.
Carga de valores iniciales. (o generación de valores iniciales de manera
aleatoria)
Notas:
• OpenBUGS permite la generación de MCMC en paralelo.
• OpenBUGS no puede generar aleatoriamente parámetros de precisión.
(inversos de varianzas)
Técnicas computacionales en Estadı́stica Bayesiana
35
Pasos
• Inference− >Samples. Definición de parámetros.
• Model− >Update. Especificación del número de muestras del MCMC.
• Model− >Input/Output. Modo de presentación de resultados finales.
(OPCIONAL)
• Inference− >Samples.
Selección de parámetros.
Selección de los estadı́sticos/gráficos de interés.
Técnicas computacionales en Estadı́stica Bayesiana
36
Resultados (Traceplot)
• Eje x: ı́ndice de la cadena de Markov. Eje y: realización de la cadena.
• La idea es obtener algo parecido a un ruido blanco, es decir no
debemos observar patrones a lo largo de las realizaciones.
• La estabilidad es un indicador de que hemos alcanzado el estado
estacionario en la cadena.
Técnicas computacionales en Estadı́stica Bayesiana
37
Resultados (Autocorrelación empı́rica)
• Este gráfico mide el nivel de dependencia en la cadena. Eje x: lag u
orden de rezago y Eje y: autocorrelación.
• La primera barra siempre es 1, uno espera que las demás sean
pequeñas y que conforme aumente el lag la autocorrelación disminuya.
Técnicas computacionales en Estadı́stica Bayesiana
38
Resultados
• Mean: media empı́rica posterior.
• sd: desviación estándar posterior.
• MC error: mide la dispersión en la muestra del MCMC. Error
estándar de la media empı́rica ajustado por la autocorrelación en la
muestra.
• val2.5pc, median y val97.5pc: cuantiles empı́ricos posteriores.
• sample: # de realizaciones y start: periodo de “burn-in”.
Técnicas computacionales en Estadı́stica Bayesiana
39
Continuación Ejemplo 3
• Calcule la media posterior y el intervalo de predicción de θ al 95%
usando R.
• Calcule una muestra independiente de la distribución posterior y
• Compare con los resultados anteriores.
• Vuelva a calcular todo el ejercicio usando 10000 muestras del MCMC
con un burn-in de 1000.
Técnicas computacionales en Estadı́stica Bayesiana
40
BRugs
• Interfaz en R que permite ejecutar OpenBUGS desde la consola.
• Desarrollada por Andrew Thomas en la Universidad de Helsinki,
Finlandia.
• Se debe tener instalado OpenBUGS primero.
• Instalación: install.packages(’BRugs’)
Técnicas computacionales en Estadı́stica Bayesiana
41
Instrucciones para usar BRugs
• Cargue el modelo en lenguaje BUGS dentro un archivo de texto.
• Verifique que la sintaxis del modelo está correcta usando:
modelCheck(fileName = ’ejemplo3.txt’).
• Defina los datos por medio del comando:
dataList=list(y=c(1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0)
• Cargue los datos con modelData(bugsData(dataList)).
• Compile el modelo: modelCompile()
Técnicas computacionales en Estadı́stica Bayesiana
42
Instrucciones para usar BRugs
• Cargue los valores iniciales:
inicial=list(theta=0.5)
modelInits(bugsData(inicial))
• O genere los valores iniciales aleatoriamente con modelGeninits().
• Defina los parámetros de interés con samplesSet(’theta’).
• Especificación del número de muestras y ejecución del MCMC.
modelUpdate(1000).
Técnicas computacionales en Estadı́stica Bayesiana
43
Instrucciones para usar BRugs
• Extraer los valores del MCMC:
thetasample=samplesSample(’theta’)
• Extraer el resumen con estadı́sticas:
thetastats=samplesStats(’theta’)
Técnicas computacionales en Estadı́stica Bayesiana
44
Ejemplo 4
• Los datos en el archivo desmoines.csv son una muestra de
log-concentraciones de mercurio en tejidos de peces en un lugar
particular del Rı́o Des Moines en Iowa. (Cowles, 2013).
• Se tiene 20 observaciones y una observación perdida.
• Objetivo: estimar la cantidad media de log-concentración en el Rı́o
Des Moines.
Técnicas computacionales en Estadı́stica Bayesiana
45
Ejemplo 4
Modelo:
y ∼ N(µ, σ 2 )
con distribución previa de µ:
µ ∼ N(µ0 , σ0 ).
con µ0 = −2.75, σ02 = 7.5 y σ 2 = 2.5.
• Este caso es conjugado, y uno puede probar que
2
1
nτ ȳ + τ02 µ0
, 2
,
µ|y ∼ N
nτ 2 + τ02
nτ + τ02
donde τ = σ −1 y τ0 = σ0−1 .
Técnicas computacionales en Estadı́stica Bayesiana
46
Ejemplo 4
• Utilice OpenBUGS para obtener una aproximación de la media
posterior:
µ|y =
nτ 2 ȳ + τ02 µ0
= −2.5658
nτ 2 + τ02
• Calcule un intervalo de predicción al 95% para µ y compárelo con el
teórico.
• Estime la distribución posterior de la observación perdida.
Técnicas computacionales en Estadı́stica Bayesiana
47
Ejemplo 5
Usando los mismos datos, utilice el siguiente modelo (no conjugado):
y ∼ N(µ, σ 2 )
con distribuciones previas:
µ ∼ N(µ0 , σ02 )
1
τ 2 := 2 ∼ Γ(a0 , b0 )
σ
donde µ0 = −2.75, σ0 = 7.5, a0 = b0 = 0.0001.
Técnicas computacionales en Estadı́stica Bayesiana
48
Ejemplo 5
• Utilice OpenBUGS para analizar el comportamiento de las muestras
posteriores de µ y θ.
• Analice la distribución posterior de la observación perdida.
Técnicas computacionales en Estadı́stica Bayesiana
49

Documentos relacionados