Presentación - MASTER - Universidad de Murcia

Anuncio
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
Descargar