Supongamos que tenemos una población con N unidades, cada una variable aleatoria Xi∼Poisson(λ). Observas n=N−n0 valores para cualquier unidad para la cual se Xi>0. Queremos una estimación de λ.
Hay método de los momentos y de máxima verosimilitud condicional maneras de obtener la respuesta, pero quería probar el algoritmo EM. Puedo obtener el algoritmo EM para ser Q(λ−1,λ)=λ(n+nexp(λ−1)−1)+log(λ)n∑i=1xi+K, donde el −1 subíndice indica el valor de la anterior iteración del algoritmo y K es constante con respecto a los parámetros. (En realidad creo que el n en la fracción entre paréntesis debe ser n+1, pero eso no parece exacto; una pregunta para otro momento).
Para hacer este concreto, supongamos que n=10, ∑xi=20. Por supuesto, N n0 son observados y λ es para ser estimado.
Cuando me iterar la función siguiente, el uso de la iteración anterior del valor máximo, puedo llegar a la respuesta correcta (verificado por la LMC, MAMÁ, y una simulación simple):
EmFunc <- function(lambda, lambda0){
-lambda * (10 + 10 / (exp(lambda0) - 1)) + 20 * log(lambda)
}
lambda0 <- 2
lambda <- 1
while(abs(lambda - lambda0) > 0.0001){
lambda0 <- lambda
iter <- optimize(EmFunc, lambda0 = lambda0, c(0,4), maximum = TRUE)
lambda <- iter$maximum
}
> iter
$maximum
[1] 1.593573
$objective
[1] -10.68045
Pero este es un problema sencillo; vamos a maximizar sin iteración:
MaxFunc <- function(lambda){
-lambda * (10 + 10 / (exp(lambda) - 1)) + 20 * log(lambda)
}
optimize(MaxFunc, c(0,4), maximum = TRUE)
$maximum
[1] 2.393027
$objective
[1] -8.884968
El valor de la función es mayor que en las naciones unidas-procedimiento iterativo y el resultado es inconsistente con las otras metodologías. ¿Por qué es el segundo procedimiento dándole una forma diferente y (supongo) respuesta incorrecta?