老饼讲解-机器学习 机器学习 神经网络 深度学习
评分卡
1.评分卡开篇必读
2.评分卡实例
3.变量分析与分箱
4.评分卡上线

【附件】卡方检验-独立性检验

作者 : 老饼 发表日期 : 2022-11-21 02:13:49 更新日期 : 2022-11-21 02:14:17
本站原创文章,转载请说明来自《老饼讲解-机器学习》www.bbbdata.com


本文讲解卡方检验中的独立性检验,

通过本文可掌握具体的计算方法和检验原理。



    01. 问题与思路    


   问题   


我们知道事件发生的有n种可能   。
A组 和 B组在   上的分布现在表现出来的,
分别是  、  
我们想知道A组与B组的分布有没有区别。



   卡方检验思路   


1.假设没区别,算出期望值         
 
卡方检验先假设A组与B组没有区别,在这假设下,算出A组与B组的期望值。
  
 2.计算期望值与事实值差异的概率
 
计算事实值与期望值的差异(该差异构造成服从卡方分布),进一步计算出差异值出现的概率,

 3.根据概率,确定假设成不成立   
 
根据概率,从而确定,假设合不合理,如果假设不合理,则说明A组与B组有区别。



    02. 计算实例    


这里从使用一个实例,感受卡方独立性检验是个什么东西,怎么检验的。


   问题   


男女两组身高分布如下

 

现问性别对身高有没有影响 



      计算过程    


(一) 先行列汇总
 

 
(二) 计算期望表

期望表的计算方法有两种

 算法一:公式计算

 
使用公式   计算期望表, 可直接得到结果:

 



 

 算法二:按占比计算
 
假设没有影响,则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




   03. 理论与公式推导    



   问题回顾   


我们知道事件发生的有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组没区别的条件下,差异发生的概率,
根据概率值,拒绝或接受假设。




     04. 计算步骤与公式总结    


    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 









联系老饼