卡方校验
卡方检验属于非参数检验的范畴,用于统计样本的实际观测值与理论推断值之间的偏离程度,实际观测值与理论推断值之间的偏离程度就决定卡方值的大小。如果卡方值越大,二者偏差程度越大;反之,二者偏差越小;若两个值完全相等时,卡方值就为0,表明理论值完全符合。
特别注意:
- 卡方检验仅针对分类变量。
- 用于计算列联表的观察是独立的。
- 列联表的每个单元格中至少有25个实例。
- 检验原假设:观察频数与期望频数无显著差异
用Python实现卡方校验
- 借助第三方库: scipy
使用前需安装scipy(Anaconda 已默认安装):pip install numpy pip install scipy
-
卡方校验的实现需要借助scipy中的chi2_contingency模块
使用需前导入:
Python命令:chi2_contingency(data)from scipy.stats import chi2_contingency
举例:三种药物的治疗数据
image.pngPython代码实现:
import numpy as np
from scipy.stats import chi2_contingency
data = np.array([[38, 49, 25], [150, 98, 57]])
kf = chi2_contingency(data)
print('chisq-statistic=%.4f, p-value=%.4f, df=%i expected_frep=%s'%kf)
输出结果:
chisq-statistic=7.9136, p-value=0.0191, df=2 expected_frep=[[ 50.4940048 39.48201439 22.02398082]
[137.5059952 107.51798561 59.97601918]]
第一个值为卡方值,第二个值为P值,第三个值为自由度,第四个为与原数据数组同维度的对应理论值
网友评论