本站原创文章,转载请说明来自《老饼讲解-机器学习》www.bbbdata.com
本文讲解卡方检验中的独立性检验,
通过本文可掌握具体的计算方法和检验原理。
问题
我们知道事件发生的有n种可能 。
A组 和 B组在 上的分布现在表现出来的,
分别是 、
我们想知道A组与B组的分布有没有区别。
卡方检验思路
1.假设没区别,算出期望值
卡方检验先假设A组与B组没有区别,在这假设下,算出A组与B组的期望值。
2.计算期望值与事实值差异的概率
计算事实值与期望值的差异(该差异构造成服从卡方分布),进一步计算出差异值出现的概率,
3.根据概率,确定假设成不成立
根据概率,从而确定,假设合不合理,如果假设不合理,则说明A组与B组有区别。
这里从使用一个实例,感受卡方独立性检验是个什么东西,怎么检验的。
问题
男女两组身高分布如下
现问性别对身高有没有影响
计算过程
(一) 先行列汇总
(二) 计算期望表
期望表的计算方法有两种
算法一:公式计算
使用公式 计算期望表, 可直接得到结果:
即
算法二:按占比计算
假设没有影响,则0、1、2组的身高占比应为:
则男组的期望应为:18*[22.86%, 57.14%,20%]
女组的期望应为:17*[22.86%, 57.14%,20%]
即得到:
(三) 计算卡方值
根据公式计算卡方值,如下:
卡方值是事实与期望差异的度量
(四) 计算p值
1.计算自由度
根据公式计算自由度
2.计算p值
由 服从自由度为 2 的卡方分布,
即可知
其中, 是自由度为2的卡方累积分布函数。
👉说明:通常不能直接显式计算,通过查表或计算机程序获得。
-------------------------------------------------------------------
python计算 ,自由度 的p值,
可如下计算:
>> 1-scipy.stats.chi2.cdf(df=2, x=2.26)
即可得到:0.17728440996987782
问题回顾
我们知道事件发生的有n种可能 。
A组 和 B组在 上的分布分别为 、
我们想知道A组与B组的分布有没有区别。
(一) 期望值
如果A组、B组没有区别,则它们在 上的分布的期望应与总体保持一致。
总体的分布占比:
A组的期望值:
B组的期望值:
其中,
为A组的总发生次数:
为B组的总发生次数:
为总发生次数:
(二)事实与期望值的差异
A组或B组的每一个事实值Ai(ai和bi)都与期望值有所差异,
我们可以用 来量化这个差异。
总差异则为:
(三) 差异发生的概率
由于 是随机变量,
所以 也是随机变量,则D也是一个随机变量.
假设每个 都服从标准正态分布时,
则D服从自由度为k的卡方分布,其中自由度 为 (取值可能n -1)*(组数-1),
即
即可知 的概率为 ,
其中, 是自由度为k的卡分累积分布函数。
即可得到在A组、B组没区别的条件下,差异发生的概率,
根据概率值,拒绝或接受假设。
1.事实表
一般是以以下的表格格式:
称为事实表 A.
现在判断 组1与组1 有没有区别
2、计算期望表
期望表 E 的计算公式为:
3.计算卡方值
卡方值计算公式为:
4. 计算自由度与p值
(1) p值计算公式
其中 为自由度为 的卡方累积分布函数
(2) 自由度计算公式
其中 r为表格的行数, c 为表格列数。
(3) python计算p值的方法
python计算 ,自由度 的p值,可如下计算:
1-scipy.stats.chi2.cdf(df=2, x=2.26)
即可得到:0.17728440996987782
参考文章
https://blog.csdn.net/ludan_xia/article/details/81737669
https://blog.csdn.net/anshuai_aw1/article/details/82735201
https://www.jianshu.com/p/fcfac399de13
End