为什么反伽马函数不能产生原始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
我知道我只是忽略了一些东西,但我似乎无法弄清楚为什么反转不适合我。
答案 0 :(得分:8)
在scipy.stats
中,gamma
是gamma distribution,invgamma
是inverse gamma distribution。这是两种不同的概率分布 - 请参阅维基百科文章,了解反伽玛与伽马分布的关系。
如果您想要gamma.cdf
的倒数,请使用gamma.ppf
。例如,
In [7]: p = gamma.cdf([1, 2, 3], 0.5)
In [8]: gamma.ppf(p, 0.5)
Out[8]: array([ 1., 2., 3.])