2

我想用 Python 翻译以下 Matlab 代码:

 tau=40 %scale parameter
 a=3 %shape parameter
 t = gaminv(0.90,a,tau);

代码返回 t = 212.8928。我试过了:

 import scipy.stats.distributions as dist
 tau=40
 a=3
 t = dist.invgamma.cdf(90, a, scale = tau)

但 python 代码不返回相同的 t 值。难道我做错了什么?

4

1 回答 1

6

您需要ppf("percent point function",这是 CDF 或分位数函数的倒数的一个不太常见的名称) 方法scipy.stats.gamma

In [27]: from scipy.stats import gamma

In [28]: gamma.ppf(0.9, 3, scale=40)
Out[28]: 212.8928135133684

另请参阅如何在 python 中计算正态累积分布函数的倒数?; 那里的分布不同,但基本上是同一个问题。

invgamma是不同的分布。

于 2016-06-13T16:40:56.467 回答