视频讲解
何为卡方检验?
Python中使用卡方检测函数的返回值介绍
- n:自由度 n = (行数 - 1)*(列数 - 1)
- p:p值(取0.05),这个p代表原假设成立的概率p越大,成立概率越大
- 临界值:如果算出来的卡方值大于临界值,拒绝原假设;如果小于临界值,则接受原假设。
示例1 2x3列联表
零假设H0: 性别与手机品牌的选择无关
from scipy import statsdata = [[50,50,50], [50,50,50]]chi2, pval, dof, expctd = stats.chi2_contingency(data)# print(sum(data[0]),sum(data[1]))print('卡方统计量:', chi2)print('p值:', pval)print('自由度:', dof)print('期望值:', expctd)# 与显著性水平比较(α = 0.05)if pval < 0.05: print(f"P < 0.05,结果显著,拒绝 H0,两个因素不独立(存在关联),犯错误的概率为{pval:.3e}")else: print(f"P = {pval:.3e} >= 0.05,结果不显著,不拒绝 H0") print("即:没有足够证据表明两个因素相关,可认为相互独立")
结果:
示例2 2x2列联表
from scipy import statsdata = [[62,40], [38,60]]chi2, pval, dof, expctd = stats.chi2_contingency(data)# print(sum(data[0]),sum(data[1]))print('卡方统计量:', chi2)print('p值:', pval)print('自由度:', dof)print('期望值:', expctd)# 与显著性水平比较(α = 0.05)if pval < 0.05: print(f"P < 0.05,结果显著,拒绝 H0,两个因素不独立(存在关联),犯错误的概率为{pval:.3e}")else: print(f"P = {pval:.3e} >= 0.05,结果不显著,不拒绝 H0") print("即:没有足够证据表明两个因素相关,可认为相互独立")
结果:
意义
使用Python代码进行卡方检测独立性检验具有高效便捷的特点,配合判断能够即时了解两个分类变量间的独立性,免去了繁琐的计算步骤。
感谢观看