Python中qnorm、qf和qchi2的等价函数

36 投票
2 回答
43008 浏览
提问于 2025-04-18 12:55

我需要在Python中计算一些分布的分位数。在R语言中,可以使用qf、qnorm和qchi2这几个函数来计算这些值。

在Python中有没有和这些R函数相对应的功能呢?我在scipy库里找过,但没有找到相关的内容。

2 个回答

57

在Python中,跟R语言里的 pnorm() 函数相对应的函数是 scipy.stats.norm.cdf()

而跟R语言里的 qnorm() 函数相对应的函数是 scipy.stats.norm.ppf()

36

你可以在 scipy.stats 中找到概率分布。每种分布都有一套函数,比如如果你去 norm 分布的页面,往下滚动,你会看到一些方法,包括

ppf(q, loc=0, scale=1)  # Percent point function (inverse of cdf — percentiles)

这就是 scipy 所称的百分位点函数,它的功能和 R 中的 q 函数是一样的。

举个例子:

>>> from scipy.stats import norm
>>> norm.ppf(.5)  # half of the mass is before zero
0.0

其他分布也有类似的接口,比如 chi^2

>>> from scipy.stats import chi2
>>> chi2.ppf(.8, df=2) # two degress of freedom
3.2188758248682015

撰写回答