Sei sulla pagina 1di 50

Construccion de un Estadstico Suficiente a traves del

Metodo ABC
Approximate Bayesian Computation

Ivan Aliaga Casceres

Universidad del Bio Bio

powervan@gmail.com

Ivan Aliaga (UBB) Bayesiana 1 / 35


Contenido

1 Introduccion

2 Metodo ABC

3 Ejemplos

4 Construccion del Estadstico Suficiente

Ivan Aliaga (UBB) Bayesiana 2 / 35


Introduccion

Contenido

1 Introduccion

2 Metodo ABC

3 Ejemplos

4 Construccion del Estadstico Suficiente

Ivan Aliaga (UBB) Bayesiana 3 / 35


Introduccion

Introduccion
La inferencia Bayesiana se centra en la Distribucion Posterior,

f (x|)()
p(|x) = (1)
p(x)

Donde x son los datos, x RD , f (x|) es la verosimilitud, () la


distribucion priori, y es un parametro desconocido, p(x) es tambien llamado
evidencia(Mackay 2003).

El Principio de Verosimilitud afirma que toda la informacion acerca del


parametro esta contenido en f (x|).

Un estadstico suficiente es un estadstico que tiene la propiedad con respecto a


un modelo estadstico y su parametro desconocido, es decir, ningun otro
estadstico que puede ser calculado sobre la misma muestra proporciona
informacion adicional sobre su valor.
Fisher, R.A.

Ivan Aliaga (UBB) Bayesiana 4 / 35


Introduccion

Introduccion
Un estadstico (Estadstico de resumen) en general tiene esta forma.

S : Rd Rw , S(x) = s (2)

Denotamos a f (x|, s) La verosimilitud condicional en el valor de la estadstica


de resumen S(x) = s y g(x|s) la funcion de probabilidad de los datos dado el
estadstico de resumen. El estadstico es suficiente si y solo si.

f (x|s, ) = g(x|s). (3)

La verosimilitud puede ser generalmente escrito con el Teorema de


Neyman-Fisher de forma factorizada

f (x|) = g(x|s)f(s|), (4)

Donde f(s|) es la funcion de cuantia del estadstico suficiente. La funcion g()


es independiente del parametro .
f(s|) lleva toda la informacion acerca del parametro.

Ivan Aliaga (UBB) Bayesiana 5 / 35


Introduccion

Muestras de la distribucion posterior

En general, no existe una forma cerrada


Se realiza simulacion y tecnicas de montecarlo para extraer muestras de la
distribucion posterior.
Enfoque basado en la verosomilitud
Muestreo por importancia
Markov Chain Monte-Carlo (MCMC)
Muestreo Secuencial Monte-Carlo (SMC)
...

Ivan Aliaga (UBB) Bayesiana 6 / 35


Introduccion

Verosimilitud libre

Algoritmo de Verosimilitud libre muestreo por importancia

1. Generar 0 () de la distribucion priori.


2. Generar un conjunto y del modelo f (x|0 ).
3. Se acepta 0 si x y.

Ivan Aliaga (UBB) Bayesiana 7 / 35


Metodo ABC

Contenido

1 Introduccion

2 Metodo ABC

3 Ejemplos

4 Construccion del Estadstico Suficiente

Ivan Aliaga (UBB) Bayesiana 8 / 35


Metodo ABC

Metodo ABC

Principales caractersticas
Fue creado al inicio como una idea en 1980. Donald Rubin.

Ivan Aliaga (UBB) Bayesiana 9 / 35


Metodo ABC

Metodo ABC

Principales caractersticas
Fue creado al inicio como una idea en 1980. Donald Rubin.
Es un algoritmo proveniente de los algoritmos de aceptacion y rechazo.

Ivan Aliaga (UBB) Bayesiana 9 / 35


Metodo ABC

Metodo ABC

Principales caractersticas
Fue creado al inicio como una idea en 1980. Donald Rubin.
Es un algoritmo proveniente de los algoritmos de aceptacion y rechazo.
Describe un mecanismo de muestreo hipotetica que produce una muestra
de la distribucion posterior.

Ivan Aliaga (UBB) Bayesiana 9 / 35


Metodo ABC

Metodo ABC

Principales caractersticas
Fue creado al inicio como una idea en 1980. Donald Rubin.
Es un algoritmo proveniente de los algoritmos de aceptacion y rechazo.
Describe un mecanismo de muestreo hipotetica que produce una muestra
de la distribucion posterior.
Este esquema fue mas conceptual de un experimento para demostrar que
tipo de manipulaciones se realizan cuando inferir la distribucion posterior
de los parametros.

Ivan Aliaga (UBB) Bayesiana 9 / 35


Metodo ABC

Metodo ABC

Algoritmo resumen.
Generar muestras j () para j = 1, 2, 3, . . .

Ivan Aliaga (UBB) Bayesiana 10 / 35


Metodo ABC

Metodo ABC

Algoritmo resumen.
Generar muestras j () para j = 1, 2, 3, . . .
Aceptar cada muestra j con probabilidad proporcional a f (x|j ) donde x
son los datos observados.
Las muestras que son aceptadas estan distribuidas con densidad (|x).

Ivan Aliaga (UBB) Bayesiana 10 / 35


Metodo ABC

Metodo ABC

Algoritmo resumen.
Generar muestras j () para j = 1, 2, 3, . . .
Aceptar cada muestra j con probabilidad proporcional a f (x|j ) donde x
son los datos observados.
Las muestras que son aceptadas estan distribuidas con densidad (|x).
Puesto que suponemos que no tenemos acceso a una formula explcita de
f (x|) el objetivo es encontrar un metodo de procedimiento de aceptacion
o rechazo, utilizando solo las muestras de f (x|) pero no evaluando en si
misma.

Ivan Aliaga (UBB) Bayesiana 10 / 35


Metodo ABC

Metodo ABC, Algoritmo

Entrada:
1: datos x Rn

Ivan Aliaga (UBB) Bayesiana 11 / 35


Metodo ABC

Metodo ABC, Algoritmo

Entrada:
1: datos x Rn
2: la densidad priori para los parametros desconocidos Rp

Ivan Aliaga (UBB) Bayesiana 11 / 35


Metodo ABC

Metodo ABC, Algoritmo

Entrada:
1: datos x Rn
2: la densidad priori para los parametros desconocidos Rp
3: Un estadstico de resumen S : Rn Rq , q n

Ivan Aliaga (UBB) Bayesiana 11 / 35


Metodo ABC

Metodo ABC, Algoritmo

Entrada:
1: datos x Rn
2: la densidad priori para los parametros desconocidos Rp
3: Un estadstico de resumen S : Rn Rq , q n
4: Un parametro de tolerancia  > 0

Ivan Aliaga (UBB) Bayesiana 11 / 35


Metodo ABC

Metodo ABC, Algoritmo

Entrada:
1: datos x Rn
2: la densidad priori para los parametros desconocidos Rp
3: Un estadstico de resumen S : Rn Rq , q n
4: Un parametro de tolerancia  > 0
5: Muestras j p y Xj pX| (|x ).

Ivan Aliaga (UBB) Bayesiana 11 / 35


Metodo ABC

Metodo ABC, Algoritmo

Entrada:
1: datos x Rn
2: la densidad priori para los parametros desconocidos Rp
3: Un estadstico de resumen S : Rn Rq , q n
4: Un parametro de tolerancia  > 0
5: Muestras j p y Xj pX| (|x ).
Salida: j1 , j2 , . . . tienen distribucion con densidad p|X (|x )

Ivan Aliaga (UBB) Bayesiana 11 / 35


Metodo ABC

Metodo ABC, Algoritmo

Entrada:
1: datos x Rn
2: la densidad priori para los parametros desconocidos Rp
3: Un estadstico de resumen S : Rn Rq , q n
4: Un parametro de tolerancia  > 0
5: Muestras j p y Xj pX| (|x ).
Salida: j1 , j2 , . . . tienen distribucion con densidad p|X (|x )
6: s S(s )
7: para j = 1, 2, 3, . . . hacer
8: Generar j p ()
9: Generar Xj pX| (|j )
10: Sj S(Xj )
11: si |Sj s |  entonces
12: devolver j
13: fin si
14: fin para

Ivan Aliaga (UBB) Bayesiana 11 / 35


Metodo ABC

Proposicion
Sea (jk )kN muestras aceptadas por ABC, para una muestra de datos
x Rn y s = S(x ) los siguientes puntos se cumplen.
a.- Si S es un estadstico suficiente, el limite de la densidad pABC
|S satisface.


pABC
|S (|s ) = p|S (|x ) (5)

Esto es que el limite cuando 0 la distribucion de los valores de la


muestra generada coinciden con la distribucion posterior.
b.- El numero medio de replicas necesarias para generar cada muestra es de
orden O( q )

Ivan Aliaga (UBB) Bayesiana 12 / 35


Ejemplos

Contenido

1 Introduccion

2 Metodo ABC

3 Ejemplos

4 Construccion del Estadstico Suficiente

Ivan Aliaga (UBB) Bayesiana 13 / 35


Ejemplos

Ejemplos, ABC

Se tiene los prioris. j U(10, 10) y j Exp(1) independientes.

Ivan Aliaga (UBB) Bayesiana 14 / 35


Ejemplos

Ejemplos, ABC

Se tiene los prioris. j U(10, 10) y j Exp(1) independientes.


Generar muestras Xj,1 , . . . , Xj,n N(j , j2 ).

Ivan Aliaga (UBB) Bayesiana 14 / 35


Ejemplos

Ejemplos, ABC

Se tiene los prioris. j U(10, 10) y j Exp(1) independientes.


Generar muestras Xj,1 , . . . , Xj,n N(j , j2 ).
Se obtiene los datos x1 , x2 , . . . , xn , cuya vector de estadsticos suficientes
es(Casella berger 2001).
n n
!
1X 1X 2
S(x) = xi , x (6)
n i=1 n i=1 i

Ivan Aliaga (UBB) Bayesiana 14 / 35


Ejemplos

Ejemplos, ABC

Se tiene los prioris. j U(10, 10) y j Exp(1) independientes.


Generar muestras Xj,1 , . . . , Xj,n N(j , j2 ).
Se obtiene los datos x1 , x2 , . . . , xn , cuya vector de estadsticos suficientes
es(Casella berger 2001).
n n
!
1X 1X 2
S(x) = xi , x (6)
n i=1 n i=1 i

1
Pn 1
Pn 2
Sea sj,1 = n i=1 Xj,i , y sj,2 = n i=1 Xj,i .

Ivan Aliaga (UBB) Bayesiana 14 / 35


Ejemplos

Ejemplos, ABC

Se tiene los prioris. j U(10, 10) y j Exp(1) independientes.


Generar muestras Xj,1 , . . . , Xj,n N(j , j2 ).
Se obtiene los datos x1 , x2 , . . . , xn , cuya vector de estadsticos suficientes
es(Casella berger 2001).
n n
!
1X 1X 2
S(x) = xi , x (6)
n i=1 n i=1 i

1
Pn 1
Pn 2
Sea sj,1 = n i=1 Xj,i , y sj,2 = n i=1 Xj,i .
El objetivo es encontrar la distribucion posterior de = (, 2 ) dada las
observaciones x.

Ivan Aliaga (UBB) Bayesiana 14 / 35


Ejemplos

Ejemplos, ABC

Se tiene los prioris. j U(10, 10) y j Exp(1) independientes.


Generar muestras Xj,1 , . . . , Xj,n N(j , j2 ).
Se obtiene los datos x1 , x2 , . . . , xn , cuya vector de estadsticos suficientes
es(Casella berger 2001).
n n
!
1X 1X 2
S(x) = xi , x (6)
n i=1 n i=1 i

1
Pn 1
Pn 2
Sea sj,1 = n i=1 Xj,i , y sj,2 = n i=1 Xj,i .
El objetivo es encontrar la distribucion posterior de = (, 2 ) dada las
observaciones x.
Para ello se acepta j = (j , j2 ) si (sj,1 s1 )2 + (sj,2 s2 )2 2

Ivan Aliaga (UBB) Bayesiana 14 / 35


Ejemplos

library(tabplot)
library(infotheo)
library(abc)
library(parallel)
nCores <- detectCores(logical = FALSE)
nThreads <- detectCores(logical = TRUE)

Ivan Aliaga (UBB) Bayesiana 15 / 35


Ejemplos

cat("CPU con",nCores,"cores y",nThreads,"Nodos Detectados.\n")


cl <- makeCluster(nThreads); cl;
strt<-Sys.time()
set.seed(123456789)
m<- 100000 # replicas
n<-20 # muestras
mu <- runif(m,-10,10)
sigma <- rexp(m,rate = 1)
A <- matrix(c(0), nrow=m,ncol = n)
for (i in 1:m) {
j<-1
while(j<=n){
A[i,j] <- rnorm(1,mean=mu[i],sd=sigma[i]^2)
j<-j+1
}
}
print(Sys.time()-strt)
stopCluster(cl)

Ivan Aliaga (UBB) Bayesiana 16 / 35


Ejemplos

# para mu posteriori
fm2<-function(x) return(sum(x^2)/length(x))
s1<-apply(A,1,mean)
s2<-apply(A,1,fm2)
param.sim <-cbind(mu,sigma) # parametros simulados
stati.sim <-cbind(s1,s2)
stati.obs <- c(6.989,52.247) # estadisticos observados
rej <- abc(target =stati.obs,
param =param.sim,
sumstat =stati.sim,
tol=0.05, method = "rejection")
Xdata<-data.frame(mu=param.sim[,1],sigma=param.sim[,2],acep=rej$region)
table(Xdata$acep)
XdataAcep <- Xdata[Xdata$acep==1,]

Ivan Aliaga (UBB) Bayesiana 17 / 35


Ejemplos

Ivan Aliaga (UBB) Bayesiana 18 / 35


Ejemplos

Ivan Aliaga (UBB) Bayesiana 19 / 35


Ejemplos

Ivan Aliaga (UBB) Bayesiana 20 / 35


Ejemplos

Ivan Aliaga (UBB) Bayesiana 21 / 35


Construccion del Estadstico Suficiente

Contenido

1 Introduccion

2 Metodo ABC

3 Ejemplos

4 Construccion del Estadstico Suficiente

Ivan Aliaga (UBB) Bayesiana 22 / 35


Construccion del Estadstico Suficiente

Entropia

La Entropia entropy de X,denotada por H, es una medida de incertidumbre


de X y se define como:
 
X 1
H(X) = pX (x) log pX (x) = EX 0,
x
log pX (X)

Donde EX denota la esperanza bajo la funcion de masa de probabilidad pX .


Sea (X, Y ) un par variables aleatorias discretas con distribucion conjunta
pX,Y . La Entropia condicioinal H(Y |X) esta definido como.
 
H(Y |X) = EX,Y log pY |X (Y |X) .

Ivan Aliaga (UBB) Bayesiana 23 / 35


Construccion del Estadstico Suficiente

Informacion Mutua

La Informacion mutua I(X; Y ) entre dos variables aleatorias discretas X e Y


mide la cantidad de informacion que Y contiene de X. Se puede observar
como la reduccion de la incertidumbre(o entropia) sobre X debido al
conocimiento de Y .

I(X; Y ) = H(X) H(X|Y )


X pX,Y (x, y)
= pX,Y (x, y) log
pX (x)pY (y)
x,yX
= KL(pX,Y ||pX pY ) 0.

Donde KL(P ||Q) es una medida Kullback-Leibler (KL) o divergencia entre P


and Q. La informacion mutua I(X; Y ) es igual 0 si y solo si las v. a. X y Y
son independientes.

Ivan Aliaga (UBB) Bayesiana 24 / 35


Construccion del Estadstico Suficiente

Construccion de un estadstico suficiente

Consideramos ahora la situacion donde se tienen un conjunto de estadsticos


S = {S1 , . . . , Sw } y se asume que S son estadsticos suficientes se quiere
identificar un subconjunto U de S que es suficiente para . Los siguientes
resultados caracterizan este subconjunto.
Theorem
Sea S un conjunto finito de estadsticos de X, y asumimos que S son
estadsticos suficientes. Denotamos por U un subconjunto de S. Para una
variable aleatoria X distribuido segun una distribucion parametrizado por ,
sea U = U(X) y S = S(X) sucede lo siguiente

U es un estadistico suficiente
I(; S|U ) = 0
EX [KL(p(|S)||p(|U ))] = 0 .

Ivan Aliaga (UBB) Bayesiana 25 / 35


Construccion del Estadstico Suficiente

Minimizacion de la informacion mutua

Entrada:
1: Un conjunto suficiente de estadsticas cuyos valores en el conjunto de
datos es s = {s1 , . . . , sw }
Salida:
2: Un subconjunto U de s
3: para Todos u s hacer
4: Calcular ABC para obtener p(|u )
5: fin para
6: Sea T = {u s such that KL (p(|s )||p(|u )) = 0}
7: Retornar U = argminu T |u |

Ivan Aliaga (UBB) Bayesiana 26 / 35


Construccion del Estadstico Suficiente

Entrada:
1: Un conjunto suficiente de estadsticas deterministas cuyos valores en el
conjunto de datos es s = {s1 , . . . , sw }.
Salida:
2: Un subconjunto U de s
3: Para todos u s , Calcular ABC para obtener p(|u )
4: let s
(1) = argmaxu s log p(|u )
5: para k {2, . . . , w} hacer
n o
6: Para todos u s \ s(1) , . . . , s(k1) , Calcular ABC para obtener
p(|s(1) , . . . , s(k1) , u )
7: Sea

s(k) = argmaxu KL(p(|s(1) , . . . , s(k1) , u )||p(|s(1) , . . . , s(k1) )) (7)

KL(p(|s(1) , . . . , s(k) )||p(|s(1) , . . . , s(k1) )) 


8: Retornar U = (s(1) , . . . , s(k1) ))
9: fin si
fin paraRetornar U = s

Ivan Aliaga (UBB) Bayesiana 27 / 35


Construccion del Estadstico Suficiente

Ejemplo

Se ilustra este ejemplo con dos modelos independientes.

y1 , ...yd N (, 12 ) and y1 , ...yd N (, 22 ), (8)

Donde las desviaciones, 1 and 2 , son fijas. y bajo un priori conjugado,


N (0, a2 ).
Se puede obtener la distribucion a posteriori de i , i = 1, 2 tal que:

a2 i + ni i2 xi 2 1
i = i = 2 i = 1, 2 (9)
a2
i + n
i i
2
a + ni i2

Si queremos tener el estimador de la diferencia.


2 2
= 1 2 , |y1 , y2 N(1 2 , 1 + 2 ) (10)

Ivan Aliaga (UBB) Bayesiana 28 / 35


Construccion del Estadstico Suficiente

library(parallel)
nCores <- detectCores(logical = FALSE)
nThreads <- detectCores(logical = TRUE)
cat("CPU con",nCores,"cores y",nThreads,"Nodos Detectados.\n")
set.seed(123456789)
m<- 200000 # replicas
n<- 15 # muestras
a <- 2
mu <- rnorm(m,mean=0,sd=a^2)
cl <- makeCluster(nThreads); cl;
strt<-Sys.time()
B <- matrix(c(0), nrow=m,ncol = n)
for (i in 1:m) {
j<-1
while(j<=n){
B[i,j] <- rnorm(1,mean=mu[i],sd=a^2)
j<-j+1
}
}

print(Sys.time()-strt)
stopCluster(cl)

Ivan Aliaga (UBB) Bayesiana 29 / 35


Construccion del Estadstico Suficiente

# para diferencia mu distribucion aposteriori


# para mu posteriori
rangef<-function(x) return(range(x)[2]-range(x)[1]) #rango
#estadisticos simulados ojo es muy grande
s1<- apply(B,1,mean)
s2<- apply(B,1,median)
s3<- apply(B,1,var)
s4<- apply(B,1,max)
s5<- apply(B,1,min)
s6<- apply(B,1,IQR)
s7<- apply(B,1,rangef)
S<- cbind(mean=s1,median=s2,var=s3,max=s4,min=s5,iqr=s6,rango=s7)

Ivan Aliaga (UBB) Bayesiana 30 / 35


Construccion del Estadstico Suficiente

param.sim <-cbind(mu) # parametro simulado


stati.sim <-S # estadisticos simulados
stati.obs <- c(0.23,0.56,11.56,7.24,-0.5,5.24,3.25) #estadisticos observados
Post<-list(0)

# theta posteriori para cada j en S


for (j in 1:length(S)) {
Post[[j]] <- abc(target =stati.obs[j],
param =param.sim ,
sumstat =stati.sim[,j] ,
tol=0.01, method = "rejection")
}

Ivan Aliaga (UBB) Bayesiana 31 / 35


Construccion del Estadstico Suficiente

Xdata<-data.frame(mu=param.sim[,1],acep=Post[[1]]$region)
XdataAcep <- Xdata[Xdata$acep==1,]
A=data.frame(x=density(XdataAcep$mu)$x,y=density(XdataAcep$mu)$y)
so1<-A[which.is.max(A$y),1] # s1*
#k<-2
Rej<- abc(target =c(so1),
param =param.sim ,
sumstat =stati.sim[,1] ,
tol=0.01, method = "rejection")
XXdata<-data.frame(mu=param.sim[,1],acep=Rej$region)
XXdataAcep <- XXdata[XXdata$acep==1,]
# si Mutua_Info <=0.5
plot(density(XdataAcep$mu),main="Densidad S1, S2 ..",)
lines(density(XXdataAcep$mu),col=2)
Mutua_Info(cbind(XdataAcep$mu,XXdataAcep$mu)) #ok aprox bits
[1] 0.6081151

Ivan Aliaga (UBB) Bayesiana 32 / 35


Construccion del Estadstico Suficiente

Ivan Aliaga (UBB) Bayesiana 33 / 35


Construccion del Estadstico Suficiente

Resumen

Ivan Aliaga (UBB) Bayesiana 34 / 35

Potrebbero piacerti anche