python - Gamma CDF 和逆 CDF 不产生互补值

标签 python numpy statistics scipy

为什么反 Gamma 函数不产生原始 x 值?

代码

x = 0.2
alpha = 2
u = sp.stats.gamma.cdf(x, alpha)
x1 = sp.stats.invgamma.cdf(x, alpha)
print "x: ", x
print "G: ", u
print "GInv:", x1

输出

x:  0.2
G:  0.0175230963064
GInv: 0.0404276819945

当我在 Excel 中执行类似的操作时,我得到相同的值。

=GAMMADIST(Q15,2,1,TRUE)
=GAMMA.INV(Q16,2,1)

输出

0.2
0.017523096
0.2

我知道我只是忽略了一些东西,但我似乎无法弄清楚为什么逆函数对我不起作用。

最佳答案

scipy.stats 中,gammagamma distribution invgammainverse gamma distribution .这是两种不同的概率分布——有关逆 Gamma 与 Gamma 分布的关系,请参阅维基百科文章。

如果您想要 gamma.cdf 的反函数,请使用 gamma.ppf。 (首字母缩略词 ppf 代表 percent point function ,这是 quantile function 的另一个名称。)

例如,

In [7]: p = gamma.cdf([1, 2, 3], 0.5)

In [8]: gamma.ppf(p, 0.5)
Out[8]: array([ 1.,  2.,  3.])

关于python - Gamma CDF 和逆 CDF 不产生互补值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20291594/

相关文章:

python - Eclipse 的 Mercurial 插件找不到 Python——如何修复?

python - 根据长度从字符串中删除最后一位数字

python 抓取提取 onclick 属性

python - 向量化 numpy 的函数,将一个向量的每个元素与另一个向量的每个元素相关联

php - MYSQL Group by weekofyear 停止工作

python - 如何通过行索引和列索引将元素插入到 Numpy 矩阵中

python - Numpy 规范化代码出奇地慢

Python经验分布函数(ecdf)实现

python - 如何分配属于不同人群的不确定性?

php - 我如何收集有关我网站访问者的信息?