在单样本问题中, 人们想要检验的是总体的中心是否等于一个已知的值. 但在实际问题中, 更受注意的往往是比较两个总体的位置参数; 比如, 两种训练方法中哪一种更出成绩, 两种汽油中哪一种污染更少, 两种市场营销策略中哪种更有效等等.

1. χ2\chi^2χ2独立性检验的原理

若随机变量X,YX,YX,Y的分布函数分别为F1(x)和F2(y)F_1(x) 和 F_2(y)F1​(x)和F2​(y), 且联合分布为F(x,y)F(x, y)F(x,y), 则X与Y的独立性归结为假设检验问题:
H0:F(x,y)=F1(x)F2(y)H1:F(x,y)≠F1(x)F2(y)H_0: F(x,y)=F_1(x)F_2(y) \quad H_1: F(x,y)\neq F_1(x)F_2(y)H0​:F(x,y)=F1​(x)F2​(y)H1​:F(x,y)​=F1​(x)F2​(y)
若X与Y为分类变量,其中X的取值为X1,X2,...,XrX_1, X_2,...,X_rX1​,X2​,...,Xr​, Y的取值为Y1,Y2,...,YsY_1,Y_2,...,Y_sY1​,Y2​,...,Ys​, 将X与Y的各种情况组合用一张r×sr \times sr×s列联表表示,称为r×sr\times sr×s二维列联表,如下图所示:

表中nijn_{ij}nij​表示n个随机试验的结果中X取XiX_iXi​及Y取YjY_jYj​的频数,∑i=1r∑j=1snij=n\sum_{i=1}^r\sum_{j=1}^sn_{ij}=n∑i=1r​∑j=1s​nij​=n.
ni.=∑j=1snij,i=1,2,...,r,表示各行之和n_{i.}=\sum_{j=1}^sn_{ij}, i=1,2,...,r, 表示各行之和ni.​=j=1∑s​nij​,i=1,2,...,r,表示各行之和
n.j=∑i=1rnij,j=1,2,...s,表示各列之和n_{.j}=\sum_{i=1}^rn_{ij}, j=1,2,...s, 表示各列之和n.j​=i=1∑r​nij​,j=1,2,...s,表示各列之和
令pij=P(X=Xi,Y=Yj),pi.=P(X=Xi),p.j=P(Y=Yj),i=1,2,...,r;j=1,2,...,s,p_{ij}=P(X=X_i, Y=Y_j), p_{i.}=P(X=X_i), p_{.j}=P(Y=Y_j), i=1,2,...,r; j=1,2,...,s,pij​=P(X=Xi​,Y=Yj​),pi.​=P(X=Xi​),p.j​=P(Y=Yj​),i=1,2,...,r;j=1,2,...,s, 则X与Y的独立性检验等价于下述检验:
H0:pij=pi.p.j,∀1≤i≤r,1≤j≤sH1:∃(i,j),pij≠pi.p.jH_0: p_{ij} = p_{i.}p_{.j}, \forall 1\le i \le r, 1\le j \le s \quad H_1: \exist (i,j), p_{ij}\neq p_{i.}p_{.j}H0​:pij​=pi.​p.j​,∀1≤i≤r,1≤j≤sH1​:∃(i,j),pij​​=pi.​p.j​
注: 若X与Y 为连续型随机变量, 这时将它们的取值范围分成r个及s个互不相交的小区间, 用nijn_{ij}nij​ 表示n个随机试验的结果中“X属于第i个小区间, Y 属于第k个小区间”的频数 (i=1,2,...,r;k=1,2,...,s)(i=1,2,...,r; k=1,2,...,s)(i=1,2,...,r;k=1,2,...,s) 这时可将X与Y 的独立性转化为列联表的独立性检验问题.
由于pi.p_{i.}pi.​的极大似然估计为p^i.=ni./n\hat p_{i.} = n_{i.}/np^​i.​=ni.​/n, p.jp_{.j}p.j​的极大似然估计为p^.j/n\hat p_{.j}/np^​.j​/n, 因此若H0H_0H0​成立,则pijp_{ij}pij​的极大似然估计为p^i.p^.j=ni.n.j/n2\hat p_{i.} \hat p_{.j}=n_{i.}n_{.j}/n^2p^​i.​p^​.j​=ni.​n.j​/n2. 从而X取代XiX_iXi​, Y取代YjY_jYj​(试验数据落入第(i,j)(i,j)(i,j)个类)的理论频数为n×ni.n.j/n2=ni.n.j/nn \times n_{i.}n_{.j}/n^2 = n_{i.}n_{.j}/nn×ni.​n.j​/n2=ni.​n.j​/n. 由此构造检验统计量为:
χ2=∑i=1r∑k=1s[nij−ni.n.jn]2/ni.n.jn\chi^2=\sum_{i=1}^r\sum_{k=1}^s[n_{ij}-\frac{n_{i.}n_{.j}}{n}]^2/\frac{n_{i.}n_{.j}}{n}χ2=i=1∑r​k=1∑s​[nij​−nni.​n.j​​]2/nni.​n.j​​
可以证明在原假设成立时, χ2\chi^2χ2近似服从χ2((r−1)(s−1))\chi^2((r-1)(s-1))χ2((r−1)(s−1))

2. 使用Python展示和计算

在python中的pandas库中有一个DataFrame的数据结构,可以用来保存二维数据,并进行计算。
例1: 对表1所示频数分布表,以59%显著水平,检验色觉与性别是否相关。

2. 1. 初始化数据

import numpy as np
import pandas as pd
from scipy import stats
d=np.array([[442, 514],[38,6]])
r,s = d.shape
df = pd.DataFrame(d, columns=['male', 'female'], index=['normal', 'blindness'])

上述代码已将初始化数据存入df,显示如下:

2.2. 计算边际频数

首先在df基础上建立一个数据框(数据一致)。并在新建的数据框基础继续计算。

df1 = df[:]
df1= pd.DataFrame(df1)
df1['r_tot']=np.sum(df1,axis=1)
df1.loc['c_tot']=np.sum(df1, axis=0)

经过上面的处理,df1就是带有编辑频数的数据框。显示如下:

2.3. 计算理论频数分布表

r_tot = df1['r_tot'][:-1]
c_tot=df1.loc['c_tot'][:-1]
total = np.sum(r_tot)
data = np.zeros((r,s))
for i in range(len(r_tot)):for j in range(len(c_tot)):data[i,j]=r_tot[i]*c_tot[j]/total
df2=pd.DataFrame(data, index=['normal', 'blindness'], columns=['male', 'female'])

至此,我们将计算得到的理论频数分布表保存在了df2中,而原始数据在df中,如下图所示:

2.4. 统计量计算

为了清晰整个计算过程,这里添加一步(对计算结果来说是多余的)产生统计量数据框的代码:

(df-df2)**2/df2

其产生的统计量数据框如下图:

其实,下面一行代码即可获得卡方统计量的值并获取pval:

chi_square=np.sum((df-df2)**2/df2).sum()
stats.chi2.sf(chi_squre, df=(r-1)*(s-1))

得到χ2=27.13874340443378,pval=1.8936459120177876e−07\chi^2=27.13874340443378, pval=1.8936459120177876e-07χ2=27.13874340443378,pval=1.8936459120177876e−07
因为pval<α=0.05pval \lt \alpha=0.05pval<α=0.05, 所以拒绝原假设,可以认为色盲和性别有关系

十一、非参数检验:使用python进行卡方两样本独立性检验相关推荐

  1. python实现卡方(Chi-Squared Test)相关性检验

    python实现卡方(Chi-Squared Test)相关性检验 独立性检验是统计学的一种检验方式,与适合性检验同属于X2检验,即卡方检验(英文名:chi square test),它是根据次数资料 ...

  2. python 特征选择卡方_特征选择

    2020-01-10 皮尔逊相关系数 image.png 衡量线性相关性,检查数据集里目标和数值特征之间皮尔逊相关系数的绝对值.根据这个准则保留前n个特征.def cor_selector(X, y, ...

  3. 卡方分布和卡方验证的关系理解,以及Python实现

    卡方分布 定义:设 X1-Xn是服从标准正态分布的随机变量,则称统计量 服从自由度为n的卡方分布,自由度为n时,他的期望是n,方差为2n 他是标准正态分布变量的平方和,网上找了一张概率密度图: 然后我 ...

  4. 特征工程之特征分箱(决策树分箱、卡方分箱、bestks以及评价标准WOE和IV)

    特征工程之特征分箱:决策树分箱.卡方分箱.bestks以及评价标准 1.WOE和IV 2.无监督分箱 2.1等频分箱 2.2等距分箱 3.有监督分箱 3.1决策树分箱 3.2best-ks分箱 3.3 ...

  5. python 卡方分箱算法_python实现二分类的卡方分箱示例

    解决的问题: 1.实现了二分类的卡方分箱: 2.实现了最大分组限定停止条件,和最小阈值限定停止条件: 问题,还不太清楚,后续补充. 1.自由度k,如何来确定,卡方阈值的自由度为 分箱数-1,显著性水平 ...

  6. python 决策_Python 卡方决策

    Python 卡方决策,下面介绍一个常见的统计决策.在http://www.itl.nist.gov/div898/handbook/prc/section4/prc45.htm中有对该决策的详细描述 ...

  7. python卡方分箱_Python评分卡建模—卡方分箱

    为服从自由度为k的卡方分布,记作: 或者记作 . 二.卡方检验 χ2检验是以χ2分布为基础的一种假设检验方法,主要用于分类变量之间的独立性检验. 其基本思想是根据样本数据推断总体的分布与期望分布是否有 ...

  8. 【数据处理】python变量分箱常见手法:分类型、数值型、卡方、自定义

    """ 分箱逻辑:1.类别型特征: 1)类别数在5个以下,可以直接根据类别来分箱 (binning_cate) 2)类别数在5个以上,建议做降基处理,再根据降基后的类别做 ...

  9. python评分卡建模-卡方分箱(2)之代码实现

    卡方值计算 计算卡方值的函数需要输入numpy格式的频数表.对于pandas数据集,只需使用pd.crosstab计算即可,例如变量"总账户数" 与 目标变量 "是否坏客 ...

  10. python评分卡建模-卡方分箱

    今天主要给大家讲讲卡方分箱算法ChiMerge.先给大家介绍一下经常被提到的卡方分布和卡方检验是什么. 一.卡方分布 卡方分布(chi-square distribution, χ2-distribu ...

最新文章

  1. WinCE 自由拼音输入法的测试
  2. 常见博客网站的robots.txt
  3. 2020 年 GitHub 上那些优秀 Android 开源库,这里是 Top10! | 原力计划
  4. java中的equals和hashCode
  5. 记录一下qt发布程序(.exe)心得,报错0xc00007b错误
  6. 802.11无线WIFI协议学习笔记(一)
  7. 对决:腾讯对360摊牌
  8. python table类中的 可以作为初步观察工具_《趣学Python编程》习题总结
  9. view-ui中select全选实现
  10. datacom-HCIP之题库继续解析
  11. 指纹识别技术综述(扫盲篇)(转载)
  12. 智慧工地具有哪些社会意义?
  13. 自定义控件解决android中TextView中英文换行问题
  14. python listnode.val_Python 学习 -- 数据结构与算法 (五)
  15. 老哥教你如何将springboot打包成exe程序
  16. 桐梓县春晖行动志愿者协会开展同心抗疫志愿服务保障工作
  17. 利用python实现修改阿里云DNS值解析
  18. 电脑文件和百度网盘如何随时随地备份?
  19. 无线路由实战(一):增强无线wifi信号和加速wifi的十一种方法
  20. 健身的基本知识(4)

热门文章

  1. 联合几位大佬给大家送110本技术书籍!包邮到家!!
  2. 将姓名转为拼音,首字母大写
  3. 《崩坏3》评测:游戏设计中整体性和利用率分析(中)
  4. 小米 note3 android,小米NOTE3 MIUI9.6稳定版 开启全面屏手势和屏蔽经典物理按键全攻略...
  5. 中国身份证号码验证,支持15 18位,可验证成功90 的身份证号
  6. XML基础知识及四种解析方法
  7. 【067】Color Hunter-用图片搜索配色方案
  8. awesome PHP之依赖注入容器pimple
  9. 调用DialogFragment做进度条报java.lang.IllegalStateException: Fragment already added问题的最终解决方案
  10. 建立软件工程之动态模型(状态图)步骤