【机器学习 | 假设检验系列】假设检验系列—卡方检验(详细案例,数学公式原理推导),最常被忽视得假设检验确定不来看看?

本文主要是介绍【机器学习 | 假设检验系列】假设检验系列—卡方检验(详细案例,数学公式原理推导),最常被忽视得假设检验确定不来看看?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这里插入图片描述

🤵‍♂️ 个人主页: @AI_magician
📡主页地址: 作者简介:CSDN内容合伙人,全栈领域优质创作者。
👨‍💻景愿:旨在于能和更多的热爱计算机的伙伴一起成长!!🐱‍🏍

在这里插入图片描述

【机器学习 | 假设检验系列】假设检验系列—卡方检验(详细案例,数学公式原理推导),最常被忽视得假设检验确定不来看看?
作者: 计算机魔术师
版本: 1.0 ( 2023.8.27 )

摘要: 本系列旨在普及那些深度学习路上必经的核心概念,【机器学习 | 假设检验系列】假设检验系列—卡方检验(详细案例,数学公式原理推导),最常被忽视得假设检验确定不来看看?

该文章收录专栏
[✨— 《深入解析机器学习:从原理到应用的全面指南》 —✨]

假设检验(Hypothesis Testing)

假设检验(Hypothesis Testing)是狭义数据分析中的一种常用方法,用于检验关于总体参数的假设。它可以帮助我们判断样本数据与某个假设之间是否存在显著差异。假设检验通常涉及以下步骤:

  1. 建立原假设(Null Hypothesis)和备择假设(Alternative Hypothesis):原假设是关于总体参数的某种假设,备择假设是与原假设相对立的假设。

  2. 选择适当的假设检验方法:根据研究问题和数据类型,选择适合的假设检验方法,例如t检验、卡方检验、ANOVA等。

  3. 计算检验统计量:根据所选的假设检验方法,计算得到相应的检验统计量。

  4. 确定显著性水平:设定显著性水平(例如0.05),表示拒绝原假设的阈值。

    p 值(p-value)是用于衡量统计假设检验结果的一个概率指标(可以理解为是一个用来衡量观察到的数据与原假设之间的矛盾程度的指标)。它表示观察到的数据或更极端情况下,基于原假设(零假设)成立的情况下发生的概率。

  5. 进行假设检验:根据检验统计量和显著性水平,判断样本数据是否足够证据支持或拒绝原假设。

  6. 得出结论:根据假设检验的结果,得出关于总体参数的结论,并进行解释。

假设检验可以帮助我们验证关于总体参数的假设,从而在数据分析过程中提供可靠的推断和结论。因此,它可以被视为狭义数据分析的一部分。

名称介绍优缺点
正态性检验 (Normality Test)正态性检验用于确定数据是否符合正态分布。常用的正态性检验方法包括Kolmogorov-Smirnov检验、Shapiro-Wilk检验和Anderson-Darling检验等。优点:可以帮助确定数据是否适合使用基于正态分布的统计方法。缺点:对于大样本数据,即使微小的偏差也可能导致拒绝正态性假设。
相关性检验 (Correlation Test)相关性检验用于确定两个变量之间的相关性。常用的相关性检验方法包括Pearson相关系数、Spearman等级相关系数和Kendall秩相关系数。(该检验算法只能用于数值型,而不能用于类别型)优点:可以衡量变量之间的线性或非线性关系。缺点:相关性并不能说明因果关系,只是指示变量之间的关联程度。
异常值检测 (Outlier Detection)异常值检测用于识别在数据集中具有异常特征的数据点。常用的异常值检测方法包括基于统计学的Z-score方法、3σ原则箱线图方法和基于距离的方法(如DBSCAN)优点:可以帮助识别异常值,对于数据清洗和异常数据处理很有用。缺点:某些方法对于多维数据和高维数据的处理较为困难。
方差分析 (Analysis of Variance, ANOVA)方差分析用于比较两个或多个组之间的均值是否有显著差异。常用的方差分析方法包括单因素方差分析和多因素方差分析。优点:适用于比较多个组之间的差异,提供了有效的统计推断。缺点:对于非正态分布的数据和小样本容量可能不适用。
t检验 (t-Test)t检验用于比较两个组之间的均值是否有显著差异。常用的t检验方法包括独立样本t检验和配对样本t检验。优点:简单易用,适用于小样本数据。缺点:对于非正态分布的数据可能不准确,对异常值敏感。
卡方检验 (Chi-Square Test)卡方检验用于比较两个或多个分类变量之间的关联性。常用的卡方检验方法包括卡方独立性检验和卡方拟合度检验。优点:适用于分类数据的统计推断,用于检验观察频数与期望频数之间的差异。缺点:对于样本量较小或期望频数较低的情况可能不准确。
平稳性检验(Stationarity Test)用于检验时间序列数据是否具有平稳性的统计检验方法。平稳性是指时间序列的统计特性在不同时间段上保持不变。优点:可以判断时间序列数据是否具有平稳性,为后续时间序列分析提供基础。
缺点:不同的平稳性检验方法可能会得出不同的结果,需要综合考虑多个检验方法。
白噪声检验(White Noise Test)用于检验时间序列数据是否符合白噪声过程的统计检验方法。白噪声是指具有相互独立且均值为零的随机变量序列,没有序列之间的相关性。优点:可以检验时间序列数据是否具有随机性和独立性,对于时间序列分析的合理性很重要。
缺点:不同的白噪声检验方法可能会得出不同的结果,需要综合考虑多个检验方法。

卡方检验

卡方检验(Chi-square test)是由卡方分布(Chi-square distribution)衍生而来的一种统计方法。卡方分布最初由英国统计学家卡尔·皮尔逊(Karl Pearson)于1900年提出,提供了一种有效的方法来分析和解释离散型数据的关联性,帮助研究人员得出结论和推断。卡方检验是基于卡方分布的概念发展而来的,于此后的统计学和应用领域被广泛使用,例如医学研究、社会科学调查、市场研究等。

卡方统计量的计算基于观察频数与期望频数的差异程度,差异越大,卡方统计量的值就越大。卡方统计量的分布与自由度有关,可以使用卡方分布表或统计软件来确定其对应的显著性水平。通常情况下,我们选择一个显著性水平(例如0.05),如果计算得到的卡方统计量大于对应自由度和显著性水平的临界值,就拒绝原假设,认为观察到的频数与期望频数之间存在显著差异,即变量之间存在关联或独立性被拒绝。

假设我们有一个二维列联表(contingency table),其中包含了两个分类变量的观测频数。表格如下所示:

变量B=0变量B=1总计
变量A=0aba+b
变量A=1cdc+d
总计a+cb+da+b+c+d

其中,a、b、c、d 分别表示四个格子中的观测频数。

卡方检验的原假设(null hypothesis)是:变量A和变量B是相互独立的,即它们之间没有显著关联。备择假设(alternative hypothesis)是:变量A和变量B是相关联的,即它们之间存在显著关联。

卡方检验的步骤如下:

步骤 1:计算期望频数(expected frequencies)

首先,我们需要计算每个单元格的期望频数,即在假设变量A和变量B是独立的情况下,每个单元格中的预期频数。期望频数的计算公式如下:

卡方检验中的期望频数是根据原假设(变量A和变量B是独立的)(这很重要!!)来计算的。预期频数的计算采用了边际总频数和行、列边际频数的乘积。

假设变量A和变量B是独立的,那么变量A的取值(0或1)与变量B的取值(0或1)之间应该没有关联。因此,我们可以将总体中相应的比例应用于每个格子中的边际频数。

考虑到每个格子中的边际频数,我们可以计算期望频数 E i j E_{ij} Eij,其中 i 表示行索引,j 表示列索引:

E i j = ( a + b ) ( a + c ) a + b + c + d E_{ij} = \frac{{(a+b)(a+c)}}{{a+b+c+d}} Eij=a+b+c+d(a+b)(a+c)

这个计算公式的推导如下:

  1. 首先,我们考虑变量A的取值为0的情况。在这种情况下,变量A=0的概率是 a + b a + b + c + d \frac{{a+b}}{{a+b+c+d}} a+b+c+da+b(a+b 是变量A=0的边际频数,a+b+c+d 是总体的边际频数)。同样地,变量B=0的概率是 a + c a + b + c + d \frac{{a+c}}{{a+b+c+d}} a+b+c+da+c。由于我们假设变量A和变量B是独立的,我们可以将这两个概率相乘得到变量A=0且变量B=0的联合概率: ( a + b ) ( a + c ) ( a + b + c + d ) 2 \frac{{(a+b)(a+c)}}{{(a+b+c+d)^2}} (a+b+c+d)2(a+b)(a+c)
  2. 接下来,我们将联合概率乘以总体的边际频数 ( a + b + c + d ) (a+b+c+d) (a+b+c+d),以获得变量A=0且变量B=0的期望频数 E 00 E_{00} E00。因此,我们得到了公式中的分子部分: ( a + b ) ( a + c ) a + b + c + d \frac{{(a+b)(a+c)}}{{a+b+c+d}} a+b+c+d(a+b)(a+c)。类似地,我们可以推导出其他格子的期望频数。

这样,我们就得到了卡方检验中期望频数的计算公式。

需要注意的是,期望频数是在原假设下计算的,假设变量A和变量B是独立的。如果观测频数与期望频数之间存在显著差异,那么我们将拒绝原假设,认为变量A和变量B之间存在显著关联。

E i j = ( a + b ) ( a + c ) a + b + c + d E_{ij} = \frac{{(a+b)(a+c)}}{{a+b+c+d}} Eij=a+b+c+d(a+b)(a+c)

其中, E i j E_{ij} Eij 表示第 i 行第 j 列单元格的期望频数。(这里的i = 1, j = 1)

步骤 2:计算卡方统计量(chi-square statistic)

接下来,我们计算卡方统计量,用于衡量观测频数与期望频数之间的差异。卡方统计量的计算公式如下:

χ 2 = ∑ ( O i j − E i j ) 2 E i j \chi^2 = \sum \frac{{(O_{ij} - E_{ij})^2}}{{E_{ij}}} χ2=Eij(OijEij)2

其中, χ 2 \chi^2 χ2 表示卡方统计量, O i j O_{ij} Oij 表示第 i 行第 j 列单元格的观测频数, E i j E_{ij} Eij 表示第 i 行第 j 列单元格的期望频数。

步骤 3:计算自由度(degrees of freedom)

自由度是卡方统计量中可以自由变动的观测值的数量。在卡方检验中,自由度的计算公式如下(以在卡方分布表中查找对应的临界值或计算 p 值):

自由度的公式是根据卡方检验中的二维列联表的维度来确定的。在二维列联表中,行和列的数量分别为 r 和 c。

假设我们有一个 r 行 c 列的二维列联表。自由度的计算基于以下原则:

  • 在行方向上,我们可以自由选择每个单元格的观测频数,但是要满足行边际频数。
  • 在列方向上,我们也可以自由选择每个单元格的观测频数,但是同样要满足列边际频数。

因此,对于每个单元格,我们有一个自由度。总的自由度等于所有单元格的自由度之和。

在二维列联表中,行和列的边际频数已知,所以我们只需要确定每个单元格的观测频数。一旦我们选择了 r 行 c 列个单元格的观测频数,其他单元格的观测频数就会被固定。

为了保持边际频数不变,我们需要根据边际频数的限制条件来选择观测频数。对于二维列联表,有两个限制条件,一个是行边际频数,另一个是列边际频数。

考虑到这些限制条件,我们可以自由选择的单元格的个数为 (r-1) × (c-1)。这是因为,一旦我们选择了其中一个单元格的观测频数,改行列的其他单元格的观测频数将根据限制条件被固定。

d f = ( r − 1 ) ( c − 1 ) df = (r-1)(c-1) df=(r1)(c1)

其中, r r r 表示行数, c c c 表示列数。

步骤 4:计算 p 值(p-value)

我们根据卡方统计量和自由度计算 p 值。一种常用的方法是将卡方统计量与自由度对应的卡方分布进行比较,并计算出落入更极端区域的概率。这可以通过查找卡方分布表或使用统计软件进行计算。在实际应用中,通常使用软件包(如Python的SciPy库或R语言中的stats包)来计算 p 值。

根据给定的显著性水平(significance level),通常选择 p 值与显著性水平进行比较。如果 p 值小于显著性水平,通常为0.05,我们可以拒绝原假设,认为变量A和变量B之间存在显著关联;否则,我们接受原假设,认为变量A和变量B之间没有显著关联。

下面则是一个真实简单的案例来说明卡方检验的流程和原理:

假设我们想研究男性和女性之间是否存在喜欢不同类型电影的差异。我们随机选择了100个男性和100个女性,并记录了他们对三种类型电影的喜好(A类、B类和C类)。

观察到的频数如下:

          A类    B类    C类
男性      30     35     35
女性      45     25     30

首先,我们需要建立假设。在这里,我们的原假设是“男性和女性对不同类型电影的喜好没有差异”。备择假设是“男性和女性对不同类型电影的喜好有差异”。

接下来,我们计算期望频数。期望频数是基于原假设,假设男性和女性对电影类型的喜好是独立的。我们可以通过公式计算期望频数如下:

          A类    B类    C类
男性      37.5   32.5   30
女性      37.5   32.5   30

然后,我们计算卡方统计量。卡方统计量衡量了观察频数与期望频数之间的差异,我们可以计算出卡方统计量为:

卡方统计量 = [(30-37.5)²/37.5] + [(35-32.5)²/32.5] + [(35-30)²/30] + [(45-37.5)²/37.5] + [(25-32.5)²/32.5] + [(30-30)²/30] ≈ 6.8

最后,我们需要确定卡方统计量的显著性水平。我们使用自由度来确定显著性水平,在这个例子中,自由度为 (2-1) × (3-1) = 2。

我们可以使用卡方分布表或统计软件来查找卡方统计量对应的显著性水平。假设我们使用了显著性水平为0.05,自由度为2,我们发现卡方统计量的临界值为5.99。由于6.8 > 5.99,我们可以拒绝原假设,接受备择假设,即男性和女性对不同类型电影的喜好存在差异。

临界值是在显著性水平下拒绝原假设的界限。如果观察到的卡方统计量大于临界值,我们可以拒绝原假设。

在这里插入图片描述

						  🤞到这里,如果还有什么疑问🤞🎩欢迎私信博主问题哦,博主会尽自己能力为你解答疑惑的!🎩🥳如果对你有帮助,你的赞是对博主最大的支持!!🥳

这篇关于【机器学习 | 假设检验系列】假设检验系列—卡方检验(详细案例,数学公式原理推导),最常被忽视得假设检验确定不来看看?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

MySQL 中的 JSON 查询案例详解

《MySQL中的JSON查询案例详解》:本文主要介绍MySQL的JSON查询的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录mysql 的 jsON 路径格式基本结构路径组件详解特殊语法元素实际示例简单路径复杂路径简写操作符注意MySQL 的 J

Golang HashMap实现原理解析

《GolangHashMap实现原理解析》HashMap是一种基于哈希表实现的键值对存储结构,它通过哈希函数将键映射到数组的索引位置,支持高效的插入、查找和删除操作,:本文主要介绍GolangH... 目录HashMap是一种基于哈希表实现的键值对存储结构,它通过哈希函数将键映射到数组的索引位置,支持

Java学习手册之Filter和Listener使用方法

《Java学习手册之Filter和Listener使用方法》:本文主要介绍Java学习手册之Filter和Listener使用方法的相关资料,Filter是一种拦截器,可以在请求到达Servl... 目录一、Filter(过滤器)1. Filter 的工作原理2. Filter 的配置与使用二、Listen

Python Transformers库(NLP处理库)案例代码讲解

《PythonTransformers库(NLP处理库)案例代码讲解》本文介绍transformers库的全面讲解,包含基础知识、高级用法、案例代码及学习路径,内容经过组织,适合不同阶段的学习者,对... 目录一、基础知识1. Transformers 库简介2. 安装与环境配置3. 快速上手示例二、核心模

如何为Yarn配置国内源的详细教程

《如何为Yarn配置国内源的详细教程》在使用Yarn进行项目开发时,由于网络原因,直接使用官方源可能会导致下载速度慢或连接失败,配置国内源可以显著提高包的下载速度和稳定性,本文将详细介绍如何为Yarn... 目录一、查询当前使用的镜像源二、设置国内源1. 设置为淘宝镜像源2. 设置为其他国内源三、还原为官方

最详细安装 PostgreSQL方法及常见问题解决

《最详细安装PostgreSQL方法及常见问题解决》:本文主要介绍最详细安装PostgreSQL方法及常见问题解决,介绍了在Windows系统上安装PostgreSQL及Linux系统上安装Po... 目录一、在 Windows 系统上安装 PostgreSQL1. 下载 PostgreSQL 安装包2.

MySql match against工具详细用法

《MySqlmatchagainst工具详细用法》在MySQL中,MATCH……AGAINST是全文索引(Full-Textindex)的查询语法,它允许你对文本进行高效的全文搜素,支持自然语言搜... 目录一、全文索引的基本概念二、创建全文索引三、自然语言搜索四、布尔搜索五、相关性排序六、全文索引的限制七

python中各种常见文件的读写操作与类型转换详细指南

《python中各种常见文件的读写操作与类型转换详细指南》这篇文章主要为大家详细介绍了python中各种常见文件(txt,xls,csv,sql,二进制文件)的读写操作与类型转换,感兴趣的小伙伴可以跟... 目录1.文件txt读写标准用法1.1写入文件1.2读取文件2. 二进制文件读取3. 大文件读取3.1

Linux内核参数配置与验证详细指南

《Linux内核参数配置与验证详细指南》在Linux系统运维和性能优化中,内核参数(sysctl)的配置至关重要,本文主要来聊聊如何配置与验证这些Linux内核参数,希望对大家有一定的帮助... 目录1. 引言2. 内核参数的作用3. 如何设置内核参数3.1 临时设置(重启失效)3.2 永久设置(重启仍生效

Spring Boot循环依赖原理、解决方案与最佳实践(全解析)

《SpringBoot循环依赖原理、解决方案与最佳实践(全解析)》循环依赖指两个或多个Bean相互直接或间接引用,形成闭环依赖关系,:本文主要介绍SpringBoot循环依赖原理、解决方案与最... 目录一、循环依赖的本质与危害1.1 什么是循环依赖?1.2 核心危害二、Spring的三级缓存机制2.1 三