使用log.p参数在Python中使用qchisq?

时间:2017-11-30 13:58:38

标签: python r chi-squared

非统计学家在这里试图用Python复制一些代码。

R具有qchisq功能。

qchisq(c(0.5, 0.1, 0.99), df=1, lower.tail=F)
# [1] 0.4549364231 2.7055434541 0.0001570879

它可以像Python一样在Python中复制:

from scipy.special import chdtri
import pandas as pd
chdtri(1, pd.Series([0.5, 0.1, 0.99]))
# Out[57]:
# 0    0.454936
# 1    2.705543
# 2    0.000157

然而,Rs qchisq也可以有log.p标志,这可以让我这样做:

qchisq(-c(0.5, 0.1, 0.99) * log(10), df=1, lower.tail=F, log.p=T)
# [1] 1.00448472 0.06796154 2.66885996

我无法在Python中找到任何方法。我如何实现同样的目标?

1 个答案:

答案 0 :(得分:2)

在没有在R中设置参数的情况下尝试重新设置log.p的效果可能很有用:

qchisq(.5, 1, lower.tail = FALSE)
# 0.4549364
qchisq(-.5, 1, lower.tail = FALSE, log.p = TRUE)
# 0.265258
qchisq(exp(-.5), 1, lower.tail = FALSE)
# 0.265258

对于具有log(10)的部分:

qchisq(exp(-c(0.5, 0.1, 0.99)*log(10)), df=1, lower.tail=F)
# [1] 1.00448472 0.06796154 2.66885996

似乎是qchisq(exp(x)) == qchisq(x, log.p = TRUE)