Python - 列联表的独立性检验(卡方检验)
想对两个或两个以上因子彼此之间是否相互独立做检验时,就要用到卡方检验,原以为在Python中实现会像R的chisq.test一样简便,但scipy的stats模块功能实在分得太细,之前查到的是stats中的chisquare方法,但尝试过后发现chisquare实际上是做适合性检验的。
e.g. 三种农药的杀虫数据
杀虫效果 | 甲 | 乙 | 丙 |
---|---|---|---|
死亡数 | 37 | 49 | 23 |
未死亡数 | 150 | 100 | 57 |
分析杀虫效果与农药类型是否有关
import numpy as np
from scipy.stats import chi2_contingency
d = 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
来源:oschina
链接:https://my.oschina.net/u/4326647/blog/3606995