Está en la página 1de 30

Estadstica computacional

Tema 1: El algoritmo EM
Sesin 4
Doctorado en Estadstica

Profesor: Dr. Harvey Rosas


Alumno: Marcelo Rodrguez
Facultad de Ciencias
Universidad de Valparaso
Valparaso, Chile, 23 de abril de 2015

Contenidos

Introduccion

Un ejemplo inspirador

El algortitmo EM

Ejemplos del algortitmo EM

Introduccion

I II III IV

El algoritmo EM

Introduccin
El algoritmo EM (Expectation-Maximization) es una tecnica de
optimizacion originalmente introducida por Dempster, Laird and
Rubin (1977), en su publicacin Maximum Likelihood from Incomplete Data via the EM Algorithm. Se utiliza en estadstica
para encontrar estimadores de verosimilitud maxima (VM) de parmetros en modelos probabilsticos que dependen de variables no
observables (datos perdidos).
El algoritmo EM alterna pasos de esperanza (paso E), donde se calcula la esperanza de la verosimilitud mediante la
inclusin de variables latentes como si fueran observables,
y un paso de maximizacin (paso M), donde se calculan estimadores de VM de los parmetros mediante la maximizacin
de la verosimilitud esperada del paso E.
Los parmetros que se encuentran en el paso M se usan para
comenzar el paso E siguiente, y as el proceso se repite.
mrodriguezgallardo@gmail.com

IEUV

Estadstica computacional

15-10-2014 4/30

Un ejemplo inspirador

I II III IV

El algoritmo EM

Ejemplo inspirador: estimacin de ligamiento


en gentica (Rao, 1973)
Este problema es propuesto por Rao (1973, pp. 368-369) y analizado por Dempester (1977) para presentar el algoritmo EM.
Se presenta datos en que 197 animales se distribuyen en cuatro
categoras (AB, Ab, aB y ab), de modo que el vector de datos
observados de frecuencias es
x = (x1 , x2 , x3 , x4 )T = (125, 18, 20, 34)T .
Se postula que provienen de una distribucion multinomial con
cuatro categorias con funcion de probabilidad
Pr(X1 = x1 , X2 = x2 , X3 = x3 , X4 = x4 ) = g(x|),
es decir
n!
g(x|) =
x1 !x2 !x3 !x4 !

1 1
+
2 4

x1 

1 1

4 4

x2 

1 1

4 4

x3 

donde n = x1 + x2 + x3 + x4 y 0 1.
mrodriguezgallardo@gmail.com

IEUV

Estadstica computacional

15-10-2014 6/30

 x4
.

I II III IV

El algoritmo EM

Estimacin analtica
La funcin de log-verosimilitud es
l() = log(L(|x)) = log(g(x|)),
l() x1 log(2 + ) + (x2 + x3 ) log(1 ) + x4 log().
Al derivar l() con respecto a se tiene
x1
x2 + x3 x4

l() =

+ .

2+
1

Resolviendo el sitema
l() = 0, lo cual equivale a la ecuacin

2
cuadrtica l () = n + (2x2 + 2x3 x1 + x4 ) 2x4 = 0 y
despejando se obtiene el EVM de .
p
(2x2 + 2x3 x1 + x4 ) + (2x2 + 2x3 x1 + x4 )2 + 8nx4
b
M V =
.
2n

Por lo tanto, para x = (x1 , x2 , x3 , x4 )T = (125, 18, 20, 34)T , una


53809
estimacin es bM V = 15+394
= 0, 626821498.
mrodriguezgallardo@gmail.com

IEUV

Estadstica computacional

15-10-2014 7/30

I II III IV

El algoritmo EM

Estimacin utilizando la librera maxLik


l() x1 log(2 + ) + (x2 + x3 ) log(1 ) + x4 log().
library(maxLik)
x<-c(125,18,20,34)
LogLikTheta<- function(param)
{
theta<-param[1]
x[1]*log(2+theta)+(x[2]+x[3])*log(1-theta)+
x[4]*log(theta)
}
EVM <- maxLik(logLik = LogLikTheta, start = c(theta=0.5))
#summary(mle)
coef(EVM)
theta
0.6268215
mrodriguezgallardo@gmail.com

IEUV

Estadstica computacional

15-10-2014 8/30

I II III IV

El algoritmo EM

Estimacin mediante mtodo de


Newton-Raphson
Recuerde que, si desea encontrar los valores de que satisfacen la
ecuacin f () = a2 + b + c = las puede obtener con el mtodo
de N-R mediante el algoritmo iterativo
(j+1) = (j)

f ((j) )
a[(j) ]2 + b(j) + c
=

.
(j)
f 0 ((j) )
2a(j) + b

En nuestro ejemplo tendriamos


(j+1)

n[(j) ]2 + (2x2 + 2x3 x1 + x4 )(j) 2x4


= (j)
.
2n(j) + (2x2 + 2x3 x1 + x4 )

Reemplazando los datos


(j+1) = (j)
mrodriguezgallardo@gmail.com

197[(j) ]2 15(j) 68
.
394(j) 15

IEUV

Estadstica computacional

15-10-2014 9/30

I II III IV

El algoritmo EM

Estimacin mediante el mtodo de


Newton-Raphson
La EVM mediante al algoritmo de N-R es de bN R = 0, 626821498.

Iteracin j

(j)

j = |(j) (j1) |

l (j )

0
1
2
3
4
5

0,500000000
0,644230769
0,627071500
0,626821551
0,626821498
0,626821498

0,144230769
0,017159269
0,000249949
0,000000053
0,000000000

-26,2500000000000
4,0980954142012
0,0580047808911
0,0000123075082
0,0000000000006
0,0000000000000

Por ejemplo,
2 150,5068
197[(0) ]2 15(0) 68
= 0, 50 197[0,50]
= 0, 644230769
394(0) 15
3940,5015
197[0,644230769]2 150,64423076968
= 0, 627071500
0, 644230769
3940,64423076915

(1) = (0)
(2) =

mrodriguezgallardo@gmail.com

IEUV

Estadstica computacional

15-10-2014 10/30

El algortitmo EM

I II III IV

El algoritmo EM

Primeros detalles del algoritmo EM


Se supone que X = (X1 , X2 , . . . , Xn ) VA iid con distribucin
conjunta desde g(x|) y se quiere calcular
b = arg m
ax L(|x).
Donde L(|x) = g(x|). Consideremos los datos completos w
provenientes una muestra aleatoria constituida por W = (X, Z),
donde W representa los datos completos, X los datos observados
y Z datos perdidos. La distribucin conjunta de W es
f (w|) = f (x, z|) = k(z|, x)g(x|).
Cmo calculamos Lc (|w) = Lc (|x, z) si no conocemos z? Respuesta: No conocemos z de Lc (|x, z), as que la supondremos
como variable aleatoria y calculamos una media.
mrodriguezgallardo@gmail.com

IEUV

Estadstica computacional

15-10-2014 12/30

I II III IV

El algoritmo EM

Primeros detalles del algoritmo EM


R
Considerando g(x|) = Z f (x, z|)dz, donde (X, Z) f (x, z|).
Entonces la distribucin condicional de los datos perdidos z, dado
los datos observados x es
k(z|, x) =

f (x, z|)
.
g(x|)

Adems existe una relacin entre la verosimilitud para los datos


completos Lc (|x, Z) y la verosimilitud para los datos observados
L(|x) dada por
Lc (|x, Z) = k(Z|, x)L(|x)
y la log-verosimilitud es
log Lc (|x, Z) = log k(Z|, x) + log g(x|)
mrodriguezgallardo@gmail.com

IEUV

Estadstica computacional

15-10-2014 13/30

I II III IV

El algoritmo EM

Primeros detalles del algoritmo EM

es decir,
log g(x|) = log L(|x) = log Lc (|x, Z) log k(Z|, x)
Para un valor 0 , calculando esperanza con respecto a k(Z|, x)
y utilizando la desigualdad de Jensen, se tiene
log L(|x) = E0 [log Lc (|x, Z)] E0 [log k(Z|, x)] .
| {z } |
{z
} |
{z
}
Datos obs.
Datos completos
Datos perdidos
Al maximizar log L(|x) se debe ignorar el termino asociado solo
a los datos perdidos.

mrodriguezgallardo@gmail.com

IEUV

Estadstica computacional

15-10-2014 14/30

I II III IV

El algoritmo EM

Iteraciones
El valor esperado de la log-verosimilitud se denota por
Q(|0 , x) = E0 [log Lc (|x, Z)].
El algoritmo EM comienza maximizando en cada iteracin
Q(|0 , x).
Si b(1) = arg max Q(|0 , x), entonces b(0) b(1) .
Se obtienen secuencias de estimadores {b(j) }, donde
b(j) = arg m
ax Q(|b(j1) , x).
Este esquema iterativo, en cada paso contiene un calculo de
esperanza y maximizacin.

mrodriguezgallardo@gmail.com

IEUV

Estadstica computacional

15-10-2014 15/30

I II III IV

El algoritmo EM

El algoritmo
Se comienza con una valor inicial b(0) fijado por el investigador.
Repita.
1 Calcule (paso E)
Q(|b(m) , x) = Eb

(m)

[log Lc (|x, Z)],

donde la esperanza es con respecto a k(z|b(m) , x) y establecer


m = 0.
Maximizar Q(|b(m) , x) en y tomar (paso M)
b(m+1) = arg m
ax Q(|b(m) , x)

y establecer m = m + 1.
Los parmetros que se encuentran en el paso M se usan para
comenzar el paso E siguiente, y as el proceso se repite. Es decir,
se fija el punto b(m+1) = b(m) .
mrodriguezgallardo@gmail.com

IEUV

Estadstica computacional

15-10-2014 16/30

Ejemplos del algortitmo EM

I II III IV

El algoritmo EM

Ejemplo: distribucin de los datos observados


Recuerde que se presentaron datos en que n = 197 animales se distribuyen en cuatro categoras, de modo que el vector de datos observados de frecuencias es x = (x1 , x2 , x3 , x4 )T = (125, 18, 20, 34)T .
Se postula que provienen de una distribucion multinomial.
La funcin de distribucin conjunta, para los datos observados, es:
n!
g(x|) =
x1 !x2 !x3 !x4 !

1 1
+
2 4

 x1 

1
(1 )
4

x2 +x3  x4

.
4

El ncleo de la distribucin de los datos observados es


g(x|) (2 + )x1 (1 )x2 +x3 ()x4 .

mrodriguezgallardo@gmail.com

IEUV

Estadstica computacional

15-10-2014 18/30

I II III IV

El algoritmo EM

Ejemplo: distribucin de los datos completos


Suponga que el dato con la mayor categora proviene de dos categoras z1 y z2 con probabilidades 1/2 y /4 , respectivamente.
De esta forma se introduce una variable latente (x1 = z1 + z2 ) resultando cinco categoras dadas por w = (w1 , w2 , w3 , w4 , w5 )T =
(z1 , z2 , x2 , x3 , x4 )T , que representaran los datos completo. Adems z = (z1 , z2 ) representa los datos perdidos.
La distribucin conjunta de W es f (w|) = f (x, z|), donde
n!
f (x, z|) =
z1 !z2 !x2 !x3 !x4 !

 z1  z2 
x2 +x3  x4
1

(1 )
2
4
4
4

El ncleo de la distribucin de los datos observados es


f (x, z|) ()z2 +x4 (1 )x2 +x3 .

mrodriguezgallardo@gmail.com

IEUV

Estadstica computacional

15-10-2014 19/30

I II III IV

El algoritmo EM

Ejemplo: distribucin condicional de los


datos perdidos
La distribucin condicional de los datos perdidos z, dado los datos
observados x es
 
z2 
x1 z2
f (x, z|)
x1

.
k(z|, x) =
=
1
g(x|)
y2
+2
+2
El nucleo de la distribucin condicional de los datos perdidos z,
dado los datos observados x es
k(z|, x)

()z2 +x4 (1 )x2 +x3


z2
=
.
(2 + )x1 (1 )x2 +x3 ()x4
(2 + )x1

En conclusin, la distribucin de Z2 es binomial con n = x1 y

p = +2
y por lo tanto
E(Z2 ) =
mrodriguezgallardo@gmail.com

IEUV

x1
.
+2
Estadstica computacional

15-10-2014 20/30

I II III IV

El algoritmo EM

Ejemplo: La etapa E
Primero la log-verosimilitud completa es
log Lc (|x, Z) = log f (x, Z|) = (Z2 +x4 ) log()+(x2 +x3 ) log(1).
La esperanza sera
Eb

(m)

[log Lc (|x, Z)] = Eb

(m)

= Eb

(m)

[(Z2 +x4 ) log()+(x2 +x3 ) log(1)],

[Z2 ] log() + x4 log() + (x2 + x3 ) log(1 ),

Por lo tanto,
Q(|b(m) , x) =

(m) x1
log() + x4 log() + (x2 + x3 ) log(1 ),
(m) + 2

mrodriguezgallardo@gmail.com

IEUV

Estadstica computacional

15-10-2014 21/30

I II III IV

El algoritmo EM

Ejemplo: la etapa M
Se deriva Q con respecto al parmetro y se iguala a cero
Q(|b(m) , x)
=

(m) x1
(m) +2

+ x4

x2 + x3
= 0.
1

Resolviendo la ecuacin (despejando )

(m) x1
(m) +2
(m) x1
(m) +2

+ x4

+ x2 + x3 + x4

Remplazando los datos, x1 = 125, x2 = 18, x3 = 20 y x4 = 34,


resulta una formula recursiva para el EVM de mediante.

b(m+1) =

mrodriguezgallardo@gmail.com

125(m)
(m) +2
125(m)
(m) +2

+ 34
=
+ 72

IEUV

159(m) + 68
.
197(m) + 144

Estadstica computacional

15-10-2014 22/30

I II III IV

El algoritmo EM

Ejemplo: la estimacin
La EVM mediante el algoritmo EM es de bEM = 0, 626821498.
Iteracin j

(j)

j = |(j) (j1) |

1
2
3
4
5
6
7
8
9
10
11
12

0,500000000
0,608247423
0,624321050
0,626488879
0,626777322
0,626815632
0,626820719
0,626821394
0,626821484
0,626821496
0,626821498
0,626821498

0,108247423
0,016073628
0,002167829
0,000288443
0,000038310
0,000005087
0,000000675
0,000000090
0,000000012
0,000000002
0,000000000

mrodriguezgallardo@gmail.com

IEUV

Estadstica computacional

15-10-2014 23/30

I II III IV

El algoritmo EM

Cdigo R: Algoritmo EM Monte Carlo


emrao <- function(m,teta0,error)
{
error1 <- 1
contador <- 1
while(error1 > error)
{
tetaux <- teta0/(2+teta0)
zi <- rbinom(m,125,tetaux)
teta1 <- (mean(zi)+34)/(mean(zi)+72)
error1 <- abs((teta1-teta0)/teta1)
teta0 <- teta1
print(c(teta1,contador))
contador <- contador+1
}
}
emrao(10000,0.5,0.00001)
mrodriguezgallardo@gmail.com

IEUV

Iteracin j

(j)

1
2
3
4
5
...
149
148
150
148
151

0.6080664
0.6243003
0.6263641
0.6269785
0.6267242
...
0.6268228
0.6271139
0.6267015
0.6268587
0.6268609

La EVM estimada
mediante el algoritmo EMMC es de
bb
M C = 0,6268609.

Estadstica computacional

15-10-2014 24/30

I II III IV

El algoritmo EM

Algoritmo EM para datos censurados


La verosimilitud de los datos completos es

El valor esperado de la log-verosimilitud de los datos completos


es

Donde Zi se distribuye normal con media y varianza 1, truncada


en a.
mrodriguezgallardo@gmail.com

IEUV

Estadstica computacional

15-10-2014 25/30

I II III IV

El algoritmo EM

Algoritmo EM para datos censurados


El paso M:

La secuencia del algoritmo EM es

mrodriguezgallardo@gmail.com

IEUV

Estadstica computacional

15-10-2014 26/30

I II III IV

El algoritmo EM

Algoritmo EM para datos censurados


Algoritmos tomados del libro de Casella.
#-----------Censored Data EM---------------------------#This does the em and mcem algorithm for censored data#
#n obs normal(t0,1), m uncensored values, n-m censored at a#
xdata<-c(3.64, 2.78, 2.91,2.85,2.54,2.62,3.16,2.21,4.05,
2.19,2.97,4.32, 3.56,3.39,3.59,4.13,4.21,1.68,3.88,4.33)
n<-25 #Total Sample Size
m=length(xdata) #Observed data
t0<-4;a<-4.5
nt<-50 #Number of thetas in the sequence
nz<-25 #Number of zs in MCEM
xbar<-mean(xdata);that<-array(xbar,dim=c(nt,1));
for (j in 2:nt) {
that[j] <-(m/n)*xbar+(1-m/n)*(that[j-1]+dnorm(a-that[j-1])
/(1-pnorm(a-that[j-1])))}
plot(that,type="l",xlim=c(0,nt),ylim=c(3.3,3.7),lwd=2)
mrodriguezgallardo@gmail.com

IEUV

Estadstica computacional

15-10-2014 27/30

I II III IV

El algoritmo EM

Algoritmo EM para datos censurados

#now do MCEM, z=missing data, nz=size of MC sample


tmc<-array(xbar,dim=c(nt,1));
for (j in 2:nt) {
z<-array(a-1,dim=c(nz,1));
for (k in 1:nz) {while(z[k] <a)
z[k] <- rnorm(1,mean=tmc[j-1],sd=1)}
zbar<-mean(z)
tmc[j] <-(m/n)*xbar+(1-m/n)*zbar}
#plot(that,type="l",xlim=c(0,nt),ylim=c(3.3,3.7),lwd=2)
par(new=T)
plot(tmc,type="l",xlim=c(0,nt),ylim=c(3.3,3.7),xlab="",
ylab="",xaxt="n",yaxt="n",lwd=2)

mrodriguezgallardo@gmail.com

IEUV

Estadstica computacional

15-10-2014 28/30

I II III IV

El algoritmo EM

Algoritmo EM para datos censurados

summary(xdata)
Min. 1st Qu.
1.680
2.740

Median
3.275

mrodriguezgallardo@gmail.com

Mean 3rd Qu.


3.250
3.923
IEUV

Max.
4.330

Estadstica computacional

15-10-2014 29/30

Fin sesin 4
Gracias por asistir a esta presentacin

También podría gustarte