前言
上一篇博客是相关分析中的皮尔逊相关系数,具体可见链接:https://blog.csdn.net/Totoro1745/article/details/114748542?spm=1001.2014.3001.5502
卡方检验
皮尔逊相关系数用于两个连续性变量,当变量为两个无序分类变量时就需要用卡方检验。它是一种基于卡方分布的假设检验方法,根本思想就是在于比较理论频数和实际频数的吻合程度或拟合优度问题。主要应用于分类变量,根据样本数据推断总体分布与期望分布是否有显著差异或推断两个分类变量是否相关或相互独立。
卡方检验分为拟合度的卡方检验和卡方独立性检验,这里仅使用卡方独立性检验。
1.卡方检验步骤
- 设置原假设与备择假设
- 设置显著性水平
- 根据问题选择具体的假设检验方式
- 计算统计量,并通过统计量获取P值
- 根据P值与显著性水平,决定接受原假设还是备择假设
2.Python实现
第一步我们先设立原假设:x因素与y因素无关
第二步设置显著性水平α=0.05, 若p值<0.05则拒绝原假设
import pandas as pd
import numpy as np
from scipy import stats
data = pd.read_csv('data.csv')
# 如果数据已经是列联表的数据,可直接
observed = data[['x','y']]
print(stats.chi2_contingency(observed=observed)) # 输出卡方值,P值,自由度
# 若数据为源数据,需要处理成列联表形式
contingency_table = pd.crosstab(data['x'], data['y'], margins=True)
# x有两个值,y有3个值
f_obs = np.array([contingency_table.iloc[0][0:3].values,
contingency_table.iloc[1][0:3].values])
print(stats.chi2_contingency(f_obs)[0:3])
参考资料:
https://zhuanlan.zhihu.com/p/128905132
https://zhuanlan.zhihu.com/p/56423752