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