我想在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值。我做错了吗?
答案 0 :(得分:5)
你想要ppf
的{{1}}("百分点函数",这是CDF或分位数函数的反转的一个不常见的名称)方法:
In [27]: from scipy.stats import gamma
In [28]: gamma.ppf(0.9, 3, scale=40)
Out[28]: 212.8928135133684
另见scipy.stats.gamma
;那里的分布不同,但基本上是同一个问题。
How to calculate the inverse of the normal cumulative distribution function in python?是一个不同的发行版。