简介:程序员眼中的统计学系列是作者和团队共同学习笔记的整理。首先提到统计学,很多人认为是经济学或者数学的专利,与计算机并没有交集。诚然在传统学科中,其在以上学科发挥作用很大。然而随着科学技术的发展和机器智能的普及,统计学在机器智能中的作用越来越重要。本系列统计学的学习基于《深入浅出统计学》一书(偏向代码实现,需要读者有一定基础,可以参见后面PPT学习)。正如(吴军)先生在《数学之美》一书中阐述的,基于统计和数学模型对机器智能发挥重大的作用。诸如:语音识别、词性分析、机器翻译等世界级的难题也是从统计中找到开启成功之门钥匙的。尤其是在自然语言处理方面更显得重要,因此,对统计和数学建模的学习是尤为重要的。最后感谢团队所有人的参与。( 本文原创,转载注明出处:卡方分布的应用 )

卡方分布的应用

作者 白宁超

2015年8月9日22:33:00

摘要:程序员眼中的统计学系列是作者和团队共同学习笔记的整理。首先提到统计学,很多人认为是经济学或者数学的专利,与计算机并没有交集。诚然在传统学科中,其在以上学科发挥作用很大。然而随着科学技术的发展和机器智能的普及,统计学在机器智能中的作用越来越重要。本系列统计学的学习基于《深入浅出统计学》一书偏向代码实现,需要读者有一定基础,可以参见后面PPT学习)。正如(吴军)先生在《数学之美》一书中阐述的于统计和数学模型对机器智能发挥重大的作用。诸如:语音识别、词性分析、机器翻译等世界级的难题也是从统计中找到开启成功之门钥匙的。尤其是在自然语言处理方面更显得重要,因此,对统计和数学建模的学习是尤为重要的。最后感谢团队所有人的参与。( 本文原创,转载注明出处卡方分布的应用  )

 目录


【程序员眼中的统计学(1)】 信息图形化:第一印象

【程序员眼中的统计学(2)】集中趋势度量:分散性、变异性、强大的距

【程序员眼中的统计学(3)】概率计算:把握机会

【程序员眼中的统计学(4)】离散概率分布的运用:善用期望

【程序员眼中的统计学(5)】排列组合:排序、排位、排

【程序员眼中的统计学(6)】几何分布、二项分布及泊松分布:坚持离散

【程序员眼中的统计学(7)】正态分布的运用:正态之美

【程序员眼中的统计学(8)】统计抽样的运用:抽取样本

【程序员眼中的统计学(9)】总体和样本的估计:进行预测

【程序员眼中的统计学(10)】假设检验的运用:研究证据

【程序员眼中的统计学(11)】卡方分布的应用

【程序员眼中的统计学(12)】相关与回归:我的线条如何?

1 题引和基本知识介绍


1 什么是卡方分布?

  若n个相互独立的随机变量ξ₁、ξ₂、……、ξn ,均服从标准正态分布(也称独立同分布于标准正态分布),则这n个服从标准正态分布的随机变量的平方和$$Q=\sum_{i=1}^{n}ξ_i^2$$构成一新的随机变量,其卡方分布规律称为x^2,分布(chi-square distribution),其中参数n称为自由度,正如正态分布中均值或方差不同就是另一个$x^2$正态分布一样,自由度不同就是另一个分布。记为 Q~x^2(k). 卡方分布是由正态分布构造而成的一个新的分布,当自由度n很大时,X^2分布近似为正态分布。 对于任意正整数k, 自由度为 k的卡方分布是一个随机变量X的机率分布。

2 为什么要引用卡方分布?

  以特定概率分布为某种情况建模时,事物长期结果较为稳定,能够清晰进行把握。但是期望与事实存在差异怎么办?偏差是正常的小幅度波动?还是建模错误?此时,利用卡方分布分析结果,排除可疑结果。【事实与期望不符合情况下使用卡方分布进行检验】

3 生活中又怎样的事例(抽奖机之谜)会出现这种现象呢?

  抽奖机,肯定都不陌生,现在一些商场超市门口都有放置。正常情况下出奖概率是一定的,基本商家收益。倘若突然某段时间内总是出奖,甚是反常,那么到底是某阶段是小概率事件还是有人进行操作了?抽奖机怎么了?针对这种现象或者类似这种现象问题则可以借助卡方进行检验,暂且不着急如何检验,还是补充一下基础知识,再逐步深入解决问题。【常规事件中出现非常规现象,如何检查问题所在的情况下使用卡方分布】

4 问题描述:抽奖机之谜?

问题一:卡方检验拟合优度案例

下面是某台抽奖机的期望分布,其中X代表每局游戏的净收益(每局独立事件):

  

实际中人们收益的频数为:


  


在5%的显著性水平下,看看能否有足够证据证明判定抽奖机被人动了手脚。

1、算出每个x值的实际频率与根据概率分布得出的期望频率进行比较?

2、利用抽奖机的观察频率和期望频率表计算检验统计量?


3、要检验的原假设是什么?备择假设是什么?


4、自由度为4且5%水平的拒绝域是多少?


5、检验统计量是多少?


6、检验统计量是在拒绝域以内还是拒绝域以外?


7、你将接受还是拒绝原假设?

问题二:卡方检验独立性案例

下表显示各位庄家的观察频数,

      


以1%的显著性水平进行假设检验,看看赌局结果是否独立于坐庄庄家。

1、你是任务是算出所有期望频数。

2、根据上面所求期望频数,计算检验统计量X^2.


3、确定要进行检验的假设以及备择假设。


4、求出期望频率和自由度?


5、确定用于做决策的拒绝域。


6、计算检验统计量X^2


7、看看检验统计量是否位于拒绝域内。


8、作出决策。

2 卡方检验拟合优度(问题一)


 

 问题简述:抽奖机平常收益者总是商家,突然一段时间总是出奖。本来小概率事件频发,我们利用卡方的检验拟合优度看看能否有足够证据证明判定抽奖机被人动了手脚

1 知识储备:期望频数计算

期望频数=(观察频数之和(1000)) X (每种结果的概率) 如:X=(-2)的期望频数:977=(0.977)X(1000)

利用卡方假设检验观察频数和期望频数之间的差别。

  • 1、算出每个x值的实际频率与根据概率分布得出的期望频率进行比较?

    解答:


        

2 知识储备:卡方检验评估差异

卡方分布:通过一个检验统计量来比较期望结果实际结果之间的差别,然后得出观察频数极值的发生概率。

计算统计量步骤: (期望频数总和与观察频数总和相等)


  1、表里填写相应的观察频数和期望频数


  2、利用卡方公式计算检验统计量:(O代表观察期望,E代表期望频数)


  $$ x^2=\sum_{}^{}\frac{(O-E)^2}{E} $$


  注释: 其中x^2表示检验统计量,O表示观察频数,E代表期望频数。


  即:对于概率分布的每一个概率,取期望频数和实际频数的差,求差的平方数,再除以期望频数,然后将所有结果相加。


检验统计量意义:O与E之间差值越小,检验统计量越小。以E为除数,令差值与期望频数成比例。


卡方检验的标准:如果统计量值(X^2)很小,说明观察频数和期望频数之间的差别不显著,统计量越大,差别越显著。

  • 2、利用抽奖机的观察频率和期望频率表计算检验统计量?

    解答:


        

3 知识储备:卡方假设检验

卡方分布的用途:检查实际结果与期望结果之间何时存在显著差异。

  1、检验拟合优度:也就是说可以检验一组给定数据与指定分布的吻合程度。如:用它检验抽奖机收益的观察频数与我们所期望的吻合程度。


  2、检验两个变量的独立性:通过这个方法检查变量之间是否存在某种关系。


自由度V:用于计算检验统计量的独立变量的数目。


  1、自由度希腊字母V,读作“纽”,v影响概率分布


  2、当v等于1或者2时:卡方分布先高后低的平滑曲线,检验统计量等于较小值的概率远远大于较大值的概率,即观察频数有可能接近期望频数。图形:


    


  3、当v大于2时:卡方分布先低后高再低,其外形沿着正向扭曲,但当v很大时,图形接近正态分布。图形:


     


  4、特定参数v(缪)的卡方分布以及检验统计量可以记作:


    


  5、v的计算: (如例子:v=5-1)


     v=(组数) – (限制数)


显著性: 卡方分布指出观察频数与期望频数之间差异显著性,和其他假设一样,这取决于显著性水平。

  1、显性水平α进行检验,则写作:(常用的显著性水平1%和5%

    

  2、检测标准:卡方分布检验是单尾检验且是右尾,右尾被作为拒绝域。于是通过查看检验统计量是否位于右尾的拒绝域以内,来判定期望分布得出结果的可能性。

      


  3、卡方概率表的使用:卡方临界值表是给定可以查询的


     

 

 

例如: 5%的显著性水平,8的自由度进行检验。查出15.51,因此只要检验统计量大于15.51,检验统计量就位于拒绝域内。

       


卡方分布假设检验: (总是使用右尾)


步骤:


  1、确定要进行检验的假设(H0)及其备择假设H1.


  2、求出期望E和自由度V.


  3、确定用于做决策的拒绝域(右尾).


  4、计算检验统计量.


  5、查看检验统计量是否在拒绝域内.


  6、做出决策.


卡方分布检验其实就是假设检验的特殊形式。

  • 3、要检验的原假设是什么?备择假设是什么?

    解答:


      

4 知识储备:拒绝域求解

例如: 5%的显著性水平,8的自由度进行检验。查出15.51,因此只要检验统计量大于15.51,检验统计量就位于拒绝域内。
         

  • 4、自由度为4,5%水平的拒绝域是多少?

    解答:


      

5 知识储备:计算检验统计量

前面已经求过。

  • 5、检验统计量是多少?

    解答:


      

6 知识储备:检验统计量拒绝域内外判定

1、求出检验统计量a

2、通过自由度和显著性水平查到拒绝域临界值b


3、a>b则位于拒绝域内,反之,位于拒绝域外。

  • 6、检验统计量是在拒绝域以内还是拒绝域以外?

    解答:


      

7 知识储备:决策原则

如果位于拒绝域内我们拒绝原假设H0,接受H1。

如果不在拒绝域内我们接受原假设H0,拒绝H1

  • 7、你将接受还是拒绝原假设?

    解答:


      

注:只有能得到一组观察频数且算出期望频数,卡方可以检验任何概率分布的拟合优度。

揭晓谜底:抽奖机被人动了手脚!!!!!

3 卡方检验两个变量的独立性(问题二)


 

【问题简述】:抽奖机被人动过手脚,经过技术人员处理得以解决,但是现在新问题出现了,因为老板发现负责二十一点赌桌的庄家佩服的钱高于合理值。怀疑庄家是内鬼。究竟赌局结果是否取决于坐庄的庄家,即庄家是否暗箱操作,赌局结果与庄家是否有关?此问题需要卡方分布检查独立性破案。

【问题二】下表显示各位庄家的观察频数,

    


以1%的显著性水平进行假设检验,看看赌局结果是否独立于坐庄庄家。

1 知识储备:利用概率求期望频数

1、独立性检验:用于判断两种因素是否相互独立,或者两者是否有联系。

2、期望概率求解步骤:


  1、算出赌局结果和庄家频数以及各项总和,如下表称为列联表


    


  2、算出庄家A的赢局期望。


    a、求出赢局概率:P(赢)=赢局合计/总和


    b、庄家A坐庄概率:P(A)=合计A/总和


    c、假设庄家A和赌局结果独立,其坐庄出现赢局概率:P(A坐庄赢局)=P(赢) X P(A)


    c、赢局的期望频数=总和*P(A坐庄赢局)


    即:


    


3、推广:期望频数= 行合计 X 列合计 / 总和


4、求出检验统计量:(与前面一样)


  $$x^2=\sum_{}^{}\frac{(O-E)^2}{E}$$

  • 1、你是任务是算出所有期望频数。

    解答:


  • 2、根据上面所求期望频数,计算检验统计量X^2.

    解答:


        

  • 3、确定要进行检验的假设以及备择假设。

    解答:


      
  • 4、求出期望频率和自由度?

    解答:


       
  • 5、确定用于做决策的拒绝域。

    解答:


       
  • 6、计算检验统计量X^2

    解答:


       

  • 7、看看检验统计量是否位于拒绝域内。

    解答:


       

  • 8、作出决策。

    解答:


       

2 自由度计算方法归纳:

列联表自由度计算,表如下k列,h行


v=(h-1) X (k-1)
注释:每行计算到最后一个,用总数-其他之后,故一个数限制,同列一列限制。故如上式。

注:

1、在拟合优度检验中,v=组数 – 限制数

2、在两个变量独立性检验中,如列联表为h行k列则:v=(h-1) X (k-1)

4 本章小结


1 为什么要引用卡方分布?

  以特定概率分布为某种情况建模时,事物长期结果较为稳定,能够清晰进行把握。但是期望与事实存在差异怎么办?偏差是正常小幅度波动或是在建模错误如何判别?此时,利用卡方分布分析结果,排除可疑结果。【事实与期望不符合情况下使用卡方分布进行检验】

2 卡方检验拟合优度案例

期望计算

期望频数=(观察频数之和(1000)) X (每种结果的概率) 如:-2:977=(0.977)X(1000)

卡方分布

通过一个检验统计量来比较期望结果和实际结果之间的差别,然后得出观察频数极值的发生概率。

计算统计量步骤:(期望频数总和与观察频数总和相等)

  1、表里填写相应的观察频数和期望频数

  2、利用卡方公式计算检验统计量:(O代表观察期望,E代表期望频数)

   $$x^2=\sum_{}^{}\frac{(O-E)^2}{E}$$

   :对于概率分布的每一个概率,取期望频数和实际频数的差,求差的平方数,再除以期望频数,然后将所有结果相加。

检验统计量意义

  O与E之间差值越小,检验统计量越小。以E为除数,令差值与期望频数成比例。
卡方检验的标准:如果统计量值(X^2)很小,说明观察频数和期望频数之间的差别不显著,统计量越大,差别越显著。

卡方分布的用途

  检查实际结果与期望结果之间何时存在显著差异。

    1、检验拟合优度:也就是说可以检验一组给定数据与指定分布的吻合程度。如:用它检验抽奖机收益的观察频数与我们所期望的吻合程度。
    2、检验两个变量的独立性:通过这个方法检查变量之间是否存在某种关系。

自由度V

    用于计算检验统计量的独立变量的数目。

     1、自由度希腊字母V,读作“纽”,v影响概率分布


     2、当v等于1或者2时:卡方分布先高后低的平滑曲线,检验统计量等于较小值的概率远远大于较大值的概率,即观察频数有可能接近期望频数。
     3、当v大于2时:卡方分布先低后高再低,其外形沿着正向扭曲,但当v很大时,图形接近正态分布。


     4、特定参数v(缪)的卡方分布以及检验统计量


     5、v的计算: (如例子:v=5-1)


        v=(组数) – (限制数)

显著性

   卡方分布指出观察频数与期望频数之间差异显著性,和其他假设一样,这取决于显著性水平。

    1、显性水平α进行检验,则写作:(常用的显著性水平1%和5%)

    2、检测标准:卡方分布检验是单尾检验且是右尾,右尾被作为拒绝域。于是通过查看检验统计量是否位于右尾的拒绝域以内,来判定期望分布得出结果的可能性。


    3、卡方概率表的使用:卡方临界值表是给定可以查询的

卡方分布假设检验步骤: 总是使用右尾

  1、确定要进行检验的假设(H0)及其备择假设H1.

  2、求出期望E和自由度V.


  3、确定用于做决策的拒绝域(右尾).


  4、计算检验统计量.


  5、查看检验统计量是否在拒绝域内.


  6、做出决策.


卡方分布检验其实就是假设检验的特殊形式。

决策原则

如果位于拒绝域内我们拒绝原假设H0,接受H1。
如果不在拒绝域内我们接受原假设H0,拒绝H1

卡方检验两个变量的独立性(问题二)

独立性检验:

用于判断两种因素是否相互独立,或者两者是否有联系。

期望概率求解步骤:

  1、算出赌局结果和庄家频数以及各项总和,如下表称为列联表

    


  2、算出庄家A的赢局期望。


    a、求出赢局概率:P(赢)=赢局合计/总和


    b、庄家A坐庄概率:P(A)=合计A/总和


    c、假设庄家A和赌局结果独立,其坐庄出现赢局概率:P(A坐庄赢局)=P(赢) X P(A)


    c、赢局的期望频数=总和*P(A坐庄赢局)


    即:


    

推广:

期望频数= (行合计 X 列合计) / 总和

求出检验统计量:(与前面一样)

  $$x^2=\sum_{}^{}\frac{(O-E)^2}{E}$$

自由度计算方法归纳:

  列联表自由度计算,表如下k列,h行

          

v=(h-1) X (k-1)

注释:每行计算到最后一个,用总数-其他之后,故一个数限制,同列一列限制。故如上式。

注:

1、在拟合优度检验中,v=组数 – 限制数

2、在两个变量独立性检验中,如列联表为h行k列则:v=(h-1) X (k-1)

5 内容扩展


 

统计检验量Java代码实现

/**
 * 检验统计量计算公式 
 * x^2=\sum\frac{(O-E)^2}{E}
 * 其中x^2表示检验统计量,O表示观察频数,E代表期望频数
 * @param O int,表示观察频数
 * @param E int,表示期望频数
 * @return TS=x^2 double型保留两位小数,检验统计量
 */
public static double TestStatistic(double[][] data)
{
    int len = data[0].length;
    double TS = 0;//检验统计量
    //循环叠加计算期望值
    for (int i = 0; i < len; i++) {
        TS += (Math.pow((data[0][i]-data[1][i]),2))/data[1][i];//根据检验统计量公式x^2=\sum\frac{(O-E)^2}{E}计算
    }
    //并将结果保留3位小数
    TS=NumFormat.DecFormat(3,TS);
    System.out.println("检验统计量:"+TS);

    return TS;
}

 

卡方独立性之期望频数Java代码实现

/*
 * 卡方独立性之期望频数
 * 公式:期望频数=((行合计)*(列合计))/总和
 * @param sum1 double,行合计
 * @param sum2 double,列合计
 * @param sum  double,总和
 * @return Enum   double,期望频数
 */
public static double ExpFre(double sum1,double sum2,double sum)
{
    double Enum=0;
    Enum=(sum1*sum2)/sum;
    NumFormat.DecFormat(2,Enum);
    System.out.println("独立性期望频数:Enum="+Enum);
    return Enum;
}

 

计算自由度Java代码实现

/*
 * 计算自由度: 用于计算检验统计量的独立变量的数目。
 * 公式:v=(h-1)-(k-1)
 * h表示表示表格行,k表示列
 * @param h int,组数
 * @param k int,限制数:影响计算结果的数目
 * @return V   int,拟合自由度
 */
public static int NiheFreeNum(int h,int k)
{
    int v=0;
    v=(h-1)*(k-1);
    System.out.println("拟合自由度:V="+v);
    return v;
}

 

卡方的期望和方差

分布的均值为自由度 n,记为 $$ E(X^2) = n$$

分布的方差为2倍的自由度(2n),记为$$ D(x^2) = 2n$$

性质

 1)分布在第一象限内,卡方值都是正值,呈正偏态(右偏态),随着参数 n 的增大,分布趋近于正态分布;卡方分布密度曲线下的面积都是1.

 2)分布的均值与方差可以看出,随着自由度n的增大,χ2分布向正无穷方向延伸(因为均值n越来越大),分布曲线也越来越低阔(因为方差2n越来&越大)。


 3)不同的自由度决定不同的卡方分布,自由度越小,分布越偏斜。


6 参考文献


 

1、卡方分布

2、四个表卡方检验


3、卡方检验百分比与理论值差异


4、相关样本卡方检验


5、卡方检验分类变量是否相关


6、分层卡方检验


7、几种常见的滥(乱)用卡方检验的情况


8、智库百科—-卡方检验


9、智库


10、卡方检验的SPSS操作

7 开源共享 


 PPT:http://yunpan.cn/cFj7rSNMYfVLk 访问密码 0d79

开源代码:http://yunpan.cn/cFjCxReySUdbR 访问密码 ed28

 

版权声明:本文为baiboy原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/baiboy/p/tjx11.html