卡方检验
卡方检验的定义
卡房检验可以来检验两个因素的关联性,但是不能直接表示出关联的强弱,常见的2x2卡方和列联表组合。
卡方检验是一种非参数检验方法。 相对来说,非参数检验对数据分布的要求比较宽松,并且也不要求太大数据量。 卡方检验是一种对计数资料的假设检验方法,主要是比较理论频数和实际频数的吻合程度。 常用于特征选择,比如,检验男人和女人在是否患有高血压上有无区别,如果有区别,则说明性别与是否患有高血压有关, 在后续分析时就需要把性别这个分类变量放入模型训练。
基本数据有R行C列, 故通称RC列联表(contingency table), 简称RC表, 它是观测数据按两个或更多属性(定性变量)分类时所列出的频数表。
卡方检验的误区
- 样本量大于40
- 样本的期望频数小5的比例少于20%
python卡房检验的使用
杀虫效果 | 甲 | 乙 | 丙 |
---|---|---|---|
死亡数 | 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值,第三个值为自由度,第四个为与原数据数组同维度的对应理论值
对于RC链表可以参考如下的方法