R中的digamma函数的根

时间:2017-02-12 20:24:48

标签: r statistics numerical-methods mle gamma-function

我正在研究最大似然估计,其中一个参数是使用digamma函数估算的。我试图使用uniroot来解决方程式,但我无法这样做。这是我的代码:

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?)可能会有所帮助。不确定我在这里缺少什么 - 任何提示都将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:1)

考虑以下

curve(dig, from = 0.01, to = 10)
uniroot(dig, lower = 0.01, upper = 10)

enter image description here

  

uniroot(dig, lower = 0.01, upper = 10)中的错误:     f()值不是符号相反的终点