Сообщение об ошибке, к сожалению, является криминальным, поскольку оно указывает на значения mes из-за того, что альфа и гамма должны быть положительными и mle оптимизируется по действительным числам. Следовательно, вам нужно transfomt вектор, по которому функция оптимизируется, например, так:
library(stats4)
x<-scan("http://www.cmc.edu/pages/faculty/MONeill/Math152/Handouts/gamma-arrivals.txt")
loglike<-function(alpha,beta){
(alpha-1)*sum(log(x))-n*alpha*log(beta)-n*lgamma(alpha)
}
fit <- mle(function(alpha,beta)
# transfrom the parameters so they are positive
loglike(exp(alpha),exp(beta)),
start=list(alpha=log(.5),beta=log(.5)))
# of course you would have to exponentiate the estimates too.
exp(coef(fit1))
отмечают, что ошибка в настоящее время является то, что вы используете n
в loglike()
, которые вы не определены. Если вы определите n, вы получите сообщение об ошибке Lapack routine dgesv: system is exactly singular: U[1,1] = 0
. который составляет , вызванный не очень хорошим догадком для стартового значения альфа и бета или (более вероятно), что loglike()
не имеет минимумов (я думаю, что ваш удаленный пост с прошлой ночи имел несколько другую формулу, в состоянии получить работу, но не в состоянии реагировать на б/с постом был удален ...)
FYI, если вы хотите, чтобы проверить параметры альфа и бета, которые вызывают ошибки, вы можете использовать обзорное назначение для публикации последних названных параметров в среде, в которой loglike()
определяется как:
loglike<-function(alpha,beta){
g <<- c(alpha,beta)
(alpha-1)*sum(log(x))-n*alpha*log(beta)-n*lgamma(alpha)
}
спасибо @MrFlick, я обновил вопрос с данными для работы на – Little
. Вы все еще не указали, с какого пакета вы получаете функцию 'mle'. Плюс переменная 'n' все еще не определена. – MrFlick
извините, мой плохой, теперь он включен – Little