机器学习笔记 - 如何对两个分类变量使用卡方检验?
1、卡方检验概述
卡方检验被誉为二十世纪科学技术所有分支中的20大发明之一,它的发明者卡尔·皮尔逊是一位历史上罕见的百科全书式的学者,研究领域涵盖了生物、历史、宗教、哲学、法律。是英国著名的统计学家、生物统计学家、应用数学家,又是名副其实的历史学家、科学哲学家、伦理学家、民俗学家、人类学家、宗教学家、优生学家、弹性和工程问题专家、头骨测量学家,也是精力充沛的社会活动家、律师、自由思想者、教育改革家、社会主义者、妇女解放的鼓吹者、婚姻问题的研究者。亦是受欢迎的教师、编辑、文学作品和人物传记的作者。
卡方检验(也称为卡方或χ2检验)是一种统计假设检验,当检验统计量在原假设下卡方分布时有效,特别是Pearson 卡方检验及其变体。Pearson 的卡方检验用于确定列联表的一个或多个类别中的预期频率和观察到的频率之间是否存在统计显着差异。
卡方的公式如下
其中c为自由度,O为观察值,E为期望值。
卡方检验主要有两种:独立性检验和拟合优度检验。
(1)独立性检验
在考虑可能相互依赖的分类变量时。独立性的卡方检验可用于评估分类变量之间的关联。
假设有两个变量:性别和学位课程,需要检查是性别取决于课程还是课程取决于性别。然后,使用观察值和预测值的卡方公式,比较男性和女性员工从可用课程中选择的频率。
如果性别和课程之间没有关系,这意味着它们是相互独立的,那么男女选择每门课程的实际频率应该大致相等。任何选定学位的学生性别比例应约等于样本中的性别比例。
独立性的卡方检验可能表明观察到的数据中实际频率与这些理论预测之间的任何差异有多大可能可以通过随机机会来解释。
(2)拟合优度
卡方提供了一种方法来测试数据样本与该样本要代表的较大总体特征的匹配程度。如果样本数据不能反映目标人群的情况,则不能使用样本数据得出关于更大人群的结论。这种卡方检验是拟合优度。
假设一个小型图书馆在周五和周日拥有最多的成员,周一、周二和周六的平均人数最多,周三和周四的人数最少。根据这些预测,图书馆每天雇用一定数量的员工来检查会员、清洁设施、警卫和图书馆员。
然而,图书馆正在亏损,所有者想要确定成员假设的频率和人员配备水平是否正确。六个星期以来,业主选择每天统计图书馆访客的数量。然后,他们可以使用卡方拟合优度检验来比较图书馆假设的出勤率和观察到的出勤率。借助附加信息,他们可以更好地管理图书馆并增加收入。
2、使用scipy库实施卡方检验
(1)数据集
在 python 中,scipy 库提供了一个 stats 模块,我们可以在该模块下找到所有与卡方检验相关的属性。
查看下面的表格,我们基于这个数据进行检验,测试的目的是得出两个变量(性别和宠物选择)是否相互关联的结论。
(2)零假设
我们首先定义零假设(H0),它表明变量之间没有关系。另一种假设将表明两者之间存在显着关系。
我们可以通过以下方法验证假设:
使用p 值:
我们定义一个显着性因子来确定变量之间的关系是否具有相当的显着性。通常选择0.05的显着性因子或alpha 值。该alpha 值表示当 H0 为真时错误拒绝H0的概率。在我们期望更精确的情况下选择较低的alpha 值。如果检验的p 值严格大于 alpha 值,则 H0 成立。
使用卡方值:
如果我们计算的卡方值小于或等于卡方的表格(也称为临界)值,则H0成立。
(3)预期值表
接下来,我们准备一个类似的计算(或预期)值表。为此,我们需要将新表中的每个项目计算为:
拿第一行第一列举例,
(4)卡方表
我们通过为每个项目计算以下内容来准备此表:
从这个表中,我们得到最后一列的总和,这给了我们卡方的计算值。因此卡方的计算值为4.542228269825232
现在,我们需要找到卡方的临界值。我们可以从一个表中得到它。要使用此表,我们需要知道数据集的自由度。自由度定义为:(行数 - 1)*(列数 - 1)。因此,自由度为(2-1) * (3-1) = 2
现在,让我们看一下表格,找到对应于2个自由度和0.05个显着因子的值:
这里卡方的表格或临界值为5.991,大于我们的计算值。
因此,H0被接受,即变量之间不存在显着关系。
3、使用python计算
from scipy.stats import chi2_contingency# defining the table
data = [[207, 282, 241], [234, 242, 232]]
stat, p, dof, expected = chi2_contingency(data)# interpret p-value
alpha = 0.05
print("p value is " + str(p))
if p <= alpha:print('Dependent (reject H0)')
else:print('Independent (H0 holds true)')
机器学习笔记 - 如何对两个分类变量使用卡方检验?相关推荐
- 【机器学习笔记14】softmax多分类模型【下篇】从零开始自己实现softmax多分类器(含具体代码与示例数据集)
文章目录 推荐阅读 前言 关于代码 第一部分 Softmax分类器相关公式与步骤 相关公式 梯度下降步骤 数据集获取 从零开始实现softmax多分类器 导入数据 初始框架 step1:将label向 ...
- 李弘毅机器学习笔记:第五章—分类
李弘毅机器学习笔记:第五章-分类 例子(神奇宝贝属性预测) 分类概念 神奇宝贝的属性(水.电.草)预测 回归模型 vs 概率模型 回归模型 其他模型(理想替代品) 概率模型实现原理 盒子抽球概率举例 ...
- R语言使用coin包应用于独立性问题的置换检验(permutation tests、响应变量是否独立于组、两个数值变量是独立的吗、两个分类变量是独立的吗)、以及coin包的常用置换检验函数
R语言使用coin包应用于独立性问题的置换检验(permutation tests.响应变量是否独立于组.两个数值变量是独立的吗.两个分类变量是独立的吗).以及coin包的常用置换检验函数 目录
- R语言置换检验(permutation tests、响应变量是否独立于组、两个数值变量是独立的吗、两个分类变量是独立的吗)、置换检验的基本步骤、R语言自助法Bootstrapping计算置信区间
R语言置换检验(permutation tests.响应变量是否独立于组.两个数值变量是独立的吗.两个分类变量是独立的吗).置换检验的基本步骤.R语言自助法Bootstrapping.自助法计算单个统 ...
- R语言使用两个分类变量创建双向表(Two Way Table、两个分类变量的频率表)实战: 矩阵的双向表、dataframe的双向表、条形图和马赛克图来可视化频率表
R语言使用两个分类变量创建双向表(Two Way Table.两个分类变量的频率表)实战: 矩阵的双向表.dataframe的双向表.条形图和马赛克图来可视化频率表 目录
- R语言构建仿真列联表并进行卡方检验(chisq.test):检验两个分类变量是否独立、输出期望的列联表
R语言构建仿真列联表并进行卡方检验(chisq.test):检验两个分类变量是否独立.输出期望的列联表 目录
- R语言使用vcd包的assocstats函数计算两个分类变量的相关性的强弱、计算列联表的Phi系数、列联系数和Cramer’s V系数
R语言使用vcd包的assocstats函数计算两个分类变量的相关性的强弱.计算列联表的Phi系数.列联系数和Cramer's V系数 目录
- R语言使用fisher.test函数进行精确概率检验、检验两个分类变量是否独立(自定义构建列联表仿真数据)
R语言使用fisher.test函数进行精确概率检验.检验两个分类变量是否独立(自定义构建列联表仿真数据) 目录
- R语言使用epiDisplay包的kap函数计算两个分类变量的相关性的强弱、计算一致性的比例以及Kappa统计量的值
R语言使用epiDisplay包的kap函数计算两个分类变量的相关性的强弱.计算一致性的比例以及Kappa统计量的值 目录
最新文章
- Python的数据库操作(Sqlalchemy)
- Winform、WPF、Silverlight、MFC区别与联系
- ASP.NET基础教程-以查询字符串的方式在两个页面之间传递信息
- Linux 监控数据库资源占用
- C++实现对数学基本运算表达式的解析
- 矩池云上如何修改cuda版本
- tomcat基本配置和应用
- 跳槽高峰期,请注意:技术面试九忌
- 网页编写练习 小米闪购
- 江湖魔头-BugkuCTF平台
- 【Python基础 | 文件】小实验:将古诗写入一个文件,并复制到另一个文件中
- 最新联发科Helio X30(mt6799)芯片处理器详细资料(datasheet)
- mysql 1058 无法启动服务_案例:MySQL服务无法启动 系统发生1058错误
- 转专业计算机类面试自我介绍,转专业面试自我介绍
- c语言去除字符串中字母,C语言经典例题100例——C语言练习实例32解答(在字符串中删除指定字母或字符串)...
- 正则中圆括号()方括号[]大括号{}的区别和用法
- java斗地主发牌代码_java代码实现斗地主发牌功能
- Python3.9 终于来了,新功能详细介绍
- 关于制作基于STM32的指纹打卡器(不完全体)
- Keepalived+LVS-DR模式配置高可用负载均衡集群