R语言检验独立性:卡方检验(Chi-square test)和费舍尔Fisher精确检验分析案例报告

简介: R语言检验独立性:卡方检验(Chi-square test)和费舍尔Fisher精确检验分析案例报告

统计检验最常见的领域之一是检验列联表中的独立性。在这篇文章中,我将展示如何计算列联表,我将在列联表中引入两个流行的检验:卡方检验Fisher精确检验

什么是列联表?

列联表提供关于两个分类变量的测量的整数计数。最简单的列联表是一个2 × 2 频率表,由两个变量产生,每个变量有两个级别:

组/观察 观察1 观察2
第1组 ñ1 ,1 ñ1 ,2
第2组 ñ2 ,1 ñ2 ,2

给定这样一个表格,问题是_第1组_是否表现出与_第2组_相比的观测频率。这些组代表因变量,因为它们依赖于自变量的观察。请注意,列联表必须是一种常见的误解2 × 2; 它们可以具有任意数量的维度,具体取决于变量显示的级别数。尽管如此,应避免对具有多个维度的列联表进行统计检验,因为除其他原因外,解释结果将具有挑战性。

数据集

要研究列联表的检验,我们将使用_warpbreaks_数据集:

data(warpbreaks)

head(warpbreaks)

##   breaks wool tension

## 1     26    A       L

## 2     30    A       L

## 3     54    A       L

## 4     25    A       L

## 5     70    A       L

## 6     52    A       L

这是一个包含来自纺织行业的三个变量的数据集:_断_描述了羊毛拉断的次数  描述了经过检验的羊毛类型 张力∈ { L ,M,H}给出了施加在螺纹上的张力(低,中或高)。数据集中的每一行表示单个织机的测量值。为了解释不同织机的可变性,对_羊毛_和_张力的_每种组合进行了9次测量,数据集总共包含9 ⋅ 2 ⋅ 3 = 549⋅2⋅3=54 观察结果。

分析目标

我们想确定一种类型的羊毛在不同程度的拉紧情况下是否优于另一种羊毛。为了研究我们是否可以找到一些差异的证据,让我们来看看数据:

为了研究断裂数的差异,让我们可视化数据:

从图中我们可以看出,总体而言,羊毛B与较少的断裂相关联。羊毛A似乎特别低劣,因为低张力。

转换为列联表

为了获得列联表,我们首先需要总结两种类型的羊毛和三种类型的张力的不同织机的断裂。

##   wool tension breaks

## 1    A       L    401

## 2    A       M    216

## 3    A       H    221

## 4    B       L    254

## 5    B       M    259

## 6    B       H    169

然后我们使用xtabs_交叉表_函数来生成列联表:

##     tension

## wool   L   M   H

##    A 401 216 221

##    B 254 259 169

现在,df我们有了应用统计检验所需的结构。

统计检验

用于确定来自不同组的测量值是否独立的两种最常见的检验是卡方检验(χ2检验)和费舍尔的精确检验。请注意,如果测量结果配对,则应使用McNemar检验(例如,可以识别单个织机)。

皮尔逊的卡方检验

该 χ2test是一种非参数检验,可应用于具有各种维度的列联表。检验名称源自χ2分布,即独立标准正态变量的平方分布。这是检验统计的分布χ2检验

## \[1\] 7.900708e-07

由于p值小于0.05,我们可以在5%显着性水平上拒绝检验的零假设(断裂的频率独立于羊毛)。根据df,可以声称羊毛B比羊毛A明显更好(相对于断裂)。

Pearson残差

另一种方法是考虑检验的卡方值。该chisq.test函数提供卡方值的Pearson残差(根) 。与由平方差异产生的卡方值相反,残差不是平方的。因此,残差反映了观测值超过预期值(正值)或低于预期值(负值)的程度。在我们的数据集中,正值表示比预期更多的断裂,而负值表示更少的断点:

##     tension

## wool          L          M          H

##    A  2.0990516 -2.8348433  0.4082867

##    B -2.3267672  3.1423813 -0.4525797

残差表明,与羊毛A相比,羊毛B的低张力和高张力断裂比预期的要少。然而,对于中等张力,羊毛B比预期的断裂更多。再次,我们发现,整体羊毛B优于羊毛A.残差的值也表明羊毛B对于低张力(残差为2.1),高张力(0.41)和中等张力严重( - 2.8)。然而,残差有助于我们识别羊毛B的问题:它对中等张力的表现不佳。这将如何促进进一步发展?为了获得在所有张力水平下表现良好的羊毛,我们需要专注于改善羊毛B的中等张力。为此,我们可以考虑使羊毛A在中等张力下表现更好的特性。

费舍尔Fisher精确检验

Fisher的精确检验是用于检验独立性的非参数检验,通常仅用于检验2 × 2列联表。作为精确显着性检验,Fisher检验符合所有假设,在此基础上定义检验统计量的分布。实际上,这意味着错误拒绝率等于检验的显着性水平,对于近似检验,例如χ2检验。简而言之,Fisher的精确检验依赖于使用二项式系数根据超几何分布计算p值。

由于计算的因子可能变得非常大,Fisher精确检验可能不适用于大样本量。

请注意,无法指定检验的替代方法,df因为优势比(表示效果大小)仅定义为2 × 2 矩阵。

我们仍然可以执行Fisher精确检验以获得p值:

## \[1\] 8.162421e-07

得到的p值类似于从中获得的p值 χ2 检验并得出相同的结论:我们可以拒绝零假设,即羊毛的类型与不同应力水平下观察到的断裂次数无关。

转换为2乘2矩阵

为了指定备选假设并获得优势比,我们可以计算三者的检验 2 × 2可以构造的矩阵df

由于替代方案设置得_更大_,这意味着我们正在进行单尾检验,其中另一种假设是羊毛A与羊毛B的断裂次数相关(即我们预期O R > 1)。通过执行检验2 × 2表格,我们也获得了解释性:我们现在可以区分羊毛不同的具体条件。然而,在解释p值之前,我们需要纠正多个假设检验。在这种情况下,我们进行了三次检验。在这里,我们只需将0.05的初始显着性水平调整为0.053,根据Bonferroni方法。根据调整后的阈值,以下检验显着:

## \[1\] "L vs others"

这一发现表明,如果力较轻,羊毛B仅显着优于羊毛A. 请注意,我们也可以采用构建方法2 × 22 矩阵 χ2检验。随着χ2 然而,检验并不是必要的,因为我们的分析基于残差。

摘要:卡方对费舍尔的精确检验

以下是两个检验的属性摘要:

标准 卡方检验 费舍尔的精确检验
最小样本量
准确性 近似 精确
列联表 任意维度 通常为2x2
解释 皮尔逊残差 优势比

通常,Fisher精确检验优于卡方检验,因为它是一种精确检验。如果单个观察结果很少(例如小于10),则应特别避免卡方检验。由于Fisher的精确检验对于大样本量和精确度可能在计算上是不可行的,χ2 检验随着样本数量的增加而增加 χ2在这种情况下,检验是合适的替代。另一个优点了χ2 检验是它更适合维数超过的列联表 2 × 2。

非常感谢您阅读本文,有任何问题请在下面留言!

相关文章
|
3月前
|
数据采集 机器学习/深度学习 数据可视化
R语言从数据到决策:R语言在商业分析中的实践
【9月更文挑战第1天】R语言在商业分析中的应用广泛而深入,从数据收集、预处理、分析到预测模型构建和决策支持,R语言都提供了强大的工具和功能。通过学习和掌握R语言在商业分析中的实践应用,我们可以更好地利用数据驱动企业决策,提升企业的竞争力和盈利能力。未来,随着大数据和人工智能技术的不断发展,R语言在商业分析领域的应用将更加广泛和深入,为企业带来更多的机遇和挑战。
|
2月前
|
数据挖掘 C语言 C++
R语言是一种强大的统计分析工具,提供了丰富的函数和包用于时间序列分析。
【10月更文挑战第21天】时间序列分析是一种重要的数据分析方法,广泛应用于经济学、金融学、气象学、生态学等领域。R语言是一种强大的统计分析工具,提供了丰富的函数和包用于时间序列分析。本文将介绍使用R语言进行时间序列分析的基本概念、方法和实例,帮助读者掌握R语言在时间序列分析中的应用。
53 3
|
3月前
|
数据采集 数据可视化 数据挖掘
R语言在金融数据分析中的深度应用:探索数据背后的市场智慧
【9月更文挑战第1天】R语言在金融数据分析中展现出了强大的功能和广泛的应用前景。通过丰富的数据处理函数、强大的统计分析功能和优秀的可视化效果,R语言能够帮助金融机构深入挖掘数据价值,洞察市场动态。未来,随着金融数据的不断积累和技术的不断进步,R语言在金融数据分析中的应用将更加广泛和深入。
|
4月前
|
机器学习/深度学习 数据采集 数据可视化
R语言在数据科学中的应用实例:探索与预测分析
【8月更文挑战第31天】通过上述实例,我们展示了R语言在数据科学中的强大应用。从数据准备、探索、预处理到建模与预测,R语言提供了完整的解决方案和丰富的工具集。当然,数据科学远不止于此,随着技术的不断发展和业务需求的不断变化,我们需要不断学习和探索新的方法和工具,以更好地应对挑战,挖掘数据的潜在价值。 未来,随着大数据和人工智能技术的普及,R语言在数据科学领域的应用将更加广泛和深入。我们期待看到更多创新的应用实例,为各行各业的发展注入新的动力。
|
4月前
|
数据采集 存储 数据可视化
R语言时间序列分析:处理与建模时间序列数据的深度探索
【8月更文挑战第31天】R语言作为一款功能强大的数据分析工具,为处理时间序列数据提供了丰富的函数和包。从数据读取、预处理、建模到可视化,R语言都提供了灵活且强大的解决方案。然而,时间序列数据的处理和分析是一个复杂的过程,需要结合具体的应用场景和需求来选择合适的方法和模型。希望本文能为读者在R语言中进行时间序列分析提供一些有益的参考和启示。
|
7月前
|
数据可视化 数据挖掘 API
【R语言实战】聚类分析及可视化
【R语言实战】聚类分析及可视化
|
7月前
|
机器学习/深度学习 数据可视化
R语言逻辑回归logistic模型ROC曲线可视化分析2例:麻醉剂用量影响、汽车购买行为2
R语言逻辑回归logistic模型ROC曲线可视化分析2例:麻醉剂用量影响、汽车购买行为
|
4月前
|
资源调度 数据挖掘
R语言回归分析:线性回归模型的构建与评估
【8月更文挑战第31天】线性回归模型是统计分析中一种重要且实用的工具,能够帮助我们理解和预测自变量与因变量之间的线性关系。在R语言中,我们可以轻松地构建和评估线性回归模型,从而对数据背后的关系进行深入的探索和分析。
|
4月前
|
机器学习/深度学习 数据采集
R语言逻辑回归、GAM、LDA、KNN、PCA主成分分类分析预测房价及交叉验证
上述介绍仅为简要概述,每个模型在实施时都需要仔细调整与优化。为了实现高度精确的预测,模型选择与调参是至关重要的步骤,并且交叉验证是提升模型稳健性的有效途径。在真实世界的房价预测问题中,可能还需要结合地域经济、市场趋势等宏观因素进行综合分析。
88 3
|
7月前
|
数据采集 数据可视化
利用R语言进行因子分析实战(数据+代码+可视化+详细分析)
利用R语言进行因子分析实战(数据+代码+可视化+详细分析)
下一篇
DataWorks