Я работаю над оценкой максимального правдоподобия, и один из параметров оценивается с использованием функции digamma. Я пытаюсь использовать uniroot для решения уравнения, но не могу этого сделать. Вот мой код:Корни функции digamma в R
dig = function(alpha){
digamma(2 + alpha) - digamma(alpha) - (1/(2+alpha)) + (2/(2+alpha))
}
curve(dig, from = 0, to = 10)
uniroot(dig, lower = 0, upper = 10)
Это производит следующее сообщение об ошибке:
Error in uniroot(dig, lower = 0, upper = 10) : f.lower = f(lower) is NA
In addition: Warning messages:
1: In digamma(alpha) : NaNs produced
2: In digamma(alpha) : NaNs produced
Первая ошибка рода имеет смысл, основанный на кривой, а второй имеет меня в тупик. Вполне возможно, что я не понимаю, как найти корни функции digamma, или что в R есть числовой пакет (возможно, rootolve?), Который может помочь. Не уверен, что мне здесь не хватает - любые советы будут оценены. Благодаря!
'гамма (0)' не определен. – MichaelChirico
... а также ваш 'dig (0)' возвращает 'NaN'. Из кривой ясно, что в интервале (0,10) нет никакого корня, поэтому не поймите, почему вы используете 'uniroot'. – nicola