相当于Matlab在python中的gaminv

use*_*251 1 python matlab gamma-distribution scipy

我想在Python中翻译以下Matlab代码:

 tau=40 %scale parameter
 a=3 %shape parameter
 t = gaminv(0.90,a,tau);
Run Code Online (Sandbox Code Playgroud)

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

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

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

War*_*ser 5

你想要ppf("百分点函数",这是一个不太常见的CDF或分位数函数的反转名称)方法scipy.stats.gamma:

In [27]: from scipy.stats import gamma

In [28]: gamma.ppf(0.9, 3, scale=40)
Out[28]: 212.8928135133684
Run Code Online (Sandbox Code Playgroud)

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

invgamma 是一个不同的分布.