一、引言
卡方检验是用于检验两种变量之间是否存在关联的一种统计方法。它可以判断两个变量之间的关系是否是随机的。卡方检验在很多领域都有着广泛的应用,如医学、社会科学、经济学和生物学等领域。在Python中,使用scipy库中的stats模块就可以很方便地实现卡方检验。
二、原理
卡方检验用于检验两个分类变量之间是否存在关联。其原理在于,假设两个变量之间没有关联,则预期的频数可以通过行总计与列总计的比例来计算。如果观测值与预期值有较大的偏差,则可以认为两个变量之间存在关联。卡方检验的计算公式如下:
def chi_square(observed, expected): return np.sum(np.power(observed - expected, 2) / expected)
其中,observed为实际观测频数,expected为预期频数。
三、实现
1. 导入依赖库
import numpy as np from scipy.stats import chi2_contingency
导入一个numpy库作为计算的基础,以及调用scipy.stats库下的卡方检验函数。
2. 使用numpy生成模拟数据
data = np.array([[10, 20, 30], [20, 30, 40], [30, 40, 50]])
这里使用numpy生成了一个3 x 3的矩阵,每个元素代表两个分类变量之间的观测频数。
3. 计算卡方检验结果
stat, p, dof, expected = chi2_contingency(data) print('stat=%.3f, p=%.3f, dof=%d' % (stat, p, dof)) print(expected)
chi2_contingency函数将生成的数据传递到API中进行计算。计算结果中,在截尾的情况下,p值越小,说明两个变量之间越有可能存在关联。在这里也打印输出了期望频数。
4. 结语
上述就是Python中通过scipy库实现卡方检验的方法。卡方检验是一种非常重要的统计方法,在分析数据时经常用到,也非常基础。了解和掌握此方法对数据分析师和数据科学家都是非常有帮助的。