卡方检验的原理作用以及Python、R语言的实现方式
来源:互联网 发布:基于图的推荐算法 编辑:程序博客网 时间:2024/06/11 21:56
卡方检验(chi-square test)
或称X^2检验,主要作用是判定实际统计数据是否符合期望值,之后便可以演变出各种用法,例如:特征选择,变量各类的出现概率,变量是否相互有关联等。
主要公式:
右侧的X^2代表卡方值,卡方值=[(观测值O-期望值E)/期望值E]所有的组别的累加。
例子:
假设一果农场,今年水果产量记为观察值,往年产量记为期望值,所生成的四格表如上图所示。
计算:
卡方值X^2=(28-20)^2/20+(38-30)^2/30+(34-50)^2/50=10.45
因此卡方值的话是10.45
卡方值再与卡方鉴定表相比较,如果卡方值<鉴定表中值可以得到:
H0:行分类变量与列分类变量无关联
如果卡方值>鉴定表中值可以得到:
H1:行分类变量与列分类变量有关联
卡方值再与卡方鉴定表相比较,如果卡方值<鉴定表中值可以得到:
H0:行分类变量与列分类变量无关联
如果卡方值>鉴定表中值可以得到:
H1:行分类变量与列分类变量有关联
卡方鉴定表比较:
刚开始学的时候一直觉得这个表要自己算、、、搞了半天,查了半天资料原来表示固定的、、、好了,跑题了。
查这个表,我们首先得要知道自由度K,而K的值和我们的组别数量有关。如上图,我们有 芒果、苹果、水蜜桃 三种水果,也就是三种组别,因此自由度K=组别-1
而概率如果没有特别要求,我们一般使用的是5%,也就是0.05这一档。
查表可得上个例子的鉴定表数值是:5.99
卡方值X^2=10.45>5.99,因此得到H0:行分类变量与列分类变量无关联,可以得出今年产量不同于往年。
如果X^2<比较值,我们能得出H1:行分类变量与列分类变量有关联,也就是今年产量类似于往年。
总结:
卡方检验的一个典型应用场景是衡量特定条件下的分布是否与理论分布一致,比如:特定用户某项指标的分布与大盘的分布是否差异很大,这时通过临界概率可以合理又科学的筛选异常用户。另外,X^2值描述了自变量与因变量之间的相关程度:X^2值越大,相关程度也越大,所以很自然的可以利用X^2值来做降维,保留相关程度大的变量。R语言卡方检测:
R语言自带卡方检测的方法,只要调用方法chisq.test(),会自行输出X-squared卡方值, df自由度, p-value概率
Python卡方检测:
相对而言就麻烦很多了。
环境搭建:
方法一:在Python下执行 pip install scipy,如果没有意外的话,自动配置一切环境。
方法二:下载相应的numpy.whl, scipy.whl文件,注意!这里的numpy是要+mkl模块的。然后在whl文件目录中打开控制台,输入pip install XXX.whl即可。(虽然本人安装过程跳出一堆红色错误,但是结果依旧能用= =)
问题:
有时候使用方法一时会跳出缺少vcvarsall.bat的提示(方法二不知道会不会),解决方案如下表格:
根据对应的Python版本,对应的包就行。
使用方法:import scipyfrom scipy.stats import chisquareimport numpyobserv0=numpy.array([25,38,40,20,37,44])test0=scipy.stats.chisquare(observ0)print(test0)
0 0
- 卡方检验的原理作用以及Python、R语言的实现方式
- 用R语言实现卡方检验
- 卡方分布与卡方检验------以及python的实现
- R语言_卡方检验
- python 卡方检验原理及应用
- 不同方法的正态性检验及R语言实现
- 卡方检验以及P值的计算
- R语言Fisher检验的workspace问题
- python之r的作用
- 假设检验——正态总体参数的检验(u检验,t检验,卡方检验,f检验)
- 基于卡方的独立性检验
- 置换检验(R语言实现)
- R语言与回归分析几个假设的检验
- R语言与回归分析几个假设的检验
- [R语言统计]秩转换的非参数检验
- 数据分析之《菜鸟侦探挑战数据分析》-2-R语言-列联表-卡方检验
- R语言t检验,秩和检验,fdr的案例分析
- kNN算法的原理以及Python实现
- Orm——源码library使用
- Java struts 学习记录与案例
- FragmentTabHost中的图片和文字点击变换背景
- 备注事情
- welcome
- 卡方检验的原理作用以及Python、R语言的实现方式
- 白话经典算法系列之六 快速排序 快速搞定
- Spring学习总结一(续1)
- 关于最大似然与交叉熵损失函数和最小二乘法的思考
- FragmentTabHost的使用
- Python的控制结构
- 析构函数
- 100本软件开发最佳书籍排行榜
- JSON的运用