Está en la página 1de 38

Tema 2: Modelos Bsicos de

Estadstica Bayesiana

Introduccin
Desde el punto de vista de la estadstica bayesiana se tienen dos tipos de cantidades: cono-
cidas y desconocidas, de modo que el objetivo es usar las cantidades conocidas, junto con un
modelo paramtrico dado, para hacer inferencias sobre las cantidades desconocidas.
Por cantidades desconocidas se puede entender tanto parmetros del modelo como observa-
ciones missing. En un modelo bsico se tiene un parmetro de inters y unos datos observados
D y se considera una distribucin de probabilidad conjunta para ambos que recoge cmo se
relacionan: p(, D). Aplicando la definicin de probabilidad condicionada, se tiene que

p(, D) = p() p(D|)

p() se denomina distribucin a priori de . El segundo trmino es la funcin de verosimilitud.


En realidad, estamos interesados en determinar p(|D) que es la distribucin de la cantidad
desconocida dada la cantidad conocida. Como p(, D) = p(D, ), entonces

p() p(D|) = p(D) p(|D)

de modo que
p() p(D|)
p(|D) = .
p(D)
Esto se puede expresar como
p() L(|D)
(|D) = 

p() L(|D)d

donde L(|D) denota la verosimilitud y



p(D) = p() L(|D)d

1
es la constante normalizadora o la distribucin predictiva a priori. De manera alternativa, como
lo anterior no depende de , se puede expresar como

(|D) p() L(|D)

es decir,

P  
 P   V 
 .

El problema de inferencia
Se parte una muestra de datos, x = (x1 , . . . , xn ), de modo que la variable aleatoria que los
genera se asume que depende de unos parmetros y tiene como funcin de probabilidad f :

X| f ()

Se trata de realizar inferencias sobre , mediante mtodos clsicos o bayesianos.


La inferencia clsica presenta las siguientes caractersticas:

El concepto de probabilidad est limitado a aquellos sucesos en los que se pueden definir
frecuencias relativas.

es un valor fijo (pero desconocido).

Se pueden usar estimadores de mxima verosimilitud (que se justifican asintticamente)


o se pueden usar estimadores insesgados.

Se usa el concepto de intervalo de confianza:

Ejemplo: Si (1, 3) es un intervalo de confianza al 95 %, significa que si repetimos el pro-


cedimiento muchas veces y calculamos un intervalo de confianza cada vez, el 95 % de los
intervalos incluirn que es el verdadero valor del parmetro. Esto no significa que la
probabilidad de que est dentro del intervalo sea del 95 %.

La definicin es una consecuencia del punto de vista de la probabilidad como frecuencia


relativa.

El mtodo de muestreo es muy importante.

La inferencia bayesiana se caracteriza por:

2
Todos tenemos en nuestras propias probabilidades previas para cualquier suceso: P(cruz),
P(llover maana),...

Nuestras probabilidades pueden ser diferentes porque son nuestras propias medidas de
incertidumbre. La nica restriccin es que han de ser coherentes (que cumplan los axiomas
de la probabilidad).

es un variable y tiene una distribucin f(). Modificamos nuestras creencias sobre


usando el teorema de Bayes.

La estimacin es un problema de decisin. En situaciones distintas se eligen estimadores


diferentes: se usa la teora de utilidad para elegirlos.

Un intervalo de credibilidad del 95 % para es un intervalo donde tenemos una probabi-


lidad igual a 0,95 de que contenga .

El mtodo de muestreo no importa. Slo los datos son importantes.

Comentarios sobre la Teora Bayesiana

Crtica: no est claro que tenga que ser siempre una variable.

Argumento: en la prctica, la distribucin f() muestra los conocimientos acerca de .


El conocimiento cambia y evoluciona con la recogida de los datos.

Crtica: Falta de objetividad. Cmo se puede elegir la distribucin a priori cuando no se


tiene informacin?

Argumento: se pueden establecer mtodos objetivos para calcular la distribucin a priori.


A menudo, un anlisis clsico equivale a un anlisis bayesiano con una distribucin a
priori no informativa.

Los aspectos subjetivos son explcitos en un anlisis bayesiano, mientras que en los mto-
dos clasicos existen aunque no se muestran claramente.

Es imprescindible hacer un anlisis de sensibilidad. Si los resultados cambian cuando se


cambia la distribucin inicial, entonces la verosimilitud no da mucha informacin y la
eleccin de la distribucin inicial es fundamental.

3
Principios fundamentales en Inferencia
El Principio de Verosimilitud

Para hacer inferencia sobre , despus de haber observado x, toda la informacin pertinente
est contenida en la funcin de verosimilitud l(|x). Adems, dos funciones de verosimilitud
tienen la misma informacin sobre si son proporcionales entre s.
Los mtodos bayesianos cumplen el principio de verosimilitud: Si l1 (|x) l2 (|x) entonces,
dada una distribucin a priori (),

f1 (|x) ()l1 (|x) ()l2 (|x) f2 (|x)

No obstante, se demuestra que los contrastes clsicos con significacin a nivel fijo (por
ejemplo = ,05) y los intervalos de confianza no cumplen con este principio.

El Principio de Suficiencia

Un estadstico t es suficiente para si

l(|x) = h(t, )g(x).

que recibe el nombre de teorema de factorizacin de Neyman.


El Principio de Suficiencia afirma que si existe un estadstico suficiente, t, dadas dos mues-
tras, x1 , x2 , que cumplen t(x1 ) = t(x2 ), las conclusiones basadas en x1 y x2 deben ser iguales.
Todos los mtodos estndar de inferencia estadstica cumplen el principio de suficiencia.

El Principio de Condicionalidad

Suponiendo que se pueden hacer dos posibles experimentos E1 y E2 en relacin a , y se


elige uno con probabilidad 0,5, entonces la inferencia sobre depende slo del resultado del
experimento seleccionado.
El principio de verosimilitud equivale al principio de suficiencia ms el principio de condi-
cionalidad (ver demostracin en Lee (2004)).

Modelo Beta-Binomial
Este esquema se va a aplicar a problemas relativos a proporciones. Nos interesar, por tanto,
experimentos con dos posibles resultados, uno de los cuales se designar xito y otro fracaso.
Existen muchos ejemplos de este tipo de experimentos, por ejemplo:

4
Estamos diseando un sistema de control de una lnea de produccin y consideramos que
los productos pueden ser defectuosos o no.

Al disear un sistema de decisin inteligente, por ejemplo en Medicina, podemos consi-


derar que los pacientes pueden tener o no una enfermedad.

Para disear una poltica de mantenimiento de un mecanismo de control registramos si


el mecanismo indica situacin de peligro o no.

Estamos interesados en evaluar la efectividad de un programa de educacin para la in-


fancia, de modo que consideramos la proporcin de nios y nias que han mejorado su
rendimiento.

Nos interesa obtener informacin acerca de una proporcin determinada, por ejemplo, sus
valores tpicos o si es menor que un valor prefijado. Tambin se puede considerar el problema
de comparar dos proporciones: si cierta proporcin es mayor que otra, o si la diferencia entre
dos proporciones es menor que 0.2, por ejemplo.
La situacin que consideramos es la siguiente: se desea recoger y proporcionar informacin
sobre p, la proporcin de casos en que se produce cierto fenmeno, pudindose dar slo dos
resultados. Disponemos de unas creencias iniciales sobre p, que puede tomar valores entre 0 y
1.
Se tiene que determinar una distribucin suficientemente flexible que modelice estas creen-
cias sobre proporciones. Una posible distribucin es la distribucin beta.

NOTA:

Una v.a. tiene distribucin beta de parmetros , en [0, 1] (y se representa como X


Be (, ) ), con , > 0 si su funcin de densidad es

( + ) 1

x (1 x)1 para 0<x<1
() ()
f(x|, ) =



0 resto

Recuerda que la funcin gamma se define como



() = x1 ex dx
0

5
y sus propiedades bsicas son

( + 1) = ()
( + 1) = ! para N

Los momentos de la distribucin son


 1
( + ) 1
= x x (1 x)1 dx =
0 () ()

( + ) ( + 1) () 1 ( + + 1)
= x (1 x)1 dx =
() () ( + + 1) 0 ( + 1) ()
( + ) ( + 1) ()
= 1 = .
() () ( + + 1) +
Del mismo modo se demuestra que

2 = 2 .
( + ) ( + + 1)

Cuando = = 1, se obtiene la distribucin uniforme y, en general, cuando = la


distribucin es simtrica alrededor de 1/2. Cuando > se concentra la probabilidad hacia
la derecha, y a la inversa cuando < . Cuanto mayores son y la densidad est ms
concentrada en algn punto.
En la grfica siguiente se muestran ejemplos sobre distintas formas que presenta variando
sus parmetros:

6
Las grficas anteriores se han dibujado con R:

z <- seq(0,1,length=1000)
par(mfrow=c(3,3))

# Parametros: alfa=5 beta=5


plot(z,dbeta(z,5,5),ylab="Beta(5,5)",type="l")

# Parametros: alfa=5 beta=1


plot(z,dbeta(z,5,1),ylab="Beta(5,1)",type="l")

# Parametros: alfa=5 beta=3


plot(z,dbeta(z,2,3),ylab="Beta(2,3)",type="l")

7
# Parametros: alfa=1 beta=5
plot(z,dbeta(z,1,5),ylab="Beta(1,5)",type="l")

# Parametros: alfa=1 beta=1


plot(z,dbeta(z,1,1),ylim=c(0,1.5),ylab="Beta(1,1)",type="l")

# Parametros: alfa=1 beta=3


plot(z,dbeta(z,1,3),ylab="Beta(1,3)",type="l")

# Parametros: alfa=3 beta=5


plot(z,dbeta(z,3,5),ylab="Beta(3,5)",type="l")

# Parametros: alfa=3 beta=1


plot(z,dbeta(z,3,1),ylab="Beta(3,1)",type="l")

# Parametros: alfa=3 beta=3


plot(z,dbeta(z,3,3),ylab="Beta(3,3)",type="l")

En nuestro caso, se tiene que



( + ) 1

p (1 p)1 para 0p1
() ()
f (p|, ) =



0 resto


E (p) = ,
+

V ar (p) = 2 ,
( + ) ( + + 1)
1
M oda (p) = .
+ 2
Por ejemplo, para = = 1 se tiene la distribucin uniforme que modeliza la ignorancia
acerca de p.

Planteamiento del modelo beta-binomial


El problema que nos planteamos es el siguiente. Suponemos un experimento que consiste en
observar n casos independientes, registrndose el nmero de casos favorables que se presentan.

8
La verosimilitud (o el modelo) es, en este caso, binomial, tenindose
 
n x
P (X = x|p) = p (1 p)nx ,
x
para x = 0, 1, . . . n.
Se realiza, por tanto, el experimento y supongamos que se producen x xitos. Nuestro inters
se centra en estimar la proporcin p de xitos dada la muestra.
Desde el punto de vista bayesiano asumimos que tenemos una informacin previa sobre
p que se modeliza mediante la distribucin a priori de p que hemos supuesto que se recoge
mediante una densidad beta. Actualizamos, entonces, nuestras creencias sobre p aplicando el
teorema de Bayes. Se tiene
 
f (p) P (x|p) ( + ) 1 1 n x
f (p|x) = p (1 p) p (1 p)nx
P (x) () () x
px+1 (1 p)nx+1 ,

siendo p (0, 1) y f (p|x) = 0 para p


/ (0, 1) .
Resulta, por tanto, que la distribucin a posteriori de p sigue una beta de parmetros (x + )
y (n x + ) .
Se puede emplear esa distribucin para resolver los problemas tpicos que se presentan en
inferencia.

Estimacin puntual
Se trata de dar un valor-resumen representativo de la distribucin a posteriori. Las ms
habituales son:

1. Media a posteriori,
x+
n++
2. Moda a posteriori,
x+1
n++2
3. Mediana a posteriori, que es la solucin p de la ecuacin
 p
(n + + ) 1
px+1 (1 p)nx+1 dp = .
0 ( + x) (n x + ) 2
En este caso, se hace necesario usar clculo numrico.

9
Ejemplo en R:

# Se calcula el cuantil del 50% de una beta 10, 15


qbeta(0.5,10,15)

Estimacin por intervalos


De manera informal, se trata de dar un intervalo que, con cierta probabilidad r, cubra el
valor de p, esto es, un intervalo con extremos a y b que satisfaga lo siguiente
 b
f (p|x) dp = r.
a

1r 1r
Normalmente, se escogen a y b de manera que a deja probabilidad 2
a su izquierda y 2
a su derecha.
Por ejemplo, si r = 0,90, a y b satisfacen
 a
f (p|x) dp = 0,05
0
 1
f (p|x) dp = 0,05.
b

Por ejemplo, en R:

a <- qbeta(0.05,4,5)
b <- qbeta(0.05,4,5,lower.tail=F)

Contraste de hiptesis
En muchas ocasiones se est interesado en un modelo especfico o subconjuntos de modelos
que denominamos hiptesis nula (H0 ) frente al resto de modelos que se denominan hiptesis
alternativa (H1 ). Por ejemplo, podemos contrastar

H0 : p = 0,5

frente a
H1 : p = 0,5;

o podemos contrastar
H0 : p 0,6

10
frente a
H1 : p > 0,6.

Contrastar H0 frente a H1 , significa calcular la probabilidad a posteriori de cada una de las


hiptesis y quedarse con la hiptesis ms probable.
En el segundo ejemplo propuesto se calculara
 0,6
P (H0 |x) = f (p|x) dp,
0
 1
P (H1 |x) = f (p|x) dp,
0,6

y se dira que los datos apoyan H0 (frente a H1 ) si

P (H0 |x) > P (H1 |x)

(o equivalentemente, P (H0 |x) > 0,5). El primer ejemplo es algo ms delicado, pues P (H0 |x) =
0, al ser una distribucin continua. Una solucin rigurosa requiere clculos ms sofisticados.
Alternativamente, se puede calcular un intervalo I de probabilidad r, centrado en la media a
posteriori de p, y si 0,5 I, se dice que hay evidencia a favor de la hiptesis nula. En otro caso,
se dice que hay evidencia a favor de la hiptesis alternativa.

Generalizaciones
Ejemplo

Supongamos que estamos interesados en estudiar los hbitos de sueo de los estudiantes de
un cierto centro. Parece ser que los mdicos recomiendan un mnimo de 8 horas de sueo para
una persona adulta, con lo cual el estudio se plantea en trminos de averiguar la proporcin de
de estudiantes que duermen al menos 8 horas. Llamaremos p a dicha proporcin.
Se toma una muestra de 27 estudiantes de modo que 11 de ellos duermen al menos 8
horas y el resto no. Nos planteamos hacer inferencias sobre la proporcin p teniendo en cuenta
la informacin previa que se tiene. Adems interesa predecir el nmero de estudiantes que
duermen al menos 8 horas si se toma una nueva muestra de 20 estudiantes.
Supongamos que consideramos una distribucin a priori beta:

p=seq(0,1,length=500)
s=11
f=16

11
a=3.4
b=7.4
prior = dbeta(p, a, b)
like = dbeta(p, s+1, f+1)
post = dbeta(p,a+s,b+f)
plot(p,post,type="l",ylab="Density",lty=2,lwd=3, col=4)
lines(p,like,lty=1,lwd=3,col=2)
lines(p,prior,lty=3,lwd=3,col=6)
legend(0.7, 4, c("A priori","Verosimilitud","A posteriori"),
lty=c(3,1,2), lwd=c(3,3,3), col=c(6,2,4))

Se pueden considerar resmenes de la distribucin: Cul es P (p 0,5|datos)? Cul es el


intervalo de confianza al 90 % para el verdadero valor de p?

s=11
f=16
a=3.4
b=7.4
s=11
1-pbeta(0.5, a+s, b+f)
qbeta(c(0.05, 0.95), a + s, b + f)

Otra alternativa es hacerlo mediante simulacin:

s=11
f=16
a=3.4
b=7.4
s=11
ps = rbeta(1000, a+s, b+f)
hist(ps,xlab="p",main="")
sum(ps >= 0.5)/1000
quantile(ps, c(0.05, 0.95))

12
Ejemplo

Un distribuidor anuncia que el 95 % de sus ordenadores no se tiene que reparar durante el


ao de garanta. Desde el punto de vista bayesiano se puede modelizar esta creencia mediante
una Be ( = 4,75, = 0,25) , ya que si

p Be (4,75, 0,25) ,

entonces
4,75
E (p) = = 0,95,
4,75 + 0,25
V ar (p) = 0,0016.

Debido a la aparente calidad, compramos 20 ordenadores, de los cuales 12 requieren re-


paracin durante el ao de garanta. Nuestra distribucin a posteriori sobre la proporcin es
entonces ahora
Be (4,75 + 8, 0,25 + 12)

La figura muestra las distribuciones a priori y a posteriori.

Estimadores puntuales.
Algunos valores que resumen la distribucin a posteriori son:

13
12,75
Media a posteriori: E (p|x) = 25
= 0,51
12,751
Moda a posteriori: 252
= 0,51087
Mediana a posteriori: 0.5102709 (en R: qbeta(0.5,12.75,12.25)).

Estimacin por intervalos:


Un intervalo de probabilidad 0.95 es
En R:
p <- c(0.025,0.975)
qbeta(p,12.75,12.25)
Obtenindose [0,32; 0,70]

Contraste de Hiptesis:
Contrastamos la hiptesis H0 : p 0,95 frente a H1 : p < 0,95, que se correspondera con
contrastar el anuncio.
Como, al considerar la orden en R, pbeta(0.95,12.75,12.25), se obtiene 1, entonces se
tiene que

P (H1 |x) 1
P (H0 |x) 0,

por lo que los datos sugieren que el distribuidor est exagerando.

Prediccin
Dados los datos x = (x1 , . . . , xn ) , supongamos que se quiere predecir el valor de una futura
observacin Xn+1 . Para ello, hay que calcular la distribucin predictiva. Se puede considerar
tanto la distribucin predictiva a priori como a posteriori dependiendo de si se usa una u otra
distribucin de los parmetros.
Sus expresiones son

f (xn+1 |x) = f (xn+1 |, x)f () d

f (xn+1 |x) = f (xn+1 |, x)f (|x) d.

En nuestra situacin, los Xi | son intercambiables, es decir, su distribucin es igual cuando

14
se les cambia de orden y lo anterior se puede simplificar como

f(xn+1 |x) = f(xn+1 |)f() d

f(xn+1 |x) = f(xn+1 |)f(|x) d.

E  : Supongamos que se tira una moneda equilibrada y que salen 9 cruces y 3 caras
(considero como xito cruz ). Suponiendo una distribucin a priori uniforme, se tiene que la
distribucin a posteriori de p sigue una distribucin beta de parmetros (x + ) y (n x + ):
Beta(10, 4).
A continuacin, se quiere predecir el nmero de cruces que se obtendran en diez tiradas
ms.
Se tiene que, ahora,

Xf ut | Bin(10, ),

entonces
 1 
10
f (xf ut |x) = xfut (1 )10xf ut
0 xf ut
(14) 101
(1 )41 d
(10)(4)
 
10 (14)
=
xf ut (10)(4)
 1
10+xf ut 1 (1 )14xf ut 1 d
0
 
10 Be(10 + xf ut , 14 xf ut )
=
xf ut Be(10, 4)

donde se ha usado la notacin


()()
Be(, ) =
( + )
Si lo hacemos con Maxima:

integrate((x^(10+y-1))*(1-x)^(14-y-1), x, 0, 1);

Is y+10 positive, negative, or zero? positive;

15
Is y-14 positive, negative, or zero? negative;

beta(y+10,14-y)

En general, si estamos interesados en r xitos en los m siguientes ensayos haremos


 1 
m r
P [r xitos en m ensayos | x] = p (1 p)mr f (p|x) dp =
0 r
 1 
m r (n + + )
= p (1 p)mr px+1 (1 p)nx+1 dp =
r ( + x) (n x + )
0 
m (n + + ) (r + x + ) (m r + n x )
= .
r ( + x) (n x + ) (m + n + + )

Se puede evaluar la media de Xf ut |x sin tener que evaluar la distribucin predictiva.


NOTA: se tena que,
Ez [Z] = Ey [Ez [Z|Y ]]
para cualquier variable Z y Y .
As, respecto al ejemplo anterior,

Ex [Xf ut |x] = E [Ex [Xf ut |]]

como Xf ut | Bin(10, ) entonces Ex [Xf ut |] = 10, y como |x Be(10, 4) entonces E [|x] =


10
14
, por tanto
10
Ex [Xf ut |x] = E [Ex [Xf ut |]] = 10 7,141
14
Para evaluar la varianza predictiva, se usa la frmula

Vz [Z] = Ey [Vz [Z|Y ]] + Vy [Ez [Z|Y ]]


= E [Vx [Xf ut |]] + V [Ex [Xf ut |]]

Evaluamos ambas partes.

Vx[Xf ut |] = 10(1 ) = 10( 2 )


E [Vx [Xf ut |]] = 10 E [|x] E [ 2 |x]


= 10 E [|x] (E [|x]2 + V [|x])


 2
10 10
= 10
10 + 4 10 + 4

10 4
=
(10 + 4)2 (10 + 4 + 1)
40
=
21
16
y como Ex [Xf ut |] = 10,

V [Ex [Xf ut |]] = 100V [|x]


10 4
= 100
(10 + 4)2 (10 + 4 + 1)
200
=
147
40 200
Entonces tenemos Vx [Xf ut |x] = 21
+ 147
3,3.
Prediccin en el ejemplo de los ordenadores:
La probabilidad de que el siguiente ordenador que adquiramos no deba repararse en el
periodo de garanta es igual a la media a posteriori ya que es una Ber(), luego
 1
12,75
f(xf ut |x) = f (|x)d = E(|x) = = 0,51.
0 25

1.1.1. Alternativas para la distribucin a priori


Supongamos que la distribucin de probabilidad a priori para p se denota como g(p). Si
denominamos como xito al hecho de dormir ms de 8 horas, la verosimilitud es

L(p) ps (1 p)f

de modo que la densidad a posteriori es

g (p|datos) g(p) ps (1 p)f

Luego el asunto principal es cmo se toma la distribucin a priori.

Alternativa 1: A priori discreta.


Supongamos que se piensa que los valores posibles para p son

0,05; 0,15; 0,25; 0,35; 0,45; 0,55; 0,65; 0,75; 0,85; 0,95

basado en su informacin previa le asigna los siguientes pesos:

2, 4, 8, 8, 4, 2, 1, 1, 1, 1

que se pueden convertir en probabilidades a priori normalizando los pesos para que sumen 1.
En R esto se puede hacer as:

17
p = seq(0.05, 0.95, by=0.1)
prior = c(2, 4, 8, 8, 4, 2, 1, 1, 1, 1)
prior = prior/sum(prior)
plot(p, prior, type="h", ylab="Probabilidad a priori", col=4)

En nuestro caso hay 11 estudiantes que duermen bien, por lo que

L(p) p11 (1 p)16

Se puede observar que es una distribucin beta: Be(12, 17)


Para calcular las probabilidades a posteriori usamos la librera LearnBayes:

library(LearnBayes)
data = c(11, 16)
post = pdisc(p, prior, data)
cbind(p, prior, post)
plot(p, post, type="h", ylab="Probabilidad a posteriori", col=2)

Si dibujamos ambas para comparar cmo ha variado la distribucin de p despus de obtener


los datos:

par(mfrow=c(2,1))
plot(p, prior, type="h", ylab="Probabilidad a priori", col=4)
plot(p, post, type="h", ylab="Probabilidad a posteriori", col=2)

Alternativa 2: A priori por un histograma. Se tendra una versin continua de la anterior.


Supongamos que se puede asignar una distribucin a priori sobre intervalos. Asumimos que
nos basta con 10 para el rango de p: (0, 0.1), (0.1, 0.2),... (0.9, 1) de modo que asignamos como
pesos:
2, 4, 8, 8, 4, 2, 1, 1, 1, 1

library(LearnBayes)
midpt = seq(0.05, 0.95, by = 0.1)
prior = c(2, 4, 8, 8, 4, 2, 1, 1, 1, 1)
prior = prior/sum(prior)
p = seq(0, 1, length = 500)

18
plot(p,histprior(p,midpt,prior),type="l",
ylab="Densidad a priori",ylim=c(0,.25))
s = 11
f = 16
like = dbeta(p, s+1, f+1)
post = like*histprior(p, midpt, prior)
plot(p, post, type="l", ylab="Densidad a posteriori", col=4)

Se puede obtener una muestra simulada de la densidad a posteriori, convirtiendo los pro-
ductos que aparecen en la rejilla anterior en probabilidades. Se toma una muestra con reem-
plazamiento de de la rejilla:

post = post/sum(post)
ps = sample(p, replace=TRUE, prob=post)
hist(ps, xlab="p")

Ejemplo

En el ejemplo de las horas de sueo se puede considerar la distribucin predictiva a posteriori:

library(LearnBayes)
s=11
f=16
a=3.4
b=7.4
s=11
ab=c(a+s, b+f)
m=20
ys=0:20
pred=pbetap(ab, m, ys)

Para obtener las predicciones se simula p de g(p), y entonces se simulan las predicciones a
partir de una binomial:

p=rbeta(1000,a+s, b+f)
y = rbinom(1000, 20, p)
table(y)

19
Se puede dibujar la distribucin de las predicciones

freq=table(y)
if(names(freq)[1]=="0"){
# Si aparece alguna observacion 0
ys=c(0:max(y))
}else{
# Si NO aparece ninguna observacion 0
ys=c(1:max(y))}
predprob=freq/sum(freq)
plot(ys,predprob,type="h",xlab="y",ylab="Probabilidad predictiva")

La tabla correspondiente de la distribucin predictiva es

dist=cbind(ys,predprob)
dist

Si se quiere resumir la distribucin predictiva mediante un intervalo que cubra el 90 % de


la funcin, se puede usar la funcin discint.
Se obtiene los valores que incluye el intervalo y la probabilidad exacta de los mismos.

# Highest probability interval for a discrete distribution


covprob=0.9
discint(dist,covprob)

Asignacin de distribuciones beta


Se trata, ahora de encontrar procedimientos para asignar la distribucin a priori, supuesto
que es Be (, ) . Esto implica escoger y , lo que implica extraer dos juicios de un experto.
Una forma de proceder es la siguiente. Primero pedimos al experto que indique la probabi-

lidad r de xito en el primer ensayo. Sabemos que sta es +
.
Despus, se pide al experto que suponga que el primer ensayo fue un xito y que proporcione
la probabilidad r2 de xito en el segundo ensayo; la densidad actualizada por el primer xito es
+1
Be ( + 1, ) , por lo que la probabilidad r2 ser ++1
.
Se resuelve, entonces, el sistema

r1 = ,
+
+1
r2 =
++1

20
y se obtiene,
r1 (1 r2 )
= ,
r2 r1
(1 r1 ) (1 r2 )
= .
r2 r1

NOTA:

si se emplea la Be (1, 1) se corresponde a la U (0, 1) modeliza la ignorancia o total incertidum-


bre. En este sentido, cuando tengamos mucha incertidumbre deberamos favorecer distribuciones
a priori con valores pequeos de y que facilitan la absorcin de evidencia.

Ejemplo

Supongo que el experto afirma que r1 = 0,7 y r2 = 0,75. Entonces,


0,7 (1 0,75)
= = 3,5,
0,75 0,7
(1 0,7) (1 0,75)
= = 1,5.
0,75 0,7
Observemos que todos los clculos que hagamos quedarn afectados por r1 y r2 , a travs de
y , especialmente con pocos datos.

Comportamiento del modelo con muestras grandes


Ejemplo

Dos ingenieros se enfrentan a un problema de control de calidad; para ello se fijan en la


proporcin de piezas defectuosas. El primero es inexperto sobre el proceso de produccin de
modo que se modeliza sus creencias sobre dicha proporcin mediante una Be (1, 1) (es decir, con
una U (0, 1)). El segundo tiene ms experiencia y modeliza sus creencias sobre la proporcin
mediante una Be (10, 70) . Ambos observan tres piezas, siendo una de ellas defectuosa. Las
creencias del primer ingeniero pasan a ser Be (2, 3) , cambiando radicalmente, mientras que las
del segundo pasan a ser Be (11, 72) , sin cambiar prcticamente nada.
Despus de observar 220 piezas en buen estado y 160 defectuosas, las creencias del primero
pasan a ser Be (161, 221) y las del segundo pasan a ser Be (170, 290) , parecindose ahora las
creencias de ambos ingenieros.

21
El ejemplo describe una situacin caracterstica de un modelo beta-binomial que se da,
tambin, en otros modelos: al aumentar la evidencia aportada por los datos, la influencia de la
distribucin a priori disminuye.
En efecto, como la distribucin a posteriori es Be (x + , n x + ) , cuando n es muy
grande, la media a posteriori es
x
x+ + n x
= n +
++n 1+ n n

y la varianza a posteriori
(x + ) ( + n x) x(n x) x x 1
1
( + + n)2 ( + + n + 1) n3 n n n

Por tanto, para n suficientemente grande, al tender la varianza hacia 0, la distribucin se


concentrar ms y ms en torno a x/n. De hecho, el resultado es ms preciso puesto que se puede
probar que para n suficientemente grande, la distribucin a posteriori es aproximadamente


x 1
normal N nx ; x
n
1 n n
. Este resultado simplifica las cuestiones computacionales.
As, por ejemplo, se puede considerar:

22
x
(i) Estimacin puntual con la media a posteriori:
n
(ii) Estimacin por intervalos
   
x x x 1 x x x 1
I= z 2 1 ; + z 2 1
n n n n n n n n

(iii) Contraste de hiptesis (por ejemplo, H0 : p = 0,5): Se rechaza H0 si 0,5


/ I.

El resultado anterior es bastante general y se describe tcnicamente como la normalidad


asinttica de la distribucin a posteriori.
Una alternativa consiste en emplear una simulacin de la distribucin a posteriori.
Este caso es muy sencillo: basta simular de una Be ( + x, + n x) y sustituir momentos
poblacionales por momentos muestrales.
Por ejemplo, podemos simular 1000 observaciones de tal distribucin (x1 , x2 , . . . , x1000 ) y

xi
1. Aproximar la media a posteriori por i
n

2. Aproximar el intervalo de probabilidad 1 (pongamos, para fijar ideas que = 0,1)


 
mediante X(50) , X(950)

Ejemplo

Generamos 1000 observaciones de una Be (12,75, 12,25) . En R se hara:

x <- rbeta(1000,12.75,12.25)
mean(x)
y <- sort(x)
y[975]
y[25]

La media muestral es 0,5110.


Al ordenar la muestra se obtiene

X(975) = 0,7017
X(25) = 0,3197

con lo que un intervalo de probabilidad a posteriori de 0,95 es [0,3197; 0,7017].

23
Ejemplo con R

Se necesita instalar previamente la librera Bolsdtad de R.

library(Bolstad)
# Ejemplo con 6 exitos en 8 ensayos con una a priori uniforme Beta(1,1)
x11()
binobp(6,8)

# 6 exitos en 8 ensayos con una a priori Beta(0.5,6)


x11()
binobp(6,8,0.5,6)

# 4 exitos observados in 12 ensayos con una a priori Beta(3,3)


# Se dibujan todas las graficas
x11()
results<-binobp(4,12,3,3,ret=TRUE)

x11()
par(mfrow=c(3,1))

y.lims <- c(0,1.1*max(results$posterior,results$prior))

plot(results$pi,results$prior,ylim=y.lims,type="l",
xlab=expression(pi),ylab="Density",main="Prior")

polygon(results$pi,results$prior,col="red")

plot(results$pi,results$likelihood,ylim=c(0,0.25),type="l",
xlab=expression(pi),ylab="Density",main="Likelihood")

polygon(results$pi,results$likelihood,col="green")

plot(results$pi,results$posterior,ylim=y.lims,type="l",

24
xlab=expression(pi),ylab="Density",main="Posterior")

polygon(results$pi,results$posterior,col="blue")

25
Ejemplo

Con OpenBugs WinBugs:

# Modelo Beta-Binomial
model
{
y ~ dbin(p, n)
p ~ dbeta(alfa, beta)
}

# datos
list(y=6, n=14, alfa=0.5, beta=0.5)
# Valores iniciales
list(p=0.5)

Ejemplo

Con OpenBugs WinBugs:

# Modelo Beta-Binomial
model
{
for (i in 1:n)
{
x[i] ~ dbern(teta)
}
teta ~ dbeta(1,1) # Densidad a priori: una beta(1,1)
}

# Datos
list(x=c(0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1), n=20)

Instrucciones de uso directo del programa WinBugs

1. Cargar el modelo: marca model y pulsa en check model, que est en Specification
Tool del men Model.

26
2. Carga los datos: marca list y pulsa en load data, que est en Specification Tool del
men Model.

3. Compilar el programa: compile usando la Specification Tool.

4. Cargar valores iniciales de la(s) cadena(s): marca list y pulsa en load inits, que est en
Specification Tool del men Model.

Para ejecutar el programa: ve al men principal :


Inference -> Samples
Aparece el monitor Sample Monitor Tool. Escribe p en el nodo menu y pulsa set, para
especificar que se va a monitorizar el nodo p (por defecto con 1000000 iteraciones). Pon 5000
iteraciones

Ve al men principal:
Model -> Update -> Update tool
Pulsa update para correr 5000 iteraciones ms.
Las grficas y los diversos estadsticos se obtienen a partir del men Sample Monitor Tool.

NOTAS:
Mira un tutorial completo sobre WinBugs en:
http://www.stat.uiowa.edu/~gwoodwor/BBIText/AppendixBWinbugs.pdf
Mira una pelcula tutorial sobre el uso de WinBugs en:
http://www.mrc-bsu.cam.ac.uk/bugs/winbugs/winbugsthemovie.html

Alternativa usando la interface de R con WinBugs:


Se puede automatizar el procedimiento anterior usando una interfaz entre R y WinBugs.

rm(list=ls(all=TRUE)) # Limpio la memoria


ruta <- "c:/dondesea/"
setwd(ruta) # Fijo la ruta de trabajo

library(R2WinBUGS)

27
#.................................................................
# PROGRAMA de BUGS
#.................................................................
cat("
# Modelo Beta-Binomial
model
{
y ~ dbin(p, n)
p ~ dbeta(alfa, beta)
}
",
file="modelo.txt")
#.................................................................

# Introduzco los datos


y <- 6
n <- 20
alfa <- 0.5
beta <- 0.5
# Alternativamente, se pueden leer datos desde otro fichero
# x <- read.table("datos.txt",header=F)

datos <- list("y", "n", "alfa", "beta")


parametros <- "p"
iniciales <- function(){list(p=runif(1))}

#.......................................................................

# Programa con Winbugs14


binom.sim <- bugs(data=datos, inits=iniciales,
parameters.to.save=parametros, model.file="modelo.txt",
n.chains=3, n.iter=10000, n.burnin=5000,

28
bugs.directory="C:/WinBUGS14/",
working.directory=ruta, clearWD=TRUE,
debug=TRUE)

print(binom.sim)

file.remove("modelo.txt")

Alternativa usando la interface de R con OpenBugs:


Alternativamente, R tiene una librera basada en la versin OpenBugs que funciona como
cualquier otra librera de R: BRugs.
El programa correspondiente para R es:

rm(list=ls(all=TRUE)) # Limpio la memoria


ruta <- "c:/dondesea/"
setwd(ruta) # Fijo la ruta de trabajo

library(BRugs)

#.................................................................
# PROGRAMA de BUGS
#.................................................................
cat("
# Modelo Beta-Binomial
model
{
y ~ dbin(p, n)
p ~ dbeta(alfa, beta)
}
",
file="modelo.txt")
#.................................................................

29
# Introduzco los datos
y <- 6
n <- 20
alfa <- 0.5
beta <- 0.5
# Alternativamente, se pueden leer datos desde otro fichero
# x <- read.table("datos.txt",header=F)

datos <- list("y", "n", "alfa", "beta")


parametros <- "p"
iniciales <- function(){list(p=runif(1))}

#.................................................................

# Programa con BRugs


modelo <- BRugsFit(data=datos, inits=iniciales,
para=parametros, nBurnin=5000, nIter=10000,
modelFile="modelo.txt",
numChains=3, working.directory=ruta)

pSamp <- samplesSample("p")


pSamp # Resultados de la Estimacion
pMed <- median(pSamp)
cat("La mediana de las simulaciones es:", pMed, "\n")
X11()
plotDensity("p",xlab="p", main="Densidad de p")
X11()
histinfo <- hist(pSamp, xlab="p", ylab="Frecuencias",
freq=F, main="p estimada", col="lightblue")

file.remove("modelo.txt")

30
Comparacin de proporciones
Se estudia, ahora, el problema de la comparacin entre dos proporciones. Para ello se con-
sideran dos poblaciones que dan lugar a dos experimentos, cada uno con una proporcin p1 y
p2 de xito. Deseamos comparar p1 y p2 . Por ejemplo, si p1 p2 o viceversa.
Suponemos que se tiene una muestra de tamao n1 de la primera poblacin con x1 xitos.
La verosimilitud es, en este caso,
 
n1 x1
P (X1 = x1 |p1 ) = p1 (1 p1 )n1 x1 .
x1
Adems, se tiene otra muestra de tamao n2 de la segunda poblacin con x2 xitos. La verosi-
militud es, en este caso,
 
n2 x2
P (X2 = x2 |p2 ) = p (1 p2 )n2 x2 .
x2 2

Supondremos que hay independencia entre ambas muestras (a veces esta hiptesis no ser
adecuada, como ocurre, por ejemplo, en muestras apareadas), con lo cual la verosimilitud con-
junta ser el producto de las verosimilitudes marginales
   
n1 x1 n1 x1 n2
P (X1 = x1 , X2 = x2 |p1 , p2 ) = p1 (1 p1 ) px2 2 (1 p2 )n2 x2 .
x1 x2
Para cada pi disponemos de informacin a priori que modelizamos mediante una distribucin
Be (i , i ) . Supondremos que las pi son independientes. De nuevo esta hiptesis no ser siempre
adecuada; por ejemplo, podemos creer que si una proporcin es grande, es probable que la otra
tambin lo ser, o, a la inversa, al ser un proporcin grande, la otra podra ser pequea. As,
la distribucin a priori conjunta es

f (p1 , p2 ) p1 1 1 (1 p1 ) 1 1 p2 2 1 (1 p2 ) 2 1 I[0,1] (p1 ) I[0,1] (p2 ) .

Calculamos la distribucin a posteriori de p1 y p2 multiplicando por la verosimilitud,

f (p1 , p2 |x1 , x2 ) p11 +x1 1 (1 p1 )n1 x1 + 1 1 p22 +x2 1 (1 p2 )n2 x2 + 2 1 I[0,1] (p1 ) I[0,1] (p2 ) .

Se comprueba, adems, que

f (p1 |x1 , x2 ) p11 +x1 1 (1 p1 )n1 x1 + 1 1 I[0,1] (p1 ) ,


f (p2 |x1 , x2 ) p22 +x2 1 (1 p2 )n2 x2 + 2 1 I[0,1] (p2 ) ,

con lo que p1 y p2 son tambin independientes a posteriori. Este resultado es, de hecho, general.

31
La distribucin a posteriori se emplea en sentido similar a como lo hemos hecho en el caso
de una sola proporcin. Por ejemplo, podemos emplearla para el clculo de probabilidades de
conjuntos interesantes:
Conjuntos rectangulares [c1 , d1 ] [c2 , d2 ]
Utilizando la independencia de la distribucin a posteriori, se tiene
 d1  d2
f (p1 , p2 |x1 , x2 ) dp1 dp2 =
c1 c2
 d1   d 2 
= f (p1 |x1 , x2 ) dp1 f (p2 |x1 , x2 ) dp2 ,
c1 c2

y para calcular cada una de las probabilidades aplicamos los mtodos ya vistos.
Conjuntos triangulares
Se est ms interesado en calcular probabilidades a posteriori de conjuntos triangulares,
y ms precisamente, de conjuntos triangulares de la forma (p1 p2 ) c. La probabilidad se
puede calcular numricamente y es igual a
 
f (p1 , p2 |x1 , x2 ) dp1 dp2 .
{p1 p2 c}

Alternativamente, se puede emplear la normalidad asinttica: si n1 y n2 son suficientemente


grandes
   
x1 x1 x1 1
p1 |x1 , x2 N , 1
n1 n1 n1 n1
   
x2 x2 x2 1
p2 |x1 , x2 N , 1
n2 n2 n2 n2
y son independientes. Se tiene, por las propiedades de las distribuciones normales, que
     
x1 x2 x1 x1 1 x2 x2 1
p1 p2 |x1 , x2 N , 1 + 1
n1 n2 n1 n1 n1 n2 n2 n2
y el clculo de la probabilidad pedida es

x1 x2
c n1
n2
1

.

x1 x1 1 x2 x2 1
n1
1 n1 n1
+ n2
1 n2 n2

As, un intervalo de probabilidad a posteriori (1 ) sera


      
x1 x2 x1 x1 1 x2 x2 1
z a2 1 + 1 .
n1 n2 n1 n1 n1 n2 n2 n2

32

Otra posibilidad es emplear simulacin. Generamos k observaciones p1i , p2i , . . . pki de pi |x1 , x2 ,
para i = 1, 2 y se aproxima la probabilidad mediante

cardinal {pi1 pi2 c}


.
k
Mediante simulacin podemos generar, por ejemplo, 1000 observaciones de p1 y p2 (pij , j
 
{1, 2} , i {1, 2, . . . , 1000}), ordenar los valores ri = pi1 pi2 y emplear el intervalo r(50) , r(950)
para dar un intervalo aproximado de probabilidad de 0.9.
Por ltimo, se puede contrastar hiptesis, por ejemplo,

H0 : p1 p2 = 0

frente a
H1 : p1 p2 = 0.

Para ello, calculamos un intervalo de probabilidad a posteriori igual 0.95; si incluye a 0,


decimos que los datos justifican la hiptesis de que ambas proporciones son iguales.

Ejemplo

Un grupo de investigadores evalu si un grupo de personas en la repblica del Congo tena


el virus del sida y registr la frecuencia con que haban empleado preservativos el ao anterior.
La tabla recoge el nmero de personas que pasaron de seronegativos a seropositivos, en funcin
del uso de preservativos.

Uso Nunca <25 % 26-50 % 50-75 % >75 %


Sero+ 74 19 7 0 0
Sero- 214 36 15 2 6
Total 288 55 22 2 6

Agrupamos las observaciones entre personas que usan muy frecuentemente preservativos
(75 %) y las que no lo usan (<75 %)

<75 % 75 %
Sero+ 100 0
Sero- 267 6
367 6

33
La cuestin que nos planteamos es si el uso alto de preservativos previene la transmisin
del virus del sida. Consideramos distribuciones a priori Be (1, 1) independientes para ambas
proporciones pSI , pNO y calculamos un intervalo de probabilidad a posteriori 0.95 para d =
pNO pSI .
La densidad a posteriori para pNO es Be (101, 268) y para pSI es Be (1, 7) . Las medias y
varianzas a posteriori son, respectivamente,
101
E (pNO |datos) = = 0,2737
369
V ar (pNO |datos) = 0,0005
1
E (pSI |datos) = = 0,125
8
V ar (pSI |datos) = 0,0121,

con lo que

E (pNO pSI |datos) = 0,149


V ar (pNO pSI |datos) = 0,0127.

Suponiendo vlido el argumento asinttico resulta que, aproximadamente,

pNO pSI |datos N (0,149, 0,0127) .

Como, para la N (0, 1) , P (1,96, 1,96) = 0,95, un intervalo de probabilidad 0.95 es


   
0,149 1,96 0,0127, 0,149 + 1,96 0,0127 =
= [0,07, 0,37]

y 0 [0,07, 0,37] .
Con esto ya se ha respondido a la pregunta formulada, pero podemos completar el argu-
mento.
Como P (1, 1) = 0,68, un intervalo de probabilidad 0.68 es
   
0,149 1 0,0127, 0,149 + 1 0,0127 =
= [0,04, 0,26]

y0
/ [0,04, 0,26]

00,149
Adems, P (pN O pSI ) = P (pNO pSI 0) =
0,0127
= (1,318) = 1 (1,318) =
0,1.

34
As, la hiptesis de que usar los preservativos es efectivo tiene algo de apoyo, pero no mucho.
Procedemos en forma similar mediante simulacin. Generamos 1000 observaciones de una
Be (101, 268) y de una Be (1, 7) . Se obtienen las diferencias, se ordenan de menor a mayor y se
calcula el intervalo correspondiente. Para una probabilidad del 0.95 se tiene
 
z(25) , z(975) = [0,0981, 0,2875] .

Para probabilidad 0.68, se tiene


 
z(160) , z(840) = [0,0436, 0,2197]

y
cardinal {z 0} 106
P (pNO pSI 0|datos) = = = 0,106.
1000 1000
Programa en R:

# Ejemplo
# Se tiene que p1 sigue una Be(101,268)
# Se tiene que p2 sigue una Be(1,7)

# Simulo dos distribuciones a posteriori


p1 <- rbeta(1000,101,268)
p2 <- rbeta(1000,1,7)

# Calculo la diferencia entre ambas muestras


dif <- p1 - p2

# Calculo la probabilidad de los valores que son >=0


difmas0 <- dif[dif >= 0]
prob <- length(difmas0)/1000
prob

# Calculo los cuantiles del 5% y el 95%


# Esto equivale a un intervalo del 0.90
quantile(dif,c(0.05,0.95))

35
# Calculo los cuantiles del 2.5% y el 97.5%
# Esto equivale a un intervalo del 0.95
quantile(dif,c(0.025,0.975))

# O bien
# Ordeno los valores y calculo un intervalo de 0.90
ordedif <-sort(dif)
ordedif[50]
ordedif[950]

ordedif[100]
ordedif[900]

ordedif[150]
ordedif[850]

Ejemplo con WinBugs/OpenBugs.


Programa de bugs

# Diferencia entre dos proporciones (Beta-Binomial)


model {
for (i in 1:n1)
{x[i] ~ dbern(teta1)}
teta1 ~ dbeta(1,1)
for (i in 1:n2)
{y[i] ~ dbern(teta2)}
teta2 ~ dbeta(1,1)
propdif <- teta1-teta2
propraz <- teta1/teta2
}

Programa Completo de BRugs:

rm(list=ls(all=TRUE)) # Limpias la memoria

36
ruta <- "c:/dondesea/"
setwd(ruta) # Fijas la ruta de trabajo

library(BRugs) # Cargo BRugs

#.................................................................
# PROGRAMA de BUGS
#.................................................................
cat("
# Diferencia entre dos proporciones (Beta-Binomial)
model {
for (i in 1:n1){x[i] ~ dbern(teta1)}
teta1 ~ dbeta(1,1)
for (i in 1:n2){y[i] ~ dbern(teta2)}
teta2 ~ dbeta(1,1)
propdif <- teta1-teta2
propraz <- teta1/teta2
}
",
file="modelo.txt")
#.................................................................

# Introduzco los datos


x <- c(0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1)
n1 <- 20
y <- c(0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1)
n2 <- 25
datos <- list("x","y","n1","n2")
parametros <- c("teta1","teta2","propdif","propraz")
iniciales <- function(){list(teta1=runif(1),teta2=runif(1))}

#.......................................................................

37
# Programa con BRugs
modelo <- BRugsFit(data=datos, inits=iniciales,
para=parametros, nBurnin=5000, nIter=10000,
modelFile="modelo.txt",
numChains=3, working.directory=ruta)

samplesStats("*")

png(file="cosa.png",pointsize=8)
par(mfrow=c(2,1))
plotDensity("teta1",xlab=expression(theta), main="Densidad de teta1")
plotDensity("teta2",xlab=expression(theta), main="Densidad de teta2")
dev.off()

file.remove("modelo.txt")

Programa de WinBugs:

Se puede considerar, alternativamente, la interfaz directamente con WinBugs con R2WinBUGS

# ... Igual que antes

library(R2WinBUGS)
# Programa con Winbugs14
binom2.sim <- bugs(data=datos, inits=iniciales,
parameters.to.save=parametros, model.file="modelo.txt",
n.chains=3, n.iter=10000, n.burnin=5000,
bugs.directory="C:/WinBUGS14/",
working.directory=ruta, clearWD=TRUE,
debug=TRUE)

print(binom2.sim)

38

También podría gustarte