각각 랜덤 변수 가있는 단위 의 모집단이 있다고 가정합니다 . 모든 단위에 대해 값을 관찰 합니다. 의 추정치를 원합니다 .
답변을 얻는 방법과 조건부 최대 가능성 방법이 있지만 EM 알고리즘을 시도하고 싶었습니다. EM 알고리즘을 여기서 아래 첨자는 알고리즘의 이전 반복 값을 나타내며 는 매개 변수. (실제로 괄호 안의 분수 의 은 이어야한다고 생각 하지만 정확하지는 않습니다. 다른 시간에 대한 질문입니다).
이를 구체적으로 만들기 위해 , 이라고 가정하십시오 . 물론 과 은 관찰되지 않으며 는 추정됩니다.
이전 반복의 최대 값을 연결하여 다음 함수를 반복하면 정답에 도달합니다 (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
함수의 값은 반복적이지 않은 절차보다 높으며 결과는 다른 방법론과 일치하지 않습니다. 두 번째 절차가 왜 다른 대답을 하는가?