Skip to main content
 首页 » 编程设计

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

2025年05月04日14langtianya

为什么反 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 中,gamma 是 gamma distribution invgamma 是 inverse 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.])