Почему алгоритм EM должен быть итеративным?


9

Предположим, что у вас есть популяция с единицами, каждая со случайной величиной . Вы наблюдаете значений для любой единицы измерения, для которой . Мы хотим оценить .X iПуассона ( λ ) n = N - n 0 X i > 0 λNИкся~Пуассон(λ)Nзнак равноN-N0Икся>0λ

Есть метод моментов и условные способы получения максимального правдоподобия, но я хотел попробовать алгоритм EM. Я получаю EM-алгоритм для где индекс указывает значение из предыдущей итерации алгоритма, а является постоянным по отношению к параметры. (Я действительно думаю, что в дроби в скобках должно быть , но это не кажется точным; вопрос в другой раз).-1Knn+1

Q(λ-1,λ)знак равноλ(N+Nехр(λ-1)-1)+журнал(λ)Σязнак равно1NИкся+К,
-1КNN+1

Чтобы сделать это конкретным, предположим, что , . Конечно, и не соблюдаются, и должен быть оценен.Nзнак равно10ΣИксязнак равно20NN0λ

Когда я повторяю следующую функцию, вставляя максимальное значение предыдущей итерации, я получаю правильный ответ (проверяется с помощью CML, MOM и простого моделирования):

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

Но это простая проблема; давайте просто максимизируем без итерации:

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

Значение функции выше, чем в неитерационной процедуре, и результат не согласуется с другими методологиями. Почему вторая процедура дает другой и (я полагаю) неправильный ответ?

Ответы:


6

Иксязнак равно0YQY λ-1λ-1

QλYYQе(λ)знак равноQ(λ,λ)

е(λ)е

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.