使用 Python 进行卡方测试

2023-11-24 16:30

本文主要是介绍使用 Python 进行卡方测试,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

土耳其超级联赛的三大足球俱乐部

一、说明

        卡方检验用于检验为分类变量创建的模型。也就是说,这是我们在统计学中经常遇到的另一个经典假设检验。该测试是事实与期望的统计版本。我们有一个理论,一个对事件的期望,我们也有观察,现在我们想比较它们。

二、卡方一般概念

        我们可以通过两种方式应用卡方检验:

  1. 拟合优度检验:我们有一个分类变量。我们想检查我们的样本对整个总体的反映程度。
  2. 独立性测试:我们有两个分类变量。我们想检查这两者之间是否存在关系。

        公式!

        卡方值是观测值和预期值之差的平方和除以期望值。c 是自由度。

2.1 合身性

假设我们欺骗了100名在伊斯坦布尔塔克西姆广场散步的人,承诺购买啤酒,并问他们支持哪支球队。根据瑞士科学家的研究,我们已经知道支持加拉塔萨雷的人的比例是45%。费内巴切占35%,贝西克塔斯占20%。这是我们的期望。另一方面,当我们查看在塔克西姆喝啤酒后收集的样本时,我们的观察结果分别如下:54、38 和 8。

Data table

        我们的零假设是瑞士科学家是对的。另一种假设是他们错了。我们选择显著性水平为 5%。我们的自由度是2(如果我们有两个俱乐部的支持者数量,我们也可以获得第三个俱乐部的数量)。还有 c = k-1 = 3–1 = 2。

        现在让我们使用等式:

        度数为 9 的卡方值为 27.0,置信水平为 05.5 的卡方值为 991.0。卡方表链接在这里。Excel 公式为 “ = CHISQ。INV(95.2,<>)”。

        如果我们的值大于临界值,我们可以拒绝零假设,是的,在这种情况下,我们拒绝零并接受替代方案,这意味着瑞士人错了!

#python code for the above example
observed = [54,38,8]
expectation = [45,35,20]
x = sum([(o-e)**2./e for o,e in zip(observed,expectation)])
#chi square = 9.257
#import chi2 from scipy to get the critical value
from scipy.stats import chi2
alpha = 0.05
df = 2
cr=chi2.ppf(q=1-alpha,df=df)
#critical value is 5.991

2.2 独立性测试

        这是一回事,但还有一个变量。因此,让我们在上面的示例中再添加一个。我们注意到酒吧里的 100 个热爱足球的朋友正在喝 2 种啤酒;比尔森和拉格。我们想知道足球队和啤酒类型的选择之间是否存在关系。我们再次收集样本。

        啤酒

        添加另一个变量后的观测数据表

        为了计算期望值,我们将使用联合概率,即:P(联合)=边际概率*边际概率。例如,我们可以计算出喜欢喝比尔森啤酒的加拉塔萨雷球迷的期望值如下;

        E = (54 * 43) / 100 = 23.2。因此,让我们计算所有预期值:

        计算出的期望数据

        因此,我们的零假设 Ho 是支持的团队与啤酒偏好无关。替代假设 Ha 是支持的团队不独立于啤酒偏好。我们的自由度是 df = (r-1)(c-1) = (3–1)(2–1) = 2。我们再次使用相同的方程来计算卡方值:

        计算值 22.74 再次大于临界值,因此我们拒绝原假设并接受替代假设。我们可以说这两个变量都是依赖的。

三、结论

        卡方检验用于检查分类变量。在选择机器学习特征时,我们可以使用卡方。

这篇关于使用 Python 进行卡方测试的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/422237

相关文章

Conda与Python venv虚拟环境的区别与使用方法详解

《Conda与Pythonvenv虚拟环境的区别与使用方法详解》随着Python社区的成长,虚拟环境的概念和技术也在不断发展,:本文主要介绍Conda与Pythonvenv虚拟环境的区别与使用... 目录前言一、Conda 与 python venv 的核心区别1. Conda 的特点2. Python v

Spring Boot中WebSocket常用使用方法详解

《SpringBoot中WebSocket常用使用方法详解》本文从WebSocket的基础概念出发,详细介绍了SpringBoot集成WebSocket的步骤,并重点讲解了常用的使用方法,包括简单消... 目录一、WebSocket基础概念1.1 什么是WebSocket1.2 WebSocket与HTTP

C#中Guid类使用小结

《C#中Guid类使用小结》本文主要介绍了C#中Guid类用于生成和操作128位的唯一标识符,用于数据库主键及分布式系统,支持通过NewGuid、Parse等方法生成,感兴趣的可以了解一下... 目录前言一、什么是 Guid二、生成 Guid1. 使用 Guid.NewGuid() 方法2. 从字符串创建

Python使用python-can实现合并BLF文件

《Python使用python-can实现合并BLF文件》python-can库是Python生态中专注于CAN总线通信与数据处理的强大工具,本文将使用python-can为BLF文件合并提供高效灵活... 目录一、python-can 库:CAN 数据处理的利器二、BLF 文件合并核心代码解析1. 基础合

Python使用OpenCV实现获取视频时长的小工具

《Python使用OpenCV实现获取视频时长的小工具》在处理视频数据时,获取视频的时长是一项常见且基础的需求,本文将详细介绍如何使用Python和OpenCV获取视频时长,并对每一行代码进行深入解析... 目录一、代码实现二、代码解析1. 导入 OpenCV 库2. 定义获取视频时长的函数3. 打开视频文

Python中你不知道的gzip高级用法分享

《Python中你不知道的gzip高级用法分享》在当今大数据时代,数据存储和传输成本已成为每个开发者必须考虑的问题,Python内置的gzip模块提供了一种简单高效的解决方案,下面小编就来和大家详细讲... 目录前言:为什么数据压缩如此重要1. gzip 模块基础介绍2. 基本压缩与解压缩操作2.1 压缩文

Spring IoC 容器的使用详解(最新整理)

《SpringIoC容器的使用详解(最新整理)》文章介绍了Spring框架中的应用分层思想与IoC容器原理,通过分层解耦业务逻辑、数据访问等模块,IoC容器利用@Component注解管理Bean... 目录1. 应用分层2. IoC 的介绍3. IoC 容器的使用3.1. bean 的存储3.2. 方法注

Python设置Cookie永不超时的详细指南

《Python设置Cookie永不超时的详细指南》Cookie是一种存储在用户浏览器中的小型数据片段,用于记录用户的登录状态、偏好设置等信息,下面小编就来和大家详细讲讲Python如何设置Cookie... 目录一、Cookie的作用与重要性二、Cookie过期的原因三、实现Cookie永不超时的方法(一)

Python内置函数之classmethod函数使用详解

《Python内置函数之classmethod函数使用详解》:本文主要介绍Python内置函数之classmethod函数使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录1. 类方法定义与基本语法2. 类方法 vs 实例方法 vs 静态方法3. 核心特性与用法(1编程客

Python函数作用域示例详解

《Python函数作用域示例详解》本文介绍了Python中的LEGB作用域规则,详细解析了变量查找的四个层级,通过具体代码示例,展示了各层级的变量访问规则和特性,对python函数作用域相关知识感兴趣... 目录一、LEGB 规则二、作用域实例2.1 局部作用域(Local)2.2 闭包作用域(Enclos