Bioestadı́stica. Análisis bayesiano de datos experimentales Diego Salmerón Martı́nez [email protected] http://webs.um.es/dsm/miwiki/doku.php (Universidad de Murcia) Murcia 2012/2013 1 / 95 Introducción. Estimación a posteriori y distribuciones a priori no informativas. Análisis bayesiano de muestras con distribución normal. Métodos de Monte Carlo (MC) y de Monte Carlo y Cadenas de Markov (MCMC). Aspectos computacionales con R y WinBUGS. Inferencia bayesiana en modelos lineales y en modelos de regresión logı́stica. (Universidad de Murcia) Murcia 2012/2013 2 / 95 Introducción El punto de partida en inferencia paramétrica es un modelo de probabilidad para los datos x = (x1 , ..., xn ). Generalmente dicho modelo vendrá definido mediante una función de densidad f (x|θ) parametrizada por el parámetro θ ∈ Θ ⊆ Rk , x|θ ∼ f (x|θ), θ ∈ Θ. Objetivo: estimar el parámetro θ. Los datos han sido generados según el modelo f (x|θ) para algún valor desconocido de θ y el objetivo es estimar dicho valor a partir de la observación de los datos x. (Universidad de Murcia) Murcia 2012/2013 3 / 95 Estimador de máxima verosimilitud La función θ ∈ Θ 7→ f (x|θ) se conoce como función de verosimilitud para los datos x. Una de las formas de estimar el parámetro θ es usando el estimador de máxima verosimilitud definido como θ̂ = arg maxθ f (x|θ) = arg maxθ log f (x|θ) (Universidad de Murcia) Murcia 2012/2013 4 / 95 Example Si asumimos que los datos son una muestra de una distribución normal con varianza 1 y media µ desconocida: x1 , ..., xn iid N(µ, 1), entonces la función de verosimilitud es n Y (xi − µ)2 −1/2 f (x1 , ..., xn |µ) = (2π) exp − . 2 i=1 El parámetro desconocido µ puede ser estimado con la media muestral, Pn x = i=1 xi /n, que se corresponde con el método de máxima verosimilitud: d log f (x|θ) = 0 ⇔ µ = x. dµ (Universidad de Murcia) Murcia 2012/2013 5 / 95 Inferencia bayesiana La inferencia frecuentista se basa fundamentalmente en la función de verosimilitud para realizar estimaciones (inferencias) sobre el parámetro θ El punto de vista bayesiano trata al parámetro θ como una variable aleatoria especificando sobre ella una distribución de probabilidad llamada distribución a priori. (Universidad de Murcia) Murcia 2012/2013 6 / 95 La distribución de probabilidad de una variable aleatoria refleja información sobre los valores que puede tomar dicha variable. (Universidad de Murcia) Murcia 2012/2013 7 / 95 Example Si una variable V tiene por función de densidad f (v ) = 2v , 0 < v < 1, será más fácil observar valores de la variable cercanos a 1 que a 0: P(0 < V < 0.3) = 0.09 y P(0.7 < V < 1) = 0.51. Example Si la variable tiene una distribución normal N(0, σ 2 ), los valores de dicha variable estarán alrededor de 0, y será muy raro (aunque no imposible) observar valores superiores a 4σ o inferiores a −4σ: P(−4σ < N(0, σ 2 ) < 4σ) ≈ 0.99994. (Universidad de Murcia) Murcia 2012/2013 8 / 95 Un primer ejemplo de inferencia bayesiana Lanzar un dado y anotar X = 1 si ha salido un número par y X = 0 si ha salido impar. Dicho experimento lo realizamos n veces de manera independiente y bajo las mismas condiciones obteniendo los datos x = (x1 , ..., xn ), donde xi ∈ {0, 1}, y por tanto f (x|p) = p nx (1 − p)n(1−x) , donde x = Pn (Universidad de Murcia) i=1 xi /n. Murcia 2012/2013 9 / 95 ¿Razonamiento bayesiano? Modelamos el parámetro desconocido p como variable aleatoria asignando como distribución a priori la uniforme U(0, 1) con densidad π(p), aceptando por tanto a priori cualquier valor de p por igual. Como f (x|p) es la densidad de x dado el valor del parámetro, entonces la densidad conjunta de la variable aleatoria (x, p) es f (x|p)π(p) Entonces la distribución de p condicionado ha haber observado x viene dada por la densidad π(p|x) = f (x|p)π(p) m(x) (1) donde m(x) es la densidad marginal de x. (Universidad de Murcia) Murcia 2012/2013 10 / 95 La densidad π(p|x) = f (x|p)π(p) m(x) contiene información sobre el parámetro p después de observar los datos x, es decir a posteriori. La información a priori sobre el parámetro p que hemos modelado mediante π(p), se actualiza usando los datos mediante lo que se conoce como distribución a posteriori π(p|x). (Universidad de Murcia) Murcia 2012/2013 11 / 95 Definition Si el modelo paramétrico para los datos es x|θ ∼ f (x|θ), θ ∈ Θ, y la distribución a priori es π(θ), entonces la distribución a posteriori de θ viene dada por f (x|θ)π(θ) , θ ∈ Θ, (2) π(θ|x) = m(x) R donde m(x) = Θ f (x|θ)π(θ)dθ si π(θ) es de tipo continuo, y P m(x) = θ∈Θ f (x|θ)π(θ) si π(θ) es de tipo discreto. (Universidad de Murcia) Murcia 2012/2013 12 / 95 Example P Si f (x|p) = p nx (1 − p)n(1−x) , donde x = ni=1 xi /n y usamos 1 if p ∈ [0, 1] π(p) = 0 if p ∈ / [0, 1] entonces π(p|x) = f (x|p)π(p) ∝ p nx (1 − p)n(1−x) m(x) es la densidad de la distribución Beta de parámetros a = nx + 1 y b = n(1 − x) + 1. (Universidad de Murcia) Murcia 2012/2013 13 / 95 Ejercicio Usando R, vamos a simular una muestra (los datos) x con n=250, p = 0.4, y pintaremos la distribución a posteriori de p. (Universidad de Murcia) Murcia 2012/2013 14 / 95 Ejercicio Usando R, vamos a simular una muestra (los datos) x con n=250, p = 0.4, y pintaremos la distribución a posteriori de p. x=rbinom(250,1,.4) n=length(x) a=n*mean(x)+1 b=n*(1-mean(x))+1 puntos=dbeta(seq(0,1,.005), a, b, ncp = 0, log = FALSE); limite=5*max(puntos)/4; limite=14; plot(seq(0,1,.005),puntos,type=”l”,ylim=c(0,limite),ylab=””,xlab=”p”) abline(v=.4,lty=2) (Universidad de Murcia) Murcia 2012/2013 14 / 95 Figure: Densidades a posteriori de p para diferentes muestras generadas por simulación, usando la U(0, 1) como distribución a priori. (Universidad de Murcia) Murcia 2012/2013 15 / 95 El parámetro θ puede ser multidimensional. Supongamos que θ = (θ1 , θ2 ) donde θ1 y θ2 pueden ser también multidimensionales. La distribución a posteriori de θ1 es la distribución marginal que, en el caso de distribuciones de tipo continuo, viene dada por Z π(θ1 |x) = π(θ|x)dθ2 . (Universidad de Murcia) Murcia 2012/2013 16 / 95 Como π(θ|x) define a una distribución de probabilidad sobre θ, entonces m(x) es una constante de proporcionalidad y no es necesario calcular m(x) para tener definida la distribución a posteriori, por lo que podemos escribir π(θ|x) ∝ f (x|θ)π(θ), donde ∝ indica proporcionalidad. Además, si formalmente cambiamos π(θ) por cπ(θ) con c > 0 constante, y aplicamos la definición de distribución a posteriori π(θ|x) = R f (x|θ)cπ(θ) f (x|θ)π(θ) = , m(x) f (x|θ)cπ(θ)dθ obtenemos el mismo resultado. (Universidad de Murcia) Murcia 2012/2013 17 / 95 Estimación a posteriori Las distribuciones de probabilidad son una herramienta para cuantificar la información ⇒ la distribución a posteriori de θ es la herramienta que necesitamos para hecer inferencia (obtener información) sobre θ. Podemos describir la distribución a posteriori mediante cuantiles, media, varianza... Para parámetros unidimensionales, entre el cuantil 0.025 y el cuantil 0.975 se encuentra el parámetro con probabildad a posteriori 0.95, formando lo que llamaremos intervalo de credibilidad al 95% para dicho parámetro. ¿diferencia con el intervalo de confianza? (Universidad de Murcia) Murcia 2012/2013 18 / 95 Algunas definiciones En las siguientes definiciones asumiremos que la distribución a posteriori es de tipo continuo. El caso discreto se obtiene cambiando integrales por sumatorios. Vamos a considerar h(θ) una función (medible) del parámetro θ, es decir otro parámetro ν = h(θ). Si modelamos θ como variable aleatoria, también ν es una variable aleatoria y la distribución a posteriori de θ induce una distribución de probabilidad sobre ν; la distribución a posteriori de ν. (Universidad de Murcia) Murcia 2012/2013 19 / 95 Definition (Intervalo de credibilidad) Dado α ∈ (0, 1), diremos que un intervalo I ⊆ R es un intervalo de credibilidad del (1 − α)100% para el parámetro unidimensional ν = h(θ) si Z P(h(θ) ∈ I |x) = π(θ|x)dθ = 1 − α. h(θ)∈I (Universidad de Murcia) Murcia 2012/2013 20 / 95 Definition (Media y varianza a posteriori) La media y varianza a posteriori del parámetro unidimensional h(θ), son respectivamente la media y la varianza de la distribución a posteriori de h(θ), es decir, Z E (h(θ)|x) = h(θ)π(θ|x)dθ, Θ y Z Var (θ|x) = (h(θ) − E (h(θ)|x))2 π(θ|x)dθ. Θ (Universidad de Murcia) Murcia 2012/2013 21 / 95 Example La distribución a posteriori π(p|x) = f (x|p)π(p) ∝ p nx (1 − p)n(1−x) m(x) es la densidad de la distribución Beta de parámetros a = nx + 1 y b = n(1 − x) + 1. La media a posteriori de p es E (p|x) = nx + 1 . n+2 Si n es suficiente grande, dicha media a posteriori se aproxima a x, que es el estimador frecuentista del parámetro p, mientras que la varianza a posteriori se aproxima a 0. (Universidad de Murcia) Murcia 2012/2013 22 / 95 Distribuciones a priori no informativas La elección de la distribución a priori π(θ) es una de las principales dificultades para realizar inferencia bayesiana y un tema actual de investigación. Cuando el investigador tiene información sobre los parámetros del modelo antes de la observación de los datos, es posible establecer distribuciones a priori de manera subjetiva pero esta situación no suele darse en la práctica Es preferible usar procedimientos automáticos conocidos como objetivos o no informativos para producir distribuciones a priori, que tienen como objetivo atenuar el impacto que la distribución a priori pueda tener sobre la inferencia resultante, [?]. (Universidad de Murcia) Murcia 2012/2013 23 / 95 Regla de Jeffreys Una de tales reglas es la regla de Jeffreys, ver [?], que establece como distribución a priori la raı́z cuadrada de la medida de información de Fisher π(θ) ∝ Ex|θ 1/2 d2 − 2 log f (x|θ) dθ cuando el parámetro θ es unidimensional. El sı́mbolo Ex|θ significa esperanza respecto de la distribución dada por f (x|θ). (Universidad de Murcia) Murcia 2012/2013 24 / 95 Example Como primer ejemplo consideramos la distribución de Poisson. Supongamos que x = (x1 , ..., xn ) es una muestra de n observaciones independientes de la distribución de Poisson de media λ. Entonces f (x|λ) ∝ λnx exp(−nλ) d log f (x|λ) = nx/λ − n dλ y d2 log f (x|λ) = −nx/λ2 . dλ2 2 2 La esperanza de nx/λ √ es nλ/λ = n/λ, ⇒ la distribución a priori de Jeffrey es π(λ) ∝ 1/ λ. R +∞ √ La distribución π(λ) es impropia, es decir, 0 1/ λ = +∞, sin embargo la distribución a posteriori que resulta de aplicar la definición (2) es propia. (Universidad de Murcia) Murcia 2012/2013 25 / 95 Ejercicio Supongamos que x = (x1 , ..., xn ) es una muestra de n observaciones independientes de la distribución N(µ, σ 2 ), donde σ es conocido. En este caso la regla de Jeffrey establece π(µ) ∝ 1. (Universidad de Murcia) Murcia 2012/2013 26 / 95 Análisis bayesiano de muestras con distribución normal. Una población normal N(µ, σ 2 ) Supongamos que los datos x1 , x2 , ..., xn son observaciones independientes con distribución N(µ, σ 2 ). La función de densidad de los datos viene dada por ! n 1 X 2 −n/2 2 f (x|µ, σ) = (2πσ ) exp − 2 (xi − µ) . 2σ i=1 Consideramos dos casos Caso 1. El parámetro σ es conocido ⇒ θ = µ Caso 2. Los parámetros µ y σ son desconocido ⇒ θ = (µ, σ) (Universidad de Murcia) Murcia 2012/2013 27 / 95 Caso 1. El parámetro σ es conocido. En este caso µ es el único parámetro sobre el que tenemos que especificar una distribución a priori. La distribución a priori de Jeffreys es π(µ) ∝ 1. R Esta distribución a priori es impropia: π(µ)dµ = +∞ ⇒ la teorı́a de la probabilidad no puede ser aplicada salvo que la definición de distribución R a posteriori (2) nos proporcione una distribución propia, es decir, π(µ|x)dµ = 1, lo que en este caso equivale a que Z f (x|µ, σ)dµ < +∞. R (Universidad de Murcia) Murcia 2012/2013 28 / 95 Sumando y restando x en (xi − µ)2 obtenemos n n X X (xi − µ)2 = (xi − x)2 + n(x − µ)2 i=1 i=1 y por tanto (x − µ)2 f (x|µ, σ) ∝ exp − 2σ 2 /n donde ∝ significa que el lado izquierdo es el derecho multiplicado por una función que no depende de µ. (Universidad de Murcia) Murcia 2012/2013 29 / 95 Entonces Z f (x|µ, σ)dµ < +∞ R ya que (x − µ)2 exp − 2σ 2 /n R Z q dµ = 2πσ 2 /n y podemos usar π(µ) ∝ 1 como distribución a prior y la distribución a posteriori resultante es (Universidad de Murcia) Murcia 2012/2013 30 / 95 Entonces Z f (x|µ, σ)dµ < +∞ R ya que (x − µ)2 exp − 2σ 2 /n R Z q dµ = 2πσ 2 /n y podemos usar π(µ) ∝ 1 como distribución a prior y la distribución a posteriori resultante es (x − µ)2 π(µ|x) ∝ f (x|µ, σ)π(µ) ∝ exp − , 2σ 2 /n es decir, la distribución normal de media x y varianza σ 2 /n. (Universidad de Murcia) Murcia 2012/2013 30 / 95 √ √ El intervalo I = (x − 1.96σ/ n, x + 1.96σ/ n) es un intervalo de credibilidad al 95% para µ, que coincide con el clásico intervalo de confianza al 95% para µ cuando la varianza de la población es conocida. (Universidad de Murcia) Murcia 2012/2013 31 / 95 Caso 2. Los parámetros µ y σ son desconocidos. Esta es la situación que más se presenta. La distribución a priori que vamos a utilizar es π(µ, σ) ∝ 1/σ. Esta R distribución a priori es impropia pues π(µ, σ)dµdσ = +∞, sin embargo Theorem P Si n ≥ 2 y la varianza muestral es s 2 = ν −1 (xi − x)2 > 0, con ν = n − 1, entonces la distribución a posteriori (2) que resulta es una R distribución propia, es decir, π(µ, σ|x)dµdσ = 1. (Universidad de Murcia) Murcia 2012/2013 32 / 95 Distribución a posteriori de µ Como 1 2 2 π(µ, σ|x) ∝ σ exp − 2 (νs + n(µ − x) ) 2σ entonces π(µ|x) es proporcional a Z +∞ 1 1 −n−1 2 2 σ exp − 2 (νs + n(µ − x) ) dσ ∝ 2 2σ (νs + n(µ − x)2 )n/2 0 y por tanto 1 π(µ|x) ∝ n/2 . n(µ−x)2 1 + νs 2 −n−1 La distribución a posteriori de µ es la distribución de la variable aleatoria s x + √ t, n donde t es una variable con distribución t-Student con ν grados de libertad. (Universidad de Murcia) Murcia 2012/2013 33 / 95 La media a posteriori de µ es x y un intervalo de credibilidad al (1 − α)100% viene dado por s s x − √ tα/2,ν , x + √ tα/2,ν n n donde tα/2,ν es el cuantil 1 − α/2 de la distribución Student-t con ν grados de libertad. (Universidad de Murcia) Murcia 2012/2013 34 / 95 Distribución a posteriori de σ Z π(σ|x) ∝ σ νs 2 (x − µ)2 dµ exp − 2 exp − 2σ 2σ 2 /n νs 2 −n ∝ σ exp − 2 2σ −n−1 que está relacionada con la distribución Gamma. (Universidad de Murcia) Murcia 2012/2013 35 / 95 Diferencia de las medias de dos poblaciones normales Cuantificar las diferencias entre la distribución de dos variables es un objetivo muy común en las aplicaciones. Comparar los niveles de colesterol ante dos medicamentos es un ejemplo: si asumimos que la concentración de colesterol tiene una distribución normal bajo dos tratamientos que deseamos comparar y ambas distribuciones presentan la misma varianza, entonces la comparación puede hacerse comparando las medias de ambas distribuciones. (Universidad de Murcia) Murcia 2012/2013 36 / 95 Supongamos que tenemos dos muestras independientes, I I x1 de n1 observaciones independientes de una población N(µ1 , σ12 ) x2 de n2 observaciones independientes de una población N(µ2 , σ22 ). Los parámetros desconocidos son µ1 , µ2 , σ1 y σ2 , pero estamos interesados en el parámetro α = µ 2 − µ1 . La inferencia sobre el parámetro α se basa en su distribución a posteriori. Esta distribución puede ser obtenida analı́ticamente en el caso en que σ1 = σ2 = σ. En este escenario los parámetros desconocidos son µ1 , µ2 y σ, y asumiremos como distribución a priori π(µ1 , µ2 , σ) ∝ 1/σ. (Universidad de Murcia) Murcia 2012/2013 37 / 95 Theorem La distribución a posteriori de α, ver [?], es tal que α − (x2 − x1 ) p s 1/n1 + 1/n2 tiene como distribución a posteriori una distribución t de Student con ν = n1 + n2 − 2 grados de libertad, donde s 2 = (ν1 s12 + ν2 s22 )/ν. Cuando no es asumible que σ1 = σ2 , la distribución a posteriori de µ2 − µ1 no admite una expresión cerrada, y es necesario recurrir a métodos numéricos para hacer inferencias sobre µ2 − µ1 . (Universidad de Murcia) Murcia 2012/2013 38 / 95 Métodos de Monte Carlo (MC) y de Monte Carlo y Cadenas de Markov (MCMC). La aplicación de los métodos bayesianos para hacer inferencia requiere poder calcular integrales del tipo Z E (h(θ)|x) = h(θ)π(θ|x)dθ. (3) Otra forma de ver la integral (??) es considerando el parámetro ν = h(θ). Si π̃(ν|x) es la distribución a posteriori de ν, entonces Z E (h(θ)|x) = ν π̃(ν|x)dν. (Universidad de Murcia) Murcia 2012/2013 39 / 95 Estas integrales no pueden calcularse de manera explı́cita en general, lo que significa que es necesario recurrir a métodos numéricos de aproximación. Cuando la integral es de dimensión elevada, los métodos numéricos clásicos como las fórmulas de Newton-Cotes no son eficientes. La simulación de la distribución a posteriori es la técnica que más se usa en estadı́stica bayesiana para aproximar integrales del tipo (??). (Universidad de Murcia) Murcia 2012/2013 40 / 95 Método de Monte Carlo Si θ(1) , θ(2) , ... es una sucesión de variables aleatorias independientes con distribución π(θ|x), entonces con probabilidad uno m lim m 1 X h(θ(i) ) = E (h(θ)|x). m i=1 Por tanto para aproximar la integral E (h(θ)|x) basta con simular de la distribución a posteriori π(θ|x) un gran númeroP m de veces, evaluar la (i) (i) función h(θ) en cada simulación θ y calcular m i=1 h(θ )/m. (Universidad de Murcia) Murcia 2012/2013 41 / 95 Otra forma de razonar es considerar que E (h(θ)|x) = π̃(ν|x) es la distribución a posteriori de ν = h(θ). R ν π̃(ν|x)dν, donde Si ν (1) , ν (2) , ... es una sucesión de variables aleatorias independientes con distribución π̃(ν|x), entonces con probabilidad uno m 1 X (i) ν = E (h(θ)|x). lim m m i=1 Por tanto para aproximar la integral E (h(θ)|x) basta con simular de la distribución a posteriori π̃(ν|x) un gran número m de veces. (Universidad de Murcia) Murcia 2012/2013 42 / 95 Para simular la distribución a posteriori de ν = h(θ) podemos simular θ de π(θ|x) y calcular ν = h(θ), es decir, ν (1) = h(θ(1) ), ν (2) = h(θ(2) ), ... son simulaciones de la distribución a posteriori de ν = h(θ). (Universidad de Murcia) Murcia 2012/2013 43 / 95 Ejemplo Vamos a considerar la inferencia bayesiana sobre la diferencia de las medias de dos poblaciones normales en el caso en que no asumimos igualdad de varianzas. Supongamos que tenemos dos muestras independientes, una muestra x1 de n1 observaciones independientes de una población N(µ1 , σ12 ) y otra muestra x2 de n2 observaciones independientes de una población N(µ2 , σ22 ). Los parámetros desconocidos son µ1 , µ2 , σ1 y σ2 , pero estamos interesados en el parámetro ν = µ2 − µ1 . (Universidad de Murcia) Murcia 2012/2013 44 / 95 Para simular la distribución a posteriori de ν podemos simular (µ1 , µ2 , σ1 , σ2 ) de π(µ1 , µ2 , σ1 , σ2 |x) y calcular ν = µ2 − µ1 . Tomando π(µ1 , µ2 , σ1 , σ2 ) ∝ 1/σ1 σ2 , resulta que π(µ1 , µ2 , σ1 , σ2 |x) = π1 (µ1 , σ1 |x1 )π2 (µ2 , σ2 |x2 ), ⇒ a posteriori (µ1 , σ1 ) y (µ2 , σ2 ) son independientes. Por tanto para simular simular (µ1 , µ2 , σ1 , σ2 ) de π(µ1 , µ2 , σ1 , σ2 |x) podemos simular I I (µ1 , σ1 ) de π1 (µ1 , σ1 |x1 ) y (µ2 , σ2 ) de π2 (µ2 , σ2 |x2 ). (Universidad de Murcia) Murcia 2012/2013 45 / 95 Para simular π1 (µ1 , σ1 |x1 ) = π1 (σ1 |x1 )π1 (µ1 |σ1 , x1 ) podemos simular π1 (σ1 |x1 ) y luego π1 (µ1 |σ1 , x1 ). La distribución π1 (σ1 |x1 ) ∝ σ1−n1 ν1 s12 exp − 2 2σ1 está relacionada con la distribución Gamma. La distribución π1 (µ1 |σ1 , x1 ) es la normal de media x1 y varianza σ12 /n1 . (Universidad de Murcia) Murcia 2012/2013 46 / 95 La siguiente función para R proporciona una simulación de la distribución a posteriori de ν = µ2 − µ1 (Universidad de Murcia) Murcia 2012/2013 47 / 95 simula.difmedias=function(x1,x2){ n1=length(x1);n2=length(x2); m.x1=mean(x1);m.x2=mean(x2); q1=(n1-1)*var(x1);q2=(n2-1)*var(x2); u=rgamma(1,shape=(n1-1)/2,scale=2/q1); sigma1=1/sqrt(u); mu1=rnorm(1,m.x1,sigma1/sqrt(n1)); u=rgamma(1,shape=(n2-1)/2,scale=2/q2); sigma2=1/sqrt(u); mu2=rnorm(1,m.x2,sigma2/sqrt(n2)); dif=mu2-mu1 return(dif) } (Universidad de Murcia) Murcia 2012/2013 48 / 95 Ejercicio Simular los datos con n1 = 15, µ1 = 0, σ1 = 0.1 y n2 = 20, µ2 = 1 y σ2 = 0.2; y aplicar a los datos obtenidos la función simula.difmedias para obtener la media a posteriori de µ2 − µ1 , un IC 95% y un histograma de la distribución a posteriori de µ2 − µ1 . Comparar el IC95% con un resultado frecuentista. (Universidad de Murcia) Murcia 2012/2013 49 / 95 Muestreo de importancia En la práctica la función h(θ) podrá ser evaluada, pero la simulación de la distribución a posteriori puede resultar complicada. En estas situaciones, si podemos evaluar π(θ|x), podemos aplicar muestreo de importancia, es decir, si g (θ) es una densidad (con soporte que contenga al soporte de la posterior) entonces Z h(θ)π(θ|x) g (θ)dθ E (h(θ)|x) = g (θ) puede aproximarse usando Monte Carlo simulando de g (θ) y evaluando h(θ)π(θ|x)/g (θ). (Universidad de Murcia) Murcia 2012/2013 50 / 95 La densidad g (θ) puede ser cualquiera, sin embargo unas funcionan mejor que otras. Una elección que suele ser satisfactoria consiste en tomar la densidad de una normal. I I La media de dicha normal puede ser θ̂, el estimador de máxima verosimilitud de θ La varianza puede ser 2V̂ con V̂ la matriz de covarianzas de θ̂ Aunque este procedimineto es sencillo, requiere poder evaluar π(θ|x), es decir, evaluar π(θ), f (x|θ) y tener calculada m(x). Normalmente calcular m(x) es el problema. (Universidad de Murcia) Murcia 2012/2013 51 / 95 En este caso, como Z m(x) = f (x|θ)π(θ)dθ resulta que R E (h(θ)|x) = h(θ)f (x|θ)π(θ)dθ R = f (x|θ)π(θ)dθ R h(θ) f (x|θ)π(θ) g (θ) g (θ)dθ R f (x|θ)π(θ) g (θ) g (θ)dθ y las integrales del numerador y denominador pueden ser aproximadas usando Monte Carlo simulando de g (θ) y evaluando la distribución a priori y la verosimilitud. (Universidad de Murcia) Murcia 2012/2013 52 / 95 Algoritmo 1. Simulamos independientemente θ(1) , θ(2) ,...,θ(m) de g (θ) 2. Calculamos f (x|θ(i) )π(θ(i) ) , i = 1, ..., m ωi ∝ g (θ(i) ) 3. Obtenemos la aproximación Z (Universidad de Murcia) Pm h(θ(i) )ωi Pm h(θ)π(θ|x)dθ ≈ i=1 i=1 ωi Murcia 2012/2013 53 / 95 Ejercicio Supongamos que los datos son una muestra de una distribución normal N(µ, σ 2 ) y que sabemos que µ ∈ (0, 5) y σ ∈ (0, 6). Simular los datos (n=20) tomando unos valores concretos de µ y de σ, y realizar inferencia bayesiana sobre los parámetros. (Universidad de Murcia) Murcia 2012/2013 54 / 95 Ejercicio Supongamos que los datos son una muestra de una distribución normal N(µ, σ 2 ) y que sabemos que µ ∈ (0, 5) y σ ∈ (0, 6). Simular los datos (n=20) tomando unos valores concretos de µ y de σ, y realizar inferencia bayesiana sobre los parámetros. La función de densidad de los datos es n 1 X (xi − µ)2 f (x|µ, σ) = (2πσ 2 )−n/2 exp − 2 2σ ! . i=1 Tomaremos π(µ, σ) ∝ σ −1 (Universidad de Murcia) Murcia 2012/2013 54 / 95 Ejercicio Supongamos que los datos son una muestra de una distribución normal N(µ, σ 2 ) y que sabemos que µ ∈ (0, 5) y σ ∈ (0, 6). Simular los datos (n=20) tomando unos valores concretos de µ y de σ, y realizar inferencia bayesiana sobre los parámetros. La función de densidad de los datos es n 1 X (xi − µ)2 f (x|µ, σ) = (2πσ 2 )−n/2 exp − 2 2σ ! . i=1 Tomaremos π(µ, σ) ∝ σ −1 1(0,5) (µ)1(0,6) (σ) Usaremos muestreo de importancia y tomaremos g (µ, σ) la densidad de la distribución uniforme en el espacio paramétrico. (Universidad de Murcia) Murcia 2012/2013 54 / 95 library(stats) x=rnorm(20,3,5) t.test(x) f.dens=function(x,mu,sigma){ n=length(x) valor=exp(-sum((x-mu)^2)/(2*sigma^2)) valor=valor/(sigma^n) return(valor) } g=function(mu,sigma){return(1)} prior=function(mu,sigma){return(1/sigma)} (Universidad de Murcia) Murcia 2012/2013 55 / 95 lista1.mu={} lista1.sigma={} lista2={} for(i in 1:1000){ mu=runif(1,0,5) sigma=runif(1,0,6) w=f.dens(x,mu,sigma)*prior(mu,sigma)/g(mu,sigma) lista1.mu=c(lista1.mu,mu*w) lista1.sigma=c(lista1.sigma,sigma*w) lista2=c(lista2,w) } sum(lista1.mu)/sum(lista2) sum(lista1.sigma)/sum(lista2) (Universidad de Murcia) Murcia 2012/2013 56 / 95 plot(cumsum(lista1.mu)/cumsum(lista2),type="l") plot(cumsum(lista1.sigma)/cumsum(lista2),type="l") (Universidad de Murcia) Murcia 2012/2013 57 / 95 lista.mu={} lista.sigma={} lista.w={} for(i in 1:1000){ mu=runif(1,0,5) sigma=runif(1,0,6) w=f.dens(x,mu,sigma)*prior(mu,sigma)/g(mu,sigma) lista.mu=c(lista.mu,mu) lista.sigma=c(lista.sigma,sigma) lista.w=c(lista.w,w) } puntos=sample(lista.mu,length(lista.mu) ,replace=TRUE,prob=lista.w) mean(puntos) quantile(puntos,c(.025,.975)) (Universidad de Murcia) Murcia 2012/2013 58 / 95 Cadena de Markov Definition Diremos que la sucesión de variables aleatorias θ(1) , θ(2) , ... es una cadena de Markov si la distribución de probabilidad de θ(k+1) |θ(1) , θ(2) , ..., θ(k) es la distribución de probabilidad de θ(k+1) |θ(k) (Universidad de Murcia) Murcia 2012/2013 59 / 95 Metropolisis-Hasting El algoritmo de Metropolisis-Hasting fue desarrollado por Metropolis et al. (1953) y posteriormente por Hasting (1970). Dicho algoritmo aplicado a π(θ|x) produce una cadena de Markov (θ(n) ) cuya distribución lı́mite es π(θ|x), y por tanto m 1 X lim h(θ(i) ) = m m Z h(θ)π(θ|x)dθ, i=1 resultado que podemos utilizar para aproximar las inferencias a posteriori. El algoritmo necesita una densidad de transición q(θ0 |θ) llamada densidad instrumental o candidata, y un valor inicial θ(0) de la cadena. (Universidad de Murcia) Murcia 2012/2013 60 / 95 Los valores θ(1) , θ(2) , ..., se obtienen sucesivamente repitiendo los siguientes pasos 1. Simular θ0 ∼ q(θ0 |θ(k) ). 2. Simular u ∼ U(0, 1) y calcular π(θ0 )f (x|θ0 ) q(θ(k) |θ0 ) ρk = min 1, π(θ(k) )f (x|θ(k) ) q(θ0 |θ(k) ) ! 3. Si u < ρk entonces tomar θ(k+1) = θ0 , en otro caso tomar θ(k+1) = θ(k) . La densidad q(θ0 |θ) puede ser cualquiera, incluso puede no depender de θ, sin embargo una elección arbitraria puede producir pobres resultados de convergencia. (Universidad de Murcia) Murcia 2012/2013 61 / 95 Gibbs sampling Cuando la distribución a posteriori π(θ|x) es multivariante, es complicado proponer una candidata adecuada para aplicar directamente el algoritmo de Metropolis-Hastings. Si θ = (θ1 , ..., θp ), donde cada θi puede ser multidimensional, el algoritmo Gibbs sampling produce una cadena de Markov (θ(n) ) con distribución lı́mite la distribución π(θ|x). (Universidad de Murcia) Murcia 2012/2013 62 / 95 La transición θ(k) → θ(k+1) está definida por los siguientes pasos (k+1) ∼ π(θ1 |θ2 , ..., θp , x) (k+1) ∼ π(θ2 |θ1 (k+1) ∼ π(θp |θ1 1. θ1 2. θ2 (k) (k+1) (k) (k) (k) , θ3 , ..., θp , x) .. . p. θp (k+1) (k+1) , θ2 (k+1) , ..., θp−1 , x) Las distribuciones que hay que simular en cada paso son las distribuciones a posteriori condicionadas que, en muchas situaciones pueden realizarse directamente. Si no es ası́, es posible aplicar el algoritmo de Metropolis-Hastings con una iteración para para simular en los pasos del algoritmo Gibbs sampling. (Universidad de Murcia) Murcia 2012/2013 63 / 95 Aspectos computacionales con R y WinBUGS. El programa WinBUGS permite simular la distribución a posteriori combinando varias técnicas MCMC. Empezaremos usando el ejemplo de la diferencia de las medias de dos variables con ditribución normal con varianzas desconocidas sin asumir que sean iguales. (Universidad de Murcia) Murcia 2012/2013 64 / 95 El modelo en lenguaje WinBUGS es el siguiente model { for(i in 1:n1){ x1[i] ~ dnorm(mu1,tau1) } for(i in 1:n2){ x2[i] ~ dnorm(mu2,tau2) } mu1 ~ dflat() mu2 ~ dflat() sigma1<-1/sqrt(tau1) sigma2<-1/sqrt(tau2) tau1<-1/exp(2*xi1) xi1 ~ dflat() tau2<-1/exp(2*xi2) xi2 ~ dflat() dif<-mu2-mu1 } (Universidad de Murcia) Murcia 2012/2013 65 / 95 Los datos y el resto de constantes se introducen de la siguiente manera list(x1=c(0.148959579,0.007198116,-0.072278186,-0.038867987, -0.029622564,-0.025290609,-0.086010258,0.006999139, -0.040942766, -0.064413844,0.150187745,0.144700852, -0.117060806,-0.154255399,0.017170805), x2=c(0.9222077,1.0528108,0.8652817,1.1192609,1.0354215, 1.2059262,1.1978014,0.8903806,1.105493,0.7581489,1.019186, 1.1539261,0.8586593,1.0936432,0.8506843, 1.2912517,1.2547214,0.7857361,1.2225398,1.2478184) ,n1=15,n2=20) Estos datos han sido simulados usando R: x1=rnorm(15,0,0.1) x2=rnorm(20,1,.2) (Universidad de Murcia) Murcia 2012/2013 66 / 95 Como en todo método MCMC, necesitamos unos valores iniciales de la cadena de Markov list(mu1=0,mu2=0,xi1=0,xi2=0) La notación ∼ significa tiene por distribución, es decir, x∼dnorm(mu,tau) significa que x se modela como una variable con distribución normal de media mu y varianza 1/tau. La notación < − se utiliza para definir variables o constantes. Los valores iniciales se definen para lo que está declarado con ∼. Definiendo iniciales para xi1 y xi2, tenemos iniciales para tau1 y tau2, y definiendo iniciales para mu1 y mu2, ya tenemos todas las iniciales que necesitamos. (Universidad de Murcia) Murcia 2012/2013 67 / 95 Pasos para ejecutar WinBUGS Abrimos WinBUGS, File>New y escribimos (pegamos) el modelo, los datos y los valores iniciales en la ventana que aparece. Model>Specification y aparece la ventana Specification Tool. Seleccionamos con el puntero del ratón el texto del modelo y seleccionamos chek model en la ventana Specification Tool. Si el modelo está bien escrito, aparecerá el mensaje model is syntactically correct en la esquina inferior izquierda. Cargar los datos: seleccionamos con el puntero del ratón los datos y hacemos click en load data de la ventana Specification Tool. Aparecerá el mensaje data loaded en la esquina inferior izquierda. Compilar: hacemos click en compile de la ventana Specification Tool. (Universidad de Murcia) Murcia 2012/2013 68 / 95 Cargar los valores iniciales: seleccionamos con el puntero del ratón los valores iniciales y hacemos click en load inits; aparecerá model is initialized en la esquina inferior izquierda. En este momento el programa está preparado para simular la cadena de Markov. Inference>Samples y aparece la ventana Sample Monitor Tool. Tenemos que especificar los parámetros que deseamos simular, en principio todas las componentes de θ. Como para este ejemplo solo estamos interesados en µ2 − µ1 , escribiremos dif en node y hacemos click en set. Model>Update y aparece la ventana Update Tool. Podemos ir lanzado trozos de la cadena haciendo click en update. Cuando tenemos un gran número de iteraciones (simulaciones), volvemos a la ventana Sample Monitor Tool. Si hacemos click en stats, aparece un descriptivo de la distribución a posteriori del parámetro que aparece en node, basado en las simulaciones creadas hasta el momento. (Universidad de Murcia) Murcia 2012/2013 69 / 95 Si usamos la función simula.difmedias > lista={} > for(k in 1:30000){ + lista=c(lista,simula.difmedias(x1,x2)) + } > > mean(lista) [1] 1.056417 > quantile(lista,c(0.025,0.975)) 2.5\% 97.5\% 0.9612464 1.1508548 (Universidad de Murcia) Murcia 2012/2013 70 / 95 Ejercicio Cambiar las priors para mu1 y mu2 por distribuciones normales centradas en 0 y varianza 100. Describir el cambio de resultados. (Universidad de Murcia) Murcia 2012/2013 71 / 95 Ejercicio La distribución Student-t es una distribución con colas más pesadas que la distribución Normal y puede usarse si sospechamos que en nuestros datos hay outliers (valores atı́picos). Cambiar el primer dato a 4 (outlier) y lanzar el modelo. ¿Cómo cambia la inferencia a posteriori? Ahora usar la distribución Student-t con k = 2 grados de libertad para modelar los datos y observar lo que pasa con las estimaciones a posteriori. x ~ dt(mu, tau, k) (Universidad de Murcia) Murcia 2012/2013 72 / 95 Ejercicio Supongamos que a un grupo de 20 pacientes hemos suministrado el fármaco 1 y a otro grupo de 24 pacientes el fármaco 2. Tras un periodo de tiempo la enfermedad desaparece en 16 de los 20 pacientes con el fármaco 1, y en 21 de los 24 pacientes con el fármaco 2. Utilizando WinBUGS estimar cuanto es más probable sanar con el fármaco 2 que con el 1. (Universidad de Murcia) Murcia 2012/2013 73 / 95 R y WinBUGS Desde R podemos usar WinBUGS y combinar la funcionalidad de ambos programas. Necesitaresmos cargar en R la librerı́a R2WinBUGS. La función que llama a WinBUGS desde R es bugs. Necesitamos los mismos ingredientes que son necesarios para usar WinBUGS: el modelo, los datos y los valores iniciales. El modelo debe estar en un archivo de texto, por ejemplo modelo.txt. La función bugs buscará el fichero modelo.txt en el directorio de trabajo actual de la sesión que tengamos abierta de R. (Universidad de Murcia) Murcia 2012/2013 74 / 95 Los datos deben declararse de la siguiente forma datos=list(x1=varx1,x2=varx2,...) Por ejemplo, x1 es nombre que usaremos en el modelo que aparece en el fichero modelo.txt, mientras que varx1 es la variable en R con los datos de la variable x1. Los valores iniciales se declaran de la siguiente manera iniciales=function(){ list(theta=valor inicial para theta) } por ejemplo iniciales=function(){ list(mu1=0,mu2=0,xi1=0,xi2=0) } (Universidad de Murcia) Murcia 2012/2013 75 / 95 Es una buena práctica lanzar varias cadenas y empezar cada vez en valores diferentes. Por ejemplo, usando iniciales=function(){ list(mu1=rnorm(1,0,1),mu2=rnorm(1,0,1),xi1=rnorm(1,0,1), xi2=rnorm(1,0,1)) } cada vez que la función iniciales sea llamada, los valores iniciales serán simulados según la distribución que pongamos; en este caso para generar las iniciales simulamos de la N(0, 1) para todos los parámetros. (Universidad de Murcia) Murcia 2012/2013 76 / 95 Las siguientes lı́neas de comandos llaman a WinBUGS para que simule 3 cadenas, 15000 iteraciones, eliminando las primeras 1000, y pidiendo solo las simulaciones correspondientes al parámetro dif: directorio.winbugs="C:/Program Files/WinBUGS14" res=bugs(data=datos,inits=iniciales,model.file="modelo.txt", parameters.to.save=c("dif"),n.iter=15000,n.burnin=1000, n.thin=1,n.chain=3, bugs.directory=directorio.winbugs) todo estará en el objeto res. (Universidad de Murcia) Murcia 2012/2013 77 / 95 Cuando WinBUGS ha terminado lo cerramos y ya tenemos en R el resultado en el objeto res. Para visualizar los resultados en R podemos ejecutar el comando print(res,digits=3), lo que muestra en pantalla las caracterı́sticas a posteriori de los parámetros que hemos especificado, en este caso, dif. Con el comando attach.bugs(res) conseguimos tener en memoria las simulaciones que ha obtenidas por WinBUGS, en este caso, tendremos una nueva variable llamada dif con las simulaciones, y, por tanto, podremos usar dichas simulaciones para construir histogramas, otras figuras o incluso guardarlas para análisis posteriores. (Universidad de Murcia) Murcia 2012/2013 78 / 95 Ejercicio Usando los mismos datos que hemos usado para estimar la diferencia de las medias con WinBUGS, preparar una sintaxis en R para realizar las inferencias mediante R y WinBUGS (Universidad de Murcia) Murcia 2012/2013 79 / 95 Modelo de regresión lineal En todo modelo de regresión tenemos una variable dependiente (outcome o variable respuesta) y variables independientes (explicativas), y se establece una relación entre la variable respuesta y las explicativas. Esta relación depende de parámetros y entre los objetivos aparece la estimación de dichos parámetros. (Universidad de Murcia) Murcia 2012/2013 80 / 95 El modelo de regresión lineal establece la relación entre la variable continua y y las variables explicativas x1 ,...,xk , de la siguiente manera. Las observaciones y1 , ..., yn de la variable y , dados β, σ y xi = (xi1 , ..., xik ), i = 1, ..., n, son independientes y tienen una distribución normal con media E (yi |β, σ, xi ) = β0 + β1 xi1 + ... + βk xik y varianza σ 2 . (Universidad de Murcia) Murcia 2012/2013 81 / 95 Usando una notación matricial y|β, σ, X ∼ Nn (X β, σ 2 In ), (4) donde y = (y1 , ..., yn )T , X es la matriz con filas (1, xi1 , ..., xik ), i = 1, ..., n, β es el vector de los coeficientes de regresión (β0 , β1 , ..., βk )T y la matrix In es la matriz identidad n × n. Asumiremos que la matriz X es de rango completo, es decir, la matriz X T X tiene inversa. Los coeficientes β1 , ..., βk del modelo (??) tienen la siguiente interpretación. Cuando la variable xj se incrementa en una unidad y el resto permanecen fijas, entonces la media de la variable respuesta se incrementa en βj . (Universidad de Murcia) Murcia 2012/2013 82 / 95 La función de verosimilitud viene dada por 1 2 2 −n/2 T f (y|β, σ , X ) = (2πσ ) exp − 2 (y − X β) (y − X β) 2σ y la distribución a priori de Jeffreys es π(β, σ 2 |X ) ∝ 1/σ 2 . En esta situación la distribución a posteriori viene dada por β|σ 2 , y, X ∼ Nk+1 (β̂, σ 2 (X T X )−1 ) σ 2 |y, X ∼ IG((n − k − 1)/2, s 2 /2) donde β̂ es el estimador de máxima verosimilitud de β, es decir, (X T X )−1 X T y, y s 2 = (y − X β̂)T (y − X β̂). (Universidad de Murcia) Murcia 2012/2013 83 / 95 Aunque es posibles hacer inferencia bayesiana sobre todos los parámetros del modelo sin usar métodos MCMC ... Ejercicio. Usando WinBUGS y R, ajustar el modelo de regresión lineal con la base de datos caterpillar.txt, tomando la variable respuesta log V 11, y el resto de variables como variables de ajuste. > Bdatos=read.table("caterpillar.txt") > Bdatos[1:5,] V1 V2 V3 V4 V5 V6 V7 V8 V9 1 1200 22 1 4.0 14.8 1.0 1.1 5.9 1.4 2 1342 28 8 4.4 18.0 1.5 1.5 6.4 1.7 3 1231 28 5 2.4 7.8 1.3 1.6 4.3 1.5 4 1254 28 18 3.0 9.2 2.3 1.7 6.9 2.3 5 1357 32 7 3.7 10.7 1.4 1.7 6.6 1.8 (Universidad de Murcia) V10 1.4 1.7 1.4 1.6 1.3 V11 2.37 1.47 1.13 0.85 0.24 Murcia 2012/2013 84 / 95 Almacenamos el nombre de las variables en memoria > attach(Bdatos) > names(Bdatos) [1] "V1" "V2" "V3" "V4" "V8" "V9" "V10" "V11" (Universidad de Murcia) "V5" "V6" "V7" Murcia 2012/2013 85 / 95 La variable respuesta será log V11 > y=log(V11) y ajustamos el modelo desde el punto de vista frecuentista > ajuste=lm(y~V1+V2+V3+V4+V5+V6+V7+V8+V9+V10) (Universidad de Murcia) Murcia 2012/2013 86 / 95 > summary(ajuste) Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 10.998412 3.060272 3.594 0.00161 ** V1 -0.004431 0.001557 -2.846 0.00939 ** V2 -0.053830 0.021900 -2.458 0.02232 * V3 0.067939 0.099472 0.683 0.50174 V4 -1.293636 0.563811 -2.294 0.03168 * V5 0.231637 0.104378 2.219 0.03709 * V6 -0.356800 1.566464 -0.228 0.82193 V7 -0.237469 1.006006 -0.236 0.81558 V8 0.181060 0.236724 0.765 0.45248 V9 -1.285316 0.864847 -1.486 0.15142 V10 -0.433106 0.734869 -0.589 0.56162 --- (Universidad de Murcia) Murcia 2012/2013 87 / 95 library(R2WinBUGS) datos=list(y=y,V1=V1,V2=V2,V3=V3,V4=V4,V5=V5,V6=V6, V7=V7,V8=V8,V9=V9,V10=V10,n=length(y)) iniciales=function(){list(beta=rnorm(10,0,1),inter=0,xi=0) model="modelo-reglineal-catepillar.txt" directorio.winbugs="C:/Program Files/WinBUGS14" resultado=bugs(data=datos,inits=iniciales,model.file=model, parameters.to.save=c("inter","beta","sigma"),n.iter=10000, n.burnin=1000,n.thin=10,n.chain=3, bugs.directory=directorio.winbugs,DIC=F) } (Universidad de Murcia) Murcia 2012/2013 88 / 95 > print(resultado,digits=3) Inference for Bugs model at "modelo-reglineal-catepillar.txt", fit using WinBUGS, 3 chains, each with 10000 iterations (first 1000 discarded), n.thin = 10 n.sims = 2700 iterations saved mean sd 2.5% 25% 50% 75% 97.5% Rhat n.eff inter 10.987 3.166 4.877 8.874 11.000 13.082 17.241 1.001 2700 beta[1] -0.004 0.002 -0.007 -0.005 -0.004 -0.003 -0.001 1.001 2200 beta[2] -0.053 0.023 -0.097 -0.068 -0.054 -0.038 -0.008 1.001 2700 beta[3] 0.066 0.105 -0.143 -0.002 0.066 0.134 0.275 1.001 2700 beta[4] -1.299 0.590 -2.482 -1.661 -1.293 -0.928 -0.127 1.001 2700 beta[5] 0.232 0.110 0.005 0.163 0.231 0.304 0.453 1.000 2700 beta[6] -0.343 1.644 -3.594 -1.393 -0.323 0.729 2.903 1.001 2700 beta[7] -0.231 1.032 -2.275 -0.920 -0.249 0.472 1.856 1.002 1700 beta[8] 0.183 0.249 -0.305 0.023 0.181 0.344 0.678 1.001 2700 beta[9] -1.282 0.939 -3.183 -1.881 -1.304 -0.684 0.663 1.001 2700 beta[10] -0.452 0.761 -1.970 -0.955 -0.454 0.044 1.047 1.001 2700 sigma 0.858 0.136 0.643 0.764 0.842 0.934 1.168 1.001 2700 For each parameter, n.eff is a crude measure of effective sample size, and Rhat is the potential scale reduction factor (at convergence, Rhat=1). (Universidad de Murcia) Murcia 2012/2013 89 / 95 Cambiar la prior sobre sigma por la siguiente prior para tau tau ∼ dgamma(0.001,0.001) y repetir las estimaciones a posteriori sobre los parámetros. (Universidad de Murcia) Murcia 2012/2013 90 / 95 Inferencia bayesiana en modelos de regresión logı́stica Supongamos que el outcome es una variable dicotómica que toma los valores 0 y 1, es decir, una variable de bernoulli. El modelo de regresión logı́stica asume la siguiente relación entre los datos yi y los valores xi1 , xi2 , ..., xik de las covariables logit pi = β0 + β1 xi1 + ... + βk xik , i = 1, ..., n donde pi = P(yi = 1|β, xi ) y logit pi = log(pi /(1 − pi )). (Universidad de Murcia) Murcia 2012/2013 91 / 95 Asuminedo que los datos yi son independientes dados β y xi , i = 1, ..., n, la función de verosimilitud es f (y|β, x1 , ..., xn ) = n Y piyi (1 − pi )1−yi i=1 Para este modelo no es posible simular la distribución a posteriori directamente, como en el caso del modelo de regresión lineal, y necesitamos técnicas MCMC para realizar las inferencias. (Universidad de Murcia) Murcia 2012/2013 92 / 95 Usando π(β) = 1, la implementación general de este modelo en WinBUGS es model{ for(i in 1:n){ y[i] ~ dbin(p.bound[i],1) p.bound[i] <- max(0, min(1, p[i])) logit(p[i]) <-beta0+beta[1]*x1[i]+...+beta[k]*xk[i] } beta0 ~ dflat() for(i in 1:k){beta[i] ~ dflat()} } (Universidad de Murcia) Murcia 2012/2013 93 / 95 Durante 1986 el Baystate Medical Center de Massachusetts recogió datos sobre el peso de recién nacidos para identificar factores que incrementan el riesgo de bajo peso al nacer. Algunos de esos factores, medidos en las madres, fueron tabaco, raza, partos previos y edad. Utilizaremos los datos de estas variables para ejemplificar el ajuste bayesiano de un modelo de regresión logı́stica. (Universidad de Murcia) Murcia 2012/2013 94 / 95 El ajuste clásico en R es summary(glm(LOW~factor(SMOKE)+factor(RACE)+factor(edad5c)+ factor(PTL>0),family=binomial(logit),data=datos)) (Universidad de Murcia) Murcia 2012/2013 95 / 95 Berger, J. y Bernardo, J. (1989). Estimating a product of means: Bayesian analysis with reference priors. J. Amer. Statist. Assoc., 84:200-207. Bernardo, J. M. (1979). Reference posterior distribution for bayesian inference. J. R. Stat. Soc. Ser. B, 41:113-147. Jeffreys, H. (1961). Theory of Probability. Oxford University Press, London. Bernardo, J. y Smith, A. (1994). Bayesian Theory. John Wiley, New York.. Box, G.E.P. y Tiao, G.C. (1973). Bayesian Inference in Statistical Analysis. Addison-Wesley. (Universidad de Murcia) Murcia 2012/2013 95 / 95