scipy 有没有一个python等价于R的qchisq函数?

gzszwxb4  于 2023-01-26  发布在  Python
关注(0)|答案(3)|浏览(217)

R qchisq函数将p值和自由度转换为相应的卡方值,Python库中是否有等价的函数?
我在Scipy到处找了找什么都没找到。

dba5bblo

dba5bblo1#

它是scipy.stats.chi2.ppf-百分点函数(cdf的倒数)。例如,在R中:

> qchisq(0.05,5)
[1] 1.145476

在Python中:

In [8]: scipy.stats.chi2.ppf(0.05, 5)
Out[8]: 1.1454762260617695
jv2fixgn

jv2fixgn2#

正如@VadimKhotilovich在他的回答中指出的,你可以使用scipy.stats.chi2.ppf,也可以使用scipy.special中的函数chdtri,但是使用1-p作为参数。
R:

> qchisq(0.01, 7)
[1] 1.239042
> qchisq(0.05, 7)
[1] 2.16735

手术:

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

scipy.stats.chi2.ppf相比,使用chdtri的唯一优点是它要快得多:

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
laawzig2

laawzig23#

也在***R***
qchisq(0.05、9、下限。尾部=假
在**Python**中,应该是
(q= 0.95,df = 9)
#q =(1-0.05)

相关问题