
R语言-组间差异的非参数检验
7.5 组间差异的非参数检验
如果数据无法满足t检验或ANOVA的参数假设,可以转而使用非参数方法。举例来说,若结果变量在本质上就严重偏倚或呈现有序关系,那么你可能会希望使用本节中的方法。
7.5.1 两组的比较
若两组数据独立,可以使用Wilcoxon秩和检验(更广为人知的名字是Mann–Whitney U检验)来评估观测是否是从相同的概率分布中抽得的(即,在一个总体中获得更高得分的概率是否比另一个总体要大)。调用格式为:
其中的y是数值型变量,而x是一个二分变量。调用格式或为:
其中的y1和y2为各组的结果变量。
可选参数data的取值为一个包含了这些变量的矩阵或数据框。
默认进行一个双侧检验。你可以添加参数exact来进行精确检验,指定alternative="less"或alternative="greater"进行有方向的检验。
如果你使用Mann–Whitney U检验回答上一节中关于监禁率的问题,将得到这些结果:
你可以再次拒绝南方各州和非南方各州监禁率相同的假设(p < 0.001)。Wilcoxon符号秩检验是非独立样本t检验的一种非参数替代方法。它适用于两组成对数据和无法保证正态性假设的情境。调用格式与Mann–Whitney U检验完全相同,不过还可以添加参数paired=TRUE。让我们用它解答上一节中的失业率问题:
你再次得到了与配对t检验相同的结论。在本例中,含参的t检验和与其作用相同的非参数检验得到了相同的结论。当t检验的假设合理时,参数检验的功效更强(更容易发现存在的差异)。而非参数检验在假设非常不合理时(如对于等级有序数据)更适用。
7.5.2 多于两组的比较
在要比较的组数多于两个时,必须转而寻求其他方法。考虑7.4节中的state.x77数据集。它包含了美国各州的人口、收入、文盲率、预期寿命、谋杀率和高中毕业率数据。如果你想比较美国四个地区(东北部、南部、中北部和西部)的文盲率,应该怎么做呢?这称为单向设计(one-way design),我们可以使用参数或非参数的方法来解决这个问题。如果无法满足ANOVA设计的假设,那么可以使用非参数方法来评估组间的差异。如果各组独立,则Kruskal—Wallis检验将是一种实用的方法。如果各组不独立(如重复测量设计或随机区组设计),那么Friedman检验会更合适。
Kruskal–Wallis检验的调用格式为:
其中的y是一个数值型结果变量, A是一个拥有两个或更多水平的分组变量(grouping variable)。(若有两个水平,则它与Mann–Whitney U检验等价。)而Friedman检验的调用格式为:
其中的y是数值型结果变量, A是一个分组变量, 而B是一个用以认定匹配观测的区组变量 (blocking variable) 。在以上两例中, data皆为可选参数,它指定了包含这些变量的矩阵或数据框。
让我们利用Kruskal–Wallis检验回答文盲率的问题。首先,你必须将地区的名称添加到数据集中。这些信息包含在随R基础安装分发的state.region数据集中。
现在就可以进行检验了:
显著性检验的结果意味着美国四个地区的文盲率各不相同(p
<0.001)。虽然你可以拒绝不存在差异的原假设,但这个检验并没有告诉你哪些地区显著地与其他地区不同。要回答这个问题,你可以使用Mann–Whitney
U检验每次比较两组数据。一种更为优雅的方法是在控制犯第一类错误的概率(发现一个事实上并不存在的差异的概率)的前提下,执行可以同步进行的多组比较,这样可以直接完成所有组之间的成对比较。
npmc包提供了所需要的非参数多组比较程序。
说实话,我将本章标题中基本的定义拓展了不止一点点,但由于在这里讲非常合适,所以希望你能够容忍我的做法。第一步,请先安装npmc包。此包中的npmc()函数接受的输入为一个两列的数据框,其中一列名为var(因变量),另一列名为class(分组变量)。代码清单7-20中包含了可以用来完成计算的代码。
调用了npmc的语句生成了六对统计比较结果(东北部对南部、东北部对中北部、东北部对西部、南部对中北部、南部对西部,以及中北部对西部) 。可以从双侧的p值(p.value.2s)看出南部与其他三个地区显著不同,而其他三个地区之间并没有什么不同。在 处可以看到南部的文盲率中间值更高。注意, npmc在计算积分时使用了随机数,所以每次计算的结果会有轻微的不同。
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
本次活动市场价2000元,现面向会员免费开放,会员朋友更可以邀请一位非会员免费参加。 【活动目标】 本课程 ...
2025-07-28CDA 数据分析师必备技能全解析 在数据驱动决策的时代,CDA 数据分析师作为连接数据与业务价值的桥梁,需要具备多元化的技能体系 ...
2025-07-28PowerBI 添加索引列全攻略 在使用 PowerBI 进行数据处理与分析时,添加索引列是一项极为实用的操作技巧。索引列能为数据表中的每 ...
2025-07-28t 检验与 Wilcoxon 检验:数据差异分析的两大核心方法 在数据分析的广阔领域中,判断两组或多组数据之间是否存在显著差异是一项 ...
2025-07-28PyTorch 核心机制:损失函数与反向传播如何驱动模型进化 在深度学习的世界里,模型从 “一无所知” 到 “精准预测” 的蜕变,离 ...
2025-07-252025 年 CDA 数据分析师考纲焕新,引领行业人才新标准 在数字化浪潮奔涌向前的当下,数据已成为驱动各行业发展的核心要素。作为 ...
2025-07-25从数据到决策:CDA 数据分析师如何重塑职场竞争力与行业价值 在数字经济席卷全球的今天,数据已从 “辅助工具” 升级为 “核心资 ...
2025-07-25用 Power BI 制作地图热力图:基于经纬度数据的实践指南 在数据可视化领域,地图热力图凭借直观呈现地理数据分布密度的优势,成 ...
2025-07-24解析 insert into select 是否会锁表:原理、场景与应对策略 在数据库操作中,insert into select 是一种常用的批量数据插入语句 ...
2025-07-24CDA 数据分析师的工作范围解析 在数字化时代的浪潮下,数据已成为企业发展的核心资产之一。CDA(Certified Data Analyst)数据分 ...
2025-07-24从 CDA LEVEL II 考试题型看 Python 数据分析要点 在数据科学领域蓬勃发展的当下,CDA(Certified Data Analyst)认证成为众多从 ...
2025-07-23用 Python 开启数据分析之旅:从基础到实践的完整指南 在数据驱动决策的时代,数据分析已成为各行业不可或缺的核心能力。而 Pyt ...
2025-07-23鸢尾花判别分析:机器学习中的经典实践案例 在机器学习的世界里,有一个经典的数据集如同引路明灯,为无数初学者打开了模式识别 ...
2025-07-23解析 response.text 与 response.content 的核心区别 在网络数据请求与处理的场景中,开发者经常需要从服务器返回的响应中提取数 ...
2025-07-22解析神经网络中 Softmax 函数的核心作用 在神经网络的发展历程中,激活函数扮演着至关重要的角色,它们为网络赋予了非线性能力, ...
2025-07-22CDA数据分析师证书考取全攻略 一、了解 CDA 数据分析师认证 CDA 数据分析师认证是一套科学化、专业化、国际化的人才考核标准, ...
2025-07-22左偏态分布转正态分布:方法、原理与实践 左偏态分布转正态分布:方法、原理与实践 在统计分析、数据建模和科学研究中,正态分 ...
2025-07-22你是不是也经常刷到别人涨粉百万、带货千万,心里痒痒的,想着“我也试试”,结果三个月过去,粉丝不到1000,播放量惨不忍睹? ...
2025-07-21我是陈辉,一个创业十多年的企业主,前半段人生和“文字”紧紧绑在一起。从广告公司文案到品牌策划,再到自己开策划机构,我靠 ...
2025-07-21CDA 数据分析师的职业生涯规划:从入门到卓越的成长之路 在数字经济蓬勃发展的当下,数据已成为企业核心竞争力的重要来源,而 CD ...
2025-07-21