等效于 MATLAB 函数 gaminv()

equivalent of MATLAB function gaminv()

我一直在努力寻找与 MATLAB 的 gaminv 函数等效的 R。据我所知,R 中没有 packages/functions 完全符合 `gaminv 的功能。我也不确定如何自己编写代码。任何 guidance/advice 将不胜感激。

您可以尝试从 inverse cumulative function 开始,如果这不是您要找的,我建议您先研究累积反演的整个理论基础,并尝试将其应用到非函数式语言中, 然后将其集成到 R 中,或者简单地阅读原始 MatLab 函数中所写的内容并尝试在 R

中重现

给我们一个 link to the documentation:

会有所帮助

x = gaminv(p,a,b) returns the icdf [inverse cumulative distribution function] of the gamma distribution with shape parameter a and the scale parameter b, evaluated at the values in p.

逆累积分布函数也称为quantile function:这些函数在R中表示为q<distname>。特别地,qgamma是Gamma分布的分位数函数: ?qgamma 中的定义指出

qgamma(p, shape, rate = 1, scale = 1/rate, lower.tail = TRUE, log.p = FALSE)

特别注意,R 函数默认使用速率参数化:如果您指定 qgamma(0.5, shape=2, 2),您将获得速率为 2(比例为 1/2)的函数值。如果你想要比例参数化,你需要 qgamma(0.5, shape=2, scale=2).

我已经使用任意示例确认 gaminv(0.5,2,2)(在 Octave 中,因为我没有 Matlab)给出与 qgamma(0.5,2,scale=2) 相同的答案。