卡方检验用于判断两个分类变量是否相关,Python中可用scipy.stats.chi2_contingency进行独立性检验。首先构建列联表,如性别与喜好数据[[20,10],[15,25]],调用chi2_contingency返回卡方值、P值、自由度和期望频数。若P

卡方检验(Chi-Square Test)是一种统计方法,用于判断两个分类变量之间是否存在显著关联。在Python中,我们通常使用 scipy.stats 或 statsmodels 等库来实现卡方检验。
卡方检验的用途
它主要用于以下两种情况:
- 独立性检验:检验两个分类变量是否相互独立。比如:性别和是否喜欢某产品之间有没有关系?
- 拟合优度检验:检验观测频数是否符合某种理论分布。比如:掷骰子60次,每个点数出现次数是否均匀?
Python中如何做卡方检验
常用的是 scipy.stats.chi2_contingency() 函数,适用于独立性检验。
步骤如下:
立即学习“Python免费学习笔记(深入)”;
- 准备一个列联表(Contingency Table),也就是交叉频数表。
- 传入 chi2_contingency() 函数。
- 查看返回的卡方值、P值等结果。
示例代码:
import numpy as np from scipy.stats import chi2_contingency构造列联表:比如性别 vs 喜欢与否
data = np.array([[20, 10], # 男性:喜欢20人,不喜欢10人 [15, 25]]) # 女性:喜欢15人,不喜欢25人
chi2, p, dof, expected = chi2_contingency(data)
print(f"卡方值: {chi2}") print(f"P值: {p}") print(f"自由度: {dof}") print(f"期望频数表:\n{expected}")
如果P值小于0.05,通常认为两个变量之间有显著关联;否则认为无显著关系。
注意事项
- 数据应为频数(计数),不能是比率或百分比。
- 每个单元格的期望频数一般建议大于5,否则结果可能不可靠。若不满足,可考虑使用Fisher精确检验。
- 卡方检验只能说明是否有关联,不能衡量关联强度。
基本上就这些。用Python做卡方检验不复杂,关键是理解数据结构和结果含义。











