Python中的独立性卡方检验

7

在使用Python 2.6.5、NumPy和SciPy的Ubuntu 10.04.4下,能否进行卡方独立性检验?在R中,可以使用以下方法实现

> row1 = c(91,90,51)
> row2 = c(150,200,155)
> row3 = c(109,198,172)
> data.table = rbind(row1,row2,row3)
> chisq.test(data.table)

如何在Python中实现这个功能?


2
@larsmans:不,我认为这不是重复的。这是一个不同的测试,使用chi2_contingency。那个问题使用观察值和期望值。 - SabreWolfy
1
请注意,这不是重复的,正如我在上面的注释中指出的那样,因为涉及不同的卡方检验。 - SabreWolfy
2
这个问题被错误地标记为重复。 - VividD
1个回答

7
from scipy.stats import chi2_contingency

row1 = [91,90,51]
row2 = [150,200,155]
row3 = [109,198,172]
data=[row1,row2,row3]
print chi2_contingency(data)

输出:

(25.085973274234959, 4.8346447416999636e-05, 4, array([[  66.77631579,   93.10526316,   72.11842105],
       [ 145.35361842,  202.66447368,  156.98190789],
       [ 137.87006579,  192.23026316,  148.89967105]]))

R 输出:

        Pearson's Chi-squared test

data:  data.table 
X-squared = 25.086, df = 4, p-value = 4.835e-05

在Ubuntu 10.04.4中,SciPy没有chi2_contingency。但是,在Kubuntu 13.10中使用import scipy.stats可以工作。然而,以chi2开头的那一行不起作用。 - SabreWolfy
你使用的scipy版本是多少?我的是“0.10.1”。 - VIKASH JAISWAL
1
Ubuntu 10.04已经过时了,而SciPy的开发进展非常迅速。 - Fred Foo
@larsmans:是的,我发现在Ubuntu 10.04.4上无法做到这一点。 - SabreWolfy
@VIKASHJAISWAL:在Ubuntu 10.04.4下是0.7左右,在Kubuntu 13.10下是0.12.0。 - SabreWolfy
1
是的,在0.7版本中我没有看到chi2_contingency函数,你可以在这里查看文档:http://docs.scipy.org/doc/scipy-0.7.x/reference/stats.html - VIKASH JAISWAL

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接