什么是[Sci/Num] Python相当于Matlabs"norminv"(正常逆累积分布函数)

JC_*_*_CL 7 python statistics matlab numpy scipy

我norminv在Matlab中搜索python等效的函数.

或者换句话说(来自上面的描述):我在python中搜索"正常逆累积分布函数",或者可能在scipy的统计部分中搜索(或者可能是numpy?)

我猜它存在于scipy中,但可能是在matlab中的另一个名称,或者在matlabs帮助页面中.但是我不确定这个函数的其他名称或确切的工作方式,所以我很难找到它.不幸的是,它不仅仅是"反向正常积极......"而不是"正常反积累......"

The*_*Cat 2

这完全取决于你想要什么。如果您想要一个cdf与正态分布相反的分布,您需要invgauss“逆高斯连续随机变量”。要获得cdf,您需要使用该invgauss.cdf方法。改编自文档:

\n\n
from scipy.stats import invgauss\nmu = 0.145462645553\nvals = invgauss.ppf([0.001, 0.5, 0.999], mu)\nres = invgauss.cdf(vals, mu)\n
Run Code Online (Sandbox Code Playgroud)\n\n

另一方面,如果您想要cdf正态分布的反函数,则需要ppf分布方法norm,即“百分比点函数(cdf \xe2\x80\x94 百分位数的反函数)”。

\n

  • 好的。为什么这一定是不正确的:正态累积分布函数的反函数是在区间“[0,1]”上定义的函数,而所谓的*逆高斯分布*的分布函数支持“(0,Inf )` 如维基百科上所列。这意味着正如我所怀疑的那样,这肯定是两个不同的东西。OP 希望在我链接为重复的问题中使用函数“norm.ppf”。 (2认同)
  • 好吧,假设八度中的“norminv”确实与 matlab 中的“norminv”相同(Octaves 文档很短,而且我不擅长统计),Python 等效项似乎确实是“scipy.stats”中的“norm.ppf” : Octave-`octave:9>norminv(0.9) ans = 1.2816octave:10>norminv(0.5) ans = 0` Python-`In [35]: stats.norm.ppf(0.9) Out[35]: 1.2815515655446004 In [36]: stats.norm.ppf(0.5) 输出[36]: 0.0 ` (2认同)