Python

来源:互联网 发布:威锋网 mac office 编辑:程序博客网 时间:2024/06/05 19:37

scipy.stats.chi2_contingency

想对两个或两个以上因子彼此之间是否相互独立做检验时,就要用到卡方检验,原以为在Python中实现会像R的chisq.test一样简便,但scipy的stats模块功能实在分得太细,之前查到的是stats中的chisquare方法,但尝试过后发现chisquare实际上是做适合性检验的。
在Baidu上搜索,几乎没看到真正用Python做独立性检验的讲解,几经辗转,终于在Stack Overflow上找到了Python中的列联表独立性检验,即chi2_contingency

e.g. 三种农药的杀虫数据

杀虫效果 甲 乙 丙 死亡数 37 49 23 未死亡数 150 100 57

分析杀虫效果与农药类型是否有关

import numpy as npfrom scipy.stats import chi2_contingencyd = np.array([[37, 49, 23], [150, 100, 57]])chi2_contingency(d)

输出为:
(7.6919413561281065,
0.021365652322337315,
2,
array([[ 48.99759615, 39.04086538, 20.96153846],
[ 138.00240385, 109.95913462, 59.03846154]]))

第一个值为卡方值,第二个值为P值,第三个值为自由度,第四个为与原数据数组同维度的对应理论值

具体参考文档:scipy.stats.chi2_contingency