invgamma 包的密度函数是否错误?

Is the density function of the invgamma package wrong?

似乎 invgamma::dinvgamma 给出的值与 Wikipedia's 和其他包都不同。

> shape = 1
> scale = 2
> x = 2
> invgamma::dinvgamma(x, shape = shape, scale = scale)
[1] 0.0973501
> scale ** shape / gamma(shape) * x ** (-shape - 1) * exp(-scale / x) # Wikipedia
[1] 0.1839397
> MCMCpack::dinvgamma(x, shape = shape, scale = scale)
[1] 0.1839397

确实,invgamma:dinvgamma 中的 scale 参数应该被称为 rate

> invgamma::dinvgamma(2, shape = shape, rate = scale)
[1] 0.1839397
  1. 密度函数的帮助说它实现了什么?

    f(x) = rate^shape/Gamma(shape) x^(-1-shape) e^(-rate/x)
    
  2. 它实现了吗?

    嗯,如果我按照你在那里展示的那样做,它似乎按照它说的做。

  3. 应该叫速率参数吧?

    不——因为参数(我们现在称它为 $\theta$)以 $t(x/\theta)$ 的形式出现,显然是一个比例参数 通常意义上的词。

总而言之,从它似乎实现了它所说的实现的意义上说,严格来说,它在计算上是错误的

可以说它误用了常用术语,因为它交换了我说的 "scale" 和 "rate".

的常规含义

我想说这至少令人不安 - 并且可能是使用错误的原因 - 但如果你密切注意他们所说的他们实施的内容,你就不会做出错误的计算。

[两位作者似乎都拥有统计学博士学位;希望人们能更好地了解与比例参数是什么有关的广泛公约,或者至少了解与那些与他们所做的完全相反的术语相关的广泛使用公约的存在(即我希望在帮助中看到一个清晰的 **Warning** 注释,这样那些认为 $x/\theta$ 形式的术语的出现意味着 $\theta$ 是一个比例的人就不会被引导到滥用他们的功能)。不过,我完全没有理由怀疑实施工作的质量。]

最终这里'rate'的意义来自于泊松过程——其中伽马分布为"time to k-th event",'rate parameter'表示过程中事件发生的速率,并以 $\lambda x$(或其倍数)的形式出现在该伽马的密度中。逆伽马作为该伽马的倒数出现(实际上,是第 k 个事件的时间的倒数,一种速度),但速率参数 的含义 没有改变;它仍然是作为 $\lambda x$ 输入的参数。 (我不确定他们是如何翻转其中两个的。毫无疑问,先例是存在的。)