R语言的qchisq
函数可以将p值和自由度转换为相应的卡方值。是否有Python库具有相同功能?
我已在SciPy中查找,但未找到相应的函数。
R语言的qchisq
函数可以将p值和自由度转换为相应的卡方值。是否有Python库具有相同功能?
我已在SciPy中查找,但未找到相应的函数。
这是 scipy.stats.chi2.ppf
- 百分点函数(累积分布函数的反函数)。
例如,在R中:
> qchisq(0.05,5)
[1] 1.145476
在 Python 中:
In [8]: scipy.stats.chi2.ppf(0.05, 5)
Out[8]: 1.1454762260617695
> qchisq(0.01, 7)
[1] 1.239042
> qchisq(0.05, 7)
[1] 2.16735
scipy:
In [16]: from scipy.special import chdtri
In [17]: chdtri(7, 1 - 0.01)
Out[17]: 1.2390423055679316
In [18]: chdtri(7, 1 - 0.05)
Out[18]: 2.1673499092980579
使用chdtri
而不是scipy.stats.chi2.ppf
的唯一优势在于它更快:
In [30]: from scipy.stats import chi2
In [31]: %timeit chi2.ppf(0.05, 7)
10000 loops, best of 3: 135 us per loop
In [32]: %timeit chdtri(7, 1 - 0.05)
100000 loops, best of 3: 3.67 us per loop
同样在R中
qchisq(0.05, 9, lower.tail=FALSE)
在Python中则为
chi2.ppf(q= 0.95, df = 9) #q = (1-0.05)