Мне нужно найти оценку максимального правдоподобия для вектора биномиальных данных.
один такой:
binvec <- rbinom(1000, 1, 0.5)
Я попытался сначала создать функцию, а затем оптимизировать ее с помощью optim()
.
llbinom <- function(theta, x) {return(sum(dbinom(x=x,
size = theta[1],
prob = theta[2],log=TRUE)))}
mybin <- optim(c(0.5,0.5),fn=llbinom,x=binvec)
mybin
Я получаю некоторый результат, но также и сообщения об ошибках, которые выдаются NaN
s, и функция не может быть оценена по начальным параметрам.Я построил его на примере, который работает с нормально распределенными данными, и считаю, что допустил ошибку при преобразовании.
Вот исходный код, который я получил:
ll <- function(theta,x) {return(-sum(dnorm(x=x,
mean=theta[1],sd=theta[2],log=TRUE)))}
mle <- optim(c(5,3),fn=ll,x=binvec)