R语言方差分析

news2024/12/26 21:31:39

R中的方差分析

介绍用于比较独立组的不同类型的方差分析,包括:

  • 单因素方差分析:独立样本 t 检验的扩展,用于在存在两个以上组的情况下比较均值。这是方差分析检验的最简单情况,其中数据仅根据一个分组变量(也称为因子变量)组织成多个组。其他同义词是:1 方式方差分析、单因素方差分析和主体间方差分析。
  • 双向方差分析用于同时评估两个不同分组变量对连续结果变量的影响。其他同义词是:双因子设计、因子方差分析或双向主体间方差分析。
  • 三因素方差分析用于同时评估三个不同分组变量对连续结果变量的影响。其他同义词是:阶乘方差分析或三向主体间方差分析。

请注意,独立分组变量也称为主体间因子。双向和三向方差分析的主要目标分别是评估在解释连续结果变量时,两个和三个主体间因子之间是否存在统计学上显着的交互作用效应。

学习内容:

  • 计算和解释 R 中不同类型的方差分析,以比较独立组。
  • 检查方差分析检验假设
  • 执行事后测试,组之间的多个成对比较,以确定哪些组不同
  • 使用箱形图可视化数据,将方差分析和成对比较 p 值添加到图中

基本

假设我们有 3 组要比较,如下图所示。虚线表示组均值。该图显示了组均值(面板 A)和每个组内的变化(面板 B)之间的变异,也称为残差方差。

方差分析检验背后的想法非常简单:如果组间的平均变异与组内的平均变异相比足够大,那么您可以得出结论,至少一个组均值不等于其他组均值。

因此,可以通过比较两个方差估计来评估组均值之间的差异是否显著。这就是为什么该方法被称为方差分析,即使主要目标是比较组均值。
在这里插入图片描述
简而言之,方差分析检验背后的数学过程如下:

  • 计算组内方差,也称为残差方差。这告诉我们,每个参与者与他们自己的小组平均值有多大不同(见图,面板B)。
  • 计算组均值之间的方差(见图,面板 A)。
  • 将 F 统计量生成为 的比率。variance.between.groups/variance.within.groups
请注意,较低的 F 值 (F < 1) 表示所比较样本的均值之间没有显著差异。然而,较高的比率意味着与每个组中单个观测值的变异相比,组均值之间的变异彼此之间存在很大差异。

假设

方差分析检验对数据做出以下假设:

  • 观察的独立性。每个主题只能属于一个组。每个组中的观测值之间没有关系。不允许对相同的参与者重复采取措施。
  • 设计的任何单元中都没有明显的异常值
  • 常态。每个设计单元的数据应近似呈正态分布。
  • 方差的同质性。结果变量的方差在设计的每个单元格中应相等。
    在计算方差分析检验之前,您需要执行一些初步检验以检查是否满足假设。
请注意,如果不满足上述假设,则存在单因子方差分析的非参数替代方案(Kruskal-Wallis 检验)。不幸的是,没有双向和三向方差分析的非参数替代方案。因此,在不满足假设的情况下,您可以考虑对变换数据和非变换数据运行双向/三向方差分析,以查看是否存在任何有意义的差异。如果两个检验都得出相同的结论,则可能不会选择变换结果变量并继续对原始数据进行双向/三向方差分析。也可以使用 WRS2 R 包执行稳健的方差分析测试。无论您的选择如何,您都应该报告您在结果中做了什么。

先决条件

请确保具有以下 R 包:

  • tidyverse用于数据操作和可视化
  • ggpubr用于创建易于发布的绘图
  • rstatix提供管道友好型 R 函数,便于统计分析
  • datarium:包含本章所需的数据集
    加载所需的 R 包:
library(tidyverse)
library(ggpubr)
library(rstatix)

data("PlantGrowth")
set.seed(1234)
PlantGrowth %>% sample_n_by(group, size = 1)
#查看group有几个水平
levels(PlantGrowth$group)


单因素方差分析

检查假设

正态性假设

可以使用以下两种方法之一检查正态性假设:

  1. 分析方差分析模型残差以检查所有组的正态性。此方法更容易,并且当您有许多组或每个组的数据点很少时,它非常方便。
  2. 分别检查每个组的正态性。当只有几个组并且每个组有许多数据点时,可以使用此方法。

通过分析模型残差来检查正态性假设。使用QQ图和夏皮罗-威尔克正态性检验。QQ图绘制给定数据与正态分布之间的相关性。

# Build the linear model
model  <- lm(weight ~ group, data = PlantGrowth)
# Create a QQ plot of residuals
ggqqplot(residuals(model))

在这里插入图片描述

shapiro_test(residuals(model))
# A tibble: 1 × 3
  variable         statistic p.value
  <chr>                <dbl>   <dbl>
1 residuals(model)     0.966   0.438

在 QQ 图中,由于所有点都大致沿参考线落下,我们可以假设正态性。这一结论得到了夏皮罗-威尔克检验的支持。p 值不显著 (p = 0.13),因此我们可以假设正态性。

按组检查正态性假设。计算每个组级别的夏皮罗-威尔克测试。如果数据呈正态分布,则 p 值应大于 0.05。

> PlantGrowth %>%
+   group_by(group) %>%
+   shapiro_test(weight)
# A tibble: 3 × 4
  group variable statistic     p
  <fct> <chr>        <dbl> <dbl>
1 ctrl  weight       0.957 0.747
2 trt1  weight       0.930 0.452
3 trt2  weight       0.941 0.564

每组的评分呈正态分布(p > 0.05),由夏皮罗-威尔克的正态性检验评估。

请注意,如果您的样本数量大于 50,则首选正态 QQ 图,因为在较大的样本量下,夏皮罗-威尔克检验变得非常敏感,即使与正态性有轻微的偏差。
QQ图绘制给定数据与正态分布之间的相关性。为每个组级别创建QQ图:
在这里插入图片描述
对于每个像元,所有点都大致沿参考线落下。因此,我们可以假设数据的正态性。

方差一致性假设

  1. 残差与拟合图可用于检查方差的同质性
plot(model, 1)

在这里插入图片描述

  1. 也可以使用 Levene 检验来检查方差的同质性:
> PlantGrowth %>% levene_test(weight ~ group)
# A tibble: 1 × 4
    df1   df2 statistic     p
  <int> <int>     <dbl> <dbl>
1     2    27      1.12 0.341

从上面的输出中,我们可以看到 p 值> 0.05,这并不显著。这意味着,组间方差之间没有显著差异。因此,我们可以假设不同治疗组中方差的同质性。
在不满足方差齐性假设的情况下,您可以使用函数 welch_anova_test()[rstatix 包] 计算 Welch 单因素方差分析检验。此检验不需要假设方差相等。

计算

> res.aov <- PlantGrowth %>% anova_test(weight ~ group)
> res.aov
ANOVA Table (type II tests)

  Effect DFn DFd     F     p p<.05   ges
1  group   2  27 4.846 0.016     * 0.264

在上表中,该列对应于广义 eta 平方(效应大小)。它测量结果变量(此处为植物)中变异性的比例,可以用预测因子(此处为治疗)来解释。0.26(26%)的效应大小意味着26%的变化可以解释治疗条件。

注意:从上面的方差分析表中可以看出,组间存在显著差异(p = 0.016),用“*”突出显示,F(2, 27) = 4.85,p = 0.16,eta2[g] = 0.26。

  • F表示我们正在与 F 分布(F 检验)进行比较; 分别表示分子 (DFn) 和分母 (DFd) 中的自由度; 表示获得的 F 统计量值(2, 27)4.85
  • p指定 p 值
  • ges是广义效应大小(因子引起的变异量)

事后检查

显著的单因素方差分析通常由Tukey事后检验跟进,以在组之间进行多次成对比较。关键函数:tukey_hsd()

> # Pairwise comparisons
> pwc <- PlantGrowth %>% tukey_hsd(weight ~ group)
> pwc
# A tibble: 3 × 9
  term  group1 group2 null.value estimate conf.low conf.high p.adj p.adj.signif
 * <chr> <chr>  <chr>       <dbl>    <dbl>    <dbl>     <dbl> <dbl> <chr>       
1 group ctrl   trt1            0   -0.371   -1.06      0.320 0.391 ns          
2 group ctrl   trt2            0    0.494   -0.197     1.19  0.198 ns          
3 group trt1   trt2            0    0.865    0.174     1.56  0.012 *  

输出包含以下列:

  • estimate:估计两组均值之间的差异
  • conf.low, : 置信区间的下限和上限为 95%(默认值)conf.high
  • p.adj:多重比较调整后的 p 值。

注意:从输出中可以看出,只有 trt2 和 trt1 之间的差异是显著的(调整后的 p 值 = 0.012)。

报告

我们可以报告单因素方差分析的结果如下:
进行单因素方差分析以评估3个不同处理组的植物生长是否不同:ctr (n = 10),trt1(n = 10)和trt2(n = 10)。
数据以平均值 +/- 标准差表示。不同处理组间植物生长差异有统计学意义,F(2, 27) = 4.85, p = 0.016, 广义η平方 = 0.26.
与CTR组(1.4 +/- 66.0)相比,trt79组(5.03 +/- 0.58)的植物生长下降。与trt2和ctr组相比,trt5组(53.0 +/- 44.1)增加。
Tukey事后分析显示,从trt1到trt2(0.87,95%CI(0.17至1.56))的增加具有统计学意义(p = 0.012),但其他组间差异无统计学意义。

# Visualization: box plots with p-values
pwc <- pwc %>% add_xy_position(x = "group")
ggboxplot(PlantGrowth, x = "group", y = "weight") +
  stat_pvalue_manual(pwc, hide.ns = TRUE) +
  labs(
    subtitle = get_test_label(res.aov, detailed = TRUE),
    caption = get_pwc_label(pwc)
    )

在这里插入图片描述

报告

经典的单因素方差分析检验要求假设所有组的方差相等。在我们的示例中,方差假设的同质性结果很好:Levene 检验并不显著。
在违反方差假设的同质性的情况下,我们如何保存方差分析检验?

  • 韦尔奇单因子检验是在无法假设方差同质性的情况下(即 Levene 检验显著)的情况下替代标准单因素方差分析。
  • 在这种情况下,可以使用 Games-Howell 事后检验或成对 t 检验(不假设方差相等)来比较组差异的所有可能组合。
# Welch One way ANOVA test
res.aov2 <- PlantGrowth %>% welch_anova_test(weight ~ group)
# Pairwise comparisons (Games-Howell)
pwc2 <- PlantGrowth %>% games_howell_test(weight ~ group)
# Visualization: box plots with p-values
pwc2 <- pwc2 %>% add_xy_position(x = "group", step.increase = 1)
ggboxplot(PlantGrowth, x = "group", y = "weight") +
  stat_pvalue_manual(pwc2, hide.ns = TRUE) +
  labs(
    subtitle = get_test_label(res.aov2, detailed = TRUE),
    caption = get_pwc_label(pwc2)
    )

在这里插入图片描述
您还可以使用成对 t 检验执行成对比较,而不假设方差相等:

> pwc3 <- PlantGrowth %>% 
+   pairwise_t_test(
+     weight ~ group, pool.sd = FALSE,
+     p.adjust.method = "bonferroni"
+   )
> pwc3
# A tibble: 3 × 10
  .y.    group1 group2    n1    n2 statistic    df     p p.adj p.adj.signif
* <chr>  <chr>  <chr>  <int> <int>     <dbl> <dbl> <dbl> <dbl> <chr>       
1 weight ctrl   trt1      10    10      1.19  16.5 0.25  0.75  ns          
2 weight ctrl   trt2      10    10     -2.13  16.8 0.048 0.144 ns          
3 weight trt1   trt2      10    10     -3.01  14.1 0.009 0.028 *   

双因素方差分析

数据准备

我们将使用数据集 [datarium 包],其中包含按性别和教育水平组织的工作满意度分数。jobsatisfaction
在这项研究中,一项研究想要评估工作满意度分数之间是否存在显着的双向交互作用。当一个自变量对结果变量的影响取决于其他自变量的水平时,就会发生交互作用效应。如果交互作用效应不存在,则可以报告主效应。gendereducation_level
加载数据并按组随机检查一行:

五级标题
参考链接:

https://editor.csdn.net/md/?articleId=130452005

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/481049.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

垃圾回收器ZGC应用分析总结

目录 一、基本概述 二、基本关键技术知识总结 &#xff08;一&#xff09;三色标记法&#xff08;着色指针&#xff09; &#xff08;二&#xff09;读屏障 &#xff08;三&#xff09;多图映射 &#xff08;四&#xff09;简单场景说明ZGC并发 三、基本回收原理介绍 四…

PowerJob基本概念

本文来说下PowerJob的一些基本概念 文章目录 PowerJob概述PowerJob官网为什么选择PowerJob同类产品对比适用场景 PowerJob概述 PowerJob是新一代分布式任务调度与计算框架&#xff0c;支持CRON、API、固定频率、固定延迟等调度策略&#xff0c;提供工作流来编排任务解决依赖关系…

React框架第七课 语法基础课《第一课React你好世界》

React框架第七课 语法基础课《第一课React你好世界》 从这一课开始真正进入到React框架的基础语法学习&#xff0c;之前的前五课做个了解即可。 1 React框架的基本项目结构 ├── README.md 使用方法的文档 ├── node_modules 所有的依赖安装的目录 ├── package-lock.j…

[架构之路-181]-《软考-系统分析师》-19- 系统可靠性分析与设计 - 2-容错性: 软件容错技术

目录 前言&#xff1a; 1 9 . 4 软件容错技术 19.4.1 N 版本程序设计 1 . 与 通 常 软 件 开 发 过 程 的 区 别 2 . 其 他 需 要 注 意 的 问 题 19.4.2 恢复块方法 19.4.3 防卫式程序设计&#xff08;预防性设计&#xff09;》广泛使用 1 . 错误检测 2 . 破坏估计 …

【C++初阶】类与对象:6个默认成员函数-----构造函数和析构函数

我们在写代码的时候经常会忘记初始化和销毁&#xff0c;C的构造函数和析构函数就能避免这个问题。 默认成员函数&#xff1a;用户没有显式实现&#xff0c;编译器会生成的成员函数称为默认成员函数。 一.构造函数 A.概念 1.构造函数是一个特殊的成员函数&#xff1b; 2.名字与…

React框架的第八课 语法基础课《第二课React框架中的事件》

React框架的第八课 语法基础课《第二课React框架中的事件》 React中的事件是指通过React建立的应用程序中处理用户交互的响应。React事件处理程序只是在组件上调用的JavaScript函数&#xff0c;以响应某些类型的操作或事件&#xff0c;例如点击、触摸、滚动等。 React组件可以使…

【P3】HTTP 接口设计

一、简答 HTTP 接口设计 HTTP请求默认值&#xff1a; 配置 http 请求的默认值&#xff0c;比如协议、主机、端口 HTTP信息头管理器&#xff1a; 配置 http 请求的头部参数 HTTP请求&#xff1a; 用于和业务交互 查看结果树&#xff1a; 用于结果展示 二、准备工作 慕慕生…

希尔排序详解(Shell Sort)

本文已收录于专栏 《算法合集》 一、简单释义 1、算法概念 希尔排序是插入排序的一种又称“缩小增量排序”&#xff0c;是直接插入排序算法的一种更高效的改进版本。希尔排序是把记录按下标的一定增量分组&#xff0c;对每组使用直接插入排序算法排序&#xff1b;随着增量逐渐…

【复杂网络建模】——Pytmnet进行多层网络分析与可视化

目录 一、Pymnet介绍 二、安装步骤 三、多层网络的构建 1、单层网络的构建 2、双层随机网络的构建和可视化 3、多路复用网络图的可视化 四、总结 一、Pymnet介绍 官网&#xff1a; Pymnet是一个用于网络分析和建模的Python库。它提供了各种网络分析工具&#xff0c;例…

shell的基础学习一

文章目录 一、shell的简介二、 Shell 变量三、Shell 传递参数总结 一、shell的简介 Shell 是一个用 C 语言编写的程序&#xff0c;它是用户使用 Linux 的桥梁。Shell 既是一种命令语言&#xff0c;又是一种程序设计语言。 Shell 是指一种应用程序&#xff0c;这个应用程序提供…

百胜中国:未来将实现强劲增长

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 收入分析与未来展望 在过去的三年里&#xff0c;百胜中国&#xff08;YUMC&#xff09;的收入一直受到疫情导致的旅行限制和封锁的影响。为了应对疫情造成的业务中断&#xff0c;该公司开始专注于外卖业务&#xff0c;并将…

中通快递财报预测:中通快递2023年收入和利润将大幅下降

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 市场对中通快递2023年的预测 卖方虽然预测中通快递&#xff08;ZTO&#xff09;在2023年的表现会很不错&#xff0c;但他们也预计中通快递今年的财务业绩将不会像去年那样好。 根据S&P Capital IQ的数据&#xff0c;卖…

【软考备战·希赛网每日一练】2023年5月1日

文章目录 一、今日成绩二、错题总结第一题第二题 三、知识查缺 题目及解析来源&#xff1a;2023年05月01日软件设计师每日一练 一、今日成绩 二、错题总结 第一题 解析&#xff1a; 了解即可。 第二题 解析&#xff1a; 在序列基本有序时&#xff0c;快速排序基准元素起不到分…

第16章 变更管理

文章目录 16.1.2 项目变更的分类 50416.1.3 项目变更产生的原因 50516.2 变更管理的基本原则 50516.3 变更管理角色职责与工作程序 50616.3.1 角色职责 50716.3.2 工作程序 50716.4.1 变更管理操作要点 511 16.1 项目变更的基本概念 504 项目变更是指在信息系统项目的实施过程中…

【蓝桥杯】Python基础:经济基础决定上层建筑!

前言&#xff1a;今年4月第一次参加蓝桥杯比赛&#xff0c;选择的Python 研究生组赛道。在备赛过程中&#xff0c;发现经常会用到一些编程小技巧&#xff0c;因此笔者整理了一些蓝桥杯Python组编程基础常用的内容&#xff0c;以便日后备用。如果有小伙伴也觉得实用&#xff0c;…

1 对数器,二分查找,

文章目录 对数器二分查找**1. 有序序列二分查找****2. 在一个有序数组中&#xff0c;找<某个数最右侧的位置****3. 在一个有序数组中&#xff0c;找>某个数最左侧的位置****4. 无序序列二分查找 &#xff0c;求局部最小值** 对数器 对数器用于在自己的本地平台验证算法正…

百度、谷歌等搜索引擎高效搜索方法 —— 更快速搜索到你想要内容

一、常用搜索方法 1、限定标题 intitle 又被称为去广告搜索法&#xff0c;intitle命令&#xff0c;即in title&#xff08;在标题里&#xff09;返回的的结果是网页的标题包含该关键词。一般情况下搜索的关键词都会在标题里出现&#xff0c;使用intitle命令一般是在特殊需求下…

极乐迪斯科(风格) | Disco Elysium – Style LoRA

目录 What is this ❓How to use / 使用方法 &#x1f4dd;其他信息与参数: 模型演示&#xff08;多图预警&#xff09; 正面tag 负面tag What is this LoRA版本的极乐迪斯科风格模型, 使用共计15张图片, 分辨率为1024*1024, 用Anything v4.5训练. 其他模型没有经过测试,…

Linux之【多线程】生产者与消费者模型BlockQueue(阻塞队列)

生产者与消费者模型 一、了解生产者消费者模型二、生产者与消费者模型的几种关系及特点三、BlockQueue&#xff08;阻塞队列&#xff09;3.1 基础版阻塞队列3.2 基于任务版的阻塞队列3.3 进阶版生产消费模型--生产、消费、保存 四、小结 一、了解生产者消费者模型 举个例子&am…

计算机组成原理第五章(3)DMA处理

三种控制方式&#xff1a;程序查询程序中断DMA方式 回顾一下 之前的中断控制方式&#xff0c;如果是输入命令&#xff0c;先启动命令&#xff0c;通过地址总线选择相应的接口&#xff0c;通过地址译码之后的到选择电路&#xff0c;这个接口准备开始工作。 启动外部设备&#…