Ошибка при попытке найти MLE для геометрического распределения - PullRequest
0 голосов
/ 17 февраля 2019

Итак, я получил задание на R, в котором говорится, чтобы найти MLE для случайного значения X, имеющего геометрическое распределение, используя значения, заданные в векторе:

> x<-c(4, 2, 1, 1, 4, 8, 3, 1, 2, 3, 8, 6, 2, 2, 3)

Вот функция дляMLE:

> log.L<-function(p=0.3){
+ n<-length(x)
+ (sum(x)-n)*log(1-p)+n*log(p)
+ }

А вот звонок:

> library(stats4)
> fir<-mle(log.L)

Однако, когда я звоню, я получаю следующую ошибку:

Error in optim(start, f, method = method, hessian = TRUE, ...) : 
non-finite finite-difference value [1]

Есть идеи?

1 Ответ

0 голосов
/ 17 февраля 2019

Проблема в том, что первым аргументом является

minuslogl - Функция для вычисления отрицательное логарифмическое правдоподобие.

Следовательно, вместо этого нам нужно

log.L <- function(p = 0.3) {
  n <- length(x)
  -((sum(x) - n) * log(1 - p) + n * log(p))
}
mle(log.L)
#
# Call:
# mle(minuslogl = log.L)
#
# Coefficients:
#   p 
# 0.3 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...