【机器学习 | 假设检验系列】假设检验系列—卡方检验(详细案例,数学公式原理推导),最常被忽视得假设检验确定不来看看?
🤵?♂? 个人主页: @AI_magician
📡主页地址: 作者简介:CSDN内容合伙人,全栈领域优质创作者。
👨?💻景愿:旨在于能和更多的热爱计算机的伙伴一起成长!!🐱?🏍
摘要: 本系列旨在普及那些深度学习路上必经的核心概念,【机器学习 | 假设检验系列】假设检验系列—卡方检验(详细案例,数学公式原理推导),最常被忽视得假设检验确定不来看看?
该文章收录专栏
[?— 《深入解析机器学习:从原理到应用的全面指南》 —?]
假设检验(Hypothesis Testing)
假设检验(Hypothesis Testing)是狭义数据分析中的一种常用方法,用于检验关于总体参数的假设。它可以帮助我们判断样本数据与某个假设之间是否存在显著差异。假设检验通常涉及以下步骤:
-
建立原假设(Null Hypothesis)和备择假设(Alternative Hypothesis):原假设是关于总体参数的某种假设,备择假设是与原假设相对立的假设。
-
选择适当的假设检验方法:根据研究问题和数据类型,选择适合的假设检验方法,例如t检验、卡方检验、ANOVA等。
-
计算检验统计量:根据所选的假设检验方法,计算得到相应的检验统计量。
-
确定显著性水平:设定显著性水平(例如0.05),表示拒绝原假设的阈值。
p 值(p-value)是用于衡量统计假设检验结果的一个概率指标(可以理解为是一个用来衡量观察到的数据与原假设之间的矛盾程度的指标)。它表示观察到的数据或更极端情况下,基于原假设(零假设)成立的情况下发生的概率。
-
进行假设检验:根据检验统计量和显著性水平,判断样本数据是否足够证据支持或拒绝原假设。
-
得出结论:根据假设检验的结果,得出关于总体参数的结论,并进行解释。
假设检验可以帮助我们验证关于总体参数的假设,从而在数据分析过程中提供可靠的推断和结论。因此,它可以被视为狭义数据分析的一部分。
名称 | 介绍 | 优缺点 |
---|---|---|
正态性检验 (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=0 | a | b | a+b |
变量A=1 | c | d | c+d |
总计 | a+c | b+d | a+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)?
这个计算公式的推导如下:
- 首先,我们考虑变量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)?。
- 接下来,我们将联合概率乘以总体的边际频数 ( 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?(Oij??Eij?)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=(r?1)(c?1)
其中, 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)2/37.5] + [(35-32.5)2/32.5] + [(35-30)2/30] + [(45-37.5)2/37.5] + [(25-32.5)2/32.5] + [(30-30)2/30] ≈ 6.8
最后,我们需要确定卡方统计量的显著性水平。我们使用自由度来确定显著性水平,在这个例子中,自由度为 (2-1) × (3-1) = 2。
我们可以使用卡方分布表或统计软件来查找卡方统计量对应的显著性水平。假设我们使用了显著性水平为0.05,自由度为2,我们发现卡方统计量的临界值为5.99。由于6.8 > 5.99,我们可以拒绝原假设,接受备择假设,即男性和女性对不同类型电影的喜好存在差异。
临界值是在显著性水平下拒绝原假设的界限。如果观察到的卡方统计量大于临界值,我们可以拒绝原假设。
🤞到这里,如果还有什么疑问🤞
🎩欢迎私信博主问题哦,博主会尽自己能力为你解答疑惑的!🎩
🥳如果对你有帮助,你的赞是对博主最大的支持!!🥳
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!