数据分析:方差分析在R语言中的应用

这篇具有很好参考价值的文章主要介绍了数据分析:方差分析在R语言中的应用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

介绍

方差分析的R语言实现包括以下部分:

  • 数据导入

  • 数据清洗

  • ANOVA计算

  • 结果解析

  • ANOVA评估

参考教程Analysis_of_Variance

knitr::opts_chunk$set(message = FALSE, warning = FALSE)

options(stringsAsFactors = F)
options(future.globals.maxSize = 1000 * 1024^2)

step1: 安装R包

install.packages(c("ggplot2", "ggpubr", "tidyverse"))

step2: 载R包

library(tidyverse) # 数据预处理R包
library(readxl) # 读取xlsx数据R包
library(ggpubr) # 画图R包

step3: 导入数据

  • 随机生成数据
data <- data.frame(D = c(rep("A", 4), rep("B", 4), rep("C", 4), rep("D", 4), rep("E", 4), rep("F", 4)),
                   RR = c(80,83,83,85,75,75,79,79,74,73,76,77,67,72,74,74,62,62,67,69,60,61,64,66))
  • 存储数据
write.table(data, file = "data.txt", sep = "\t", quote = F, row.names = F)
xlsx::write.xlsx(data, file = "data.xlsx", row.names = F)
  • txt数据格式
data <- read.table("data.txt", header = T)
  • xlsx数据格式
data <- read_xlsx("data.xlsx", sheet = 1)

step4: 数据清洗

  • 筛选数据:丢弃A组数据
data_drop <- data %>%
  dplyr::filter(D != "A")#%>%
  #dplyr::mutate(Test = "test")

head(data_drop)

数据分析:方差分析在R语言中的应用,数据分析,数据分析,r语言,数据挖掘

  • 数据平均值和其他指标
data %>%
  group_by(D) %>%
  summarise(N=n(),
            Means=mean(RR),
            SS=sum((RR - Means)^2),
            SD=sd(RR),
            SEM=SD/N^.5)

数据分析:方差分析在R语言中的应用,数据分析,数据分析,r语言,数据挖掘

  • 展示数据: boxplot
ggboxplot(data_drop, 
          x = "D", 
          y = "RR", 
          color = "D",
          ylab = "RR", xlab = "D")

数据分析:方差分析在R语言中的应用,数据分析,数据分析,r语言,数据挖掘

step5: 单因素方差分析

  • one-way ANOVAs: 使用aov函数运行单因素方差分析 (公式是:Y是检验变量,X是分组变量);

  • 再使用summary函数获取单因素方差分析的结果。

# Y=RR; X=D
one.way <- aov(RR ~ D, data = data_drop)

summary(one.way)

数据分析:方差分析在R语言中的应用,数据分析,数据分析,r语言,数据挖掘

结果解析:

  • Residuals是模型的残差,可以理解为截距;

  • Df列显示了自变量的自由度(变量中的水平数减1)和残差的自由度(观察总数减1和自变量中的水平数减1);

  • Sum Sq列显示平方和(即组均值与总体均值之间的总变化)。;

  • Mean Sq列是平方和的平均值,通过将平方和除以每个参数的自由度来计算;

  • F value列是F检验的检验统计量。这是每个自变量的均方除以残差的均方。F值越大,自变量引起的变化越有可能是真实的,而不是偶然的;

  • Pr(>F)列是F统计量的p值。这表明,如果组均值之间没有差异的原假设成立,那么从检验中计算出的F值发生的概率大小。

  • 另一种方法:t-test仅仅适合2组比较,因此需要筛选

data_ttest <- data_drop %>%
  dplyr::filter(D %in% c("B", "C")) #%>%
  #dplyr::filter(RR != 77)

# data_test_filter <- filter(data_drop, D %in% c("B"))
# data_test_filter2 <- filter(data_test_filter, RR != 77)

t.test(RR ~ D, data = data_ttest)

数据分析:方差分析在R语言中的应用,数据分析,数据分析,r语言,数据挖掘

step6: 后置检验

  • ANOVA结果仅仅揭示多个组间的差异结果,具体到哪两个组内部差异还需要做后置检验

  • 后置检验通常采用TukeyHD函数

TukeyHSD(one.way)

数据分析:方差分析在R语言中的应用,数据分析,数据分析,r语言,数据挖掘

  • 该结果给出每个两组之间的结果;

  • diff: 两组的均值之差;

  • Lwr, upr: 95%置信区间的下限和上限(默认值) ;

  • P adj: 多次比较调整后的P值。

step7: 检查残差分布是否符合正态分布

  • ANOVA比较的是均值,需要每个分组的残差服从正态部分
plot(one.way, 2)

数据分析:方差分析在R语言中的应用,数据分析,数据分析,r语言,数据挖掘

  • 采用Shapiro-Wilk对残差进行检验
shapiro.test(x = residuals(object = one.way))

数据分析:方差分析在R语言中的应用,数据分析,数据分析,r语言,数据挖掘

结果显示:残差不显著也即是表明残差服从正态分布,可以采用ANOVA分析方法判断RR在D分组的分布水平。

step8: 方差齐性检验

library(car)

leveneTest(RR ~ D, data = data_drop, center = mean) 

数据分析:方差分析在R语言中的应用,数据分析,数据分析,r语言,数据挖掘

bartlett.test(RR ~ D, data = data_drop) 

数据分析:方差分析在R语言中的应用,数据分析,数据分析,r语言,数据挖掘

系统信息

devtools::session_info()
─ Session info ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
 setting  value
 version  R version 4.3.1 (2023-06-16)
 os       macOS Monterey 12.2.1
 system   x86_64, darwin20
 ui       RStudio
 language (EN)
 collate  en_US.UTF-8
 ctype    en_US.UTF-8
 tz       Asia/Shanghai
 date     2024-03-12
 rstudio  2023.09.0+463 Desert Sunflower (desktop)
 pandoc   3.1.1 @ /Applications/RStudio.app/Contents/Resources/app/quarto/bin/tools/ (via rmarkdown)

─ Packages ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
 package     * version date (UTC) lib source
 abind         1.4-5   2016-07-21 [1] CRAN (R 4.3.0)
 backports     1.4.1   2021-12-13 [1] CRAN (R 4.3.0)
 broom         1.0.5   2023-06-09 [1] CRAN (R 4.3.0)
 bslib         0.6.1   2023-11-28 [1] CRAN (R 4.3.0)
 cachem        1.0.8   2023-05-01 [1] CRAN (R 4.3.0)
 car           3.1-2   2023-03-30 [1] CRAN (R 4.3.0)
 carData       3.0-5   2022-01-06 [1] CRAN (R 4.3.0)
 cellranger    1.1.0   2016-07-27 [1] CRAN (R 4.3.0)
 cli           3.6.2   2023-12-11 [1] CRAN (R 4.3.0)
 colorspace    2.1-0   2023-01-23 [1] CRAN (R 4.3.0)
 devtools      2.4.5   2022-10-11 [1] CRAN (R 4.3.0)
 digest        0.6.34  2024-01-11 [1] CRAN (R 4.3.0)
 dplyr       * 1.1.4   2023-11-17 [1] CRAN (R 4.3.0)
 ellipsis      0.3.2   2021-04-29 [1] CRAN (R 4.3.0)
 evaluate      0.23    2023-11-01 [1] CRAN (R 4.3.0)
 fansi         1.0.6   2023-12-08 [1] CRAN (R 4.3.0)
 farver        2.1.1   2022-07-06 [1] CRAN (R 4.3.0)
 fastmap       1.1.1   2023-02-24 [1] CRAN (R 4.3.0)
 forcats     * 1.0.0   2023-01-29 [1] CRAN (R 4.3.0)
 fs            1.6.3   2023-07-20 [1] CRAN (R 4.3.0)
 generics      0.1.3   2022-07-05 [1] CRAN (R 4.3.0)
 ggplot2     * 3.4.4   2023-10-12 [1] CRAN (R 4.3.0)
 ggpubr      * 0.6.0   2023-02-10 [1] CRAN (R 4.3.0)
 ggsignif      0.6.4   2022-10-13 [1] CRAN (R 4.3.0)
 glue          1.7.0   2024-01-09 [1] CRAN (R 4.3.0)
 gtable        0.3.4   2023-08-21 [1] CRAN (R 4.3.0)
 hms           1.1.3   2023-03-21 [1] CRAN (R 4.3.0)
 htmltools     0.5.7   2023-11-03 [1] CRAN (R 4.3.0)
 htmlwidgets   1.6.4   2023-12-06 [1] CRAN (R 4.3.0)
 httpuv        1.6.14  2024-01-26 [1] CRAN (R 4.3.2)
 jquerylib     0.1.4   2021-04-26 [1] CRAN (R 4.3.0)
 jsonlite      1.8.8   2023-12-04 [1] CRAN (R 4.3.0)
 knitr         1.45    2023-10-30 [1] CRAN (R 4.3.0)
 labeling      0.4.3   2023-08-29 [1] CRAN (R 4.3.0)
 later         1.3.2   2023-12-06 [1] CRAN (R 4.3.0)
 lifecycle     1.0.4   2023-11-07 [1] CRAN (R 4.3.0)
 lubridate   * 1.9.3   2023-09-27 [1] CRAN (R 4.3.0)
 magrittr      2.0.3   2022-03-30 [1] CRAN (R 4.3.0)
 memoise       2.0.1   2021-11-26 [1] CRAN (R 4.3.0)
 mime          0.12    2021-09-28 [1] CRAN (R 4.3.0)
 miniUI        0.1.1.1 2018-05-18 [1] CRAN (R 4.3.0)
 munsell       0.5.0   2018-06-12 [1] CRAN (R 4.3.0)
 pillar        1.9.0   2023-03-22 [1] CRAN (R 4.3.0)
 pkgbuild      1.4.3   2023-12-10 [1] CRAN (R 4.3.0)
 pkgconfig     2.0.3   2019-09-22 [1] CRAN (R 4.3.0)
 pkgload       1.3.4   2024-01-16 [1] CRAN (R 4.3.0)
 profvis       0.3.8   2023-05-02 [1] CRAN (R 4.3.0)
 promises      1.2.1   2023-08-10 [1] CRAN (R 4.3.0)
 purrr       * 1.0.2   2023-08-10 [1] CRAN (R 4.3.0)
 R6            2.5.1   2021-08-19 [1] CRAN (R 4.3.0)
 Rcpp          1.0.12  2024-01-09 [1] CRAN (R 4.3.0)
 readr       * 2.1.5   2024-01-10 [1] CRAN (R 4.3.0)
 readxl      * 1.4.3   2023-07-06 [1] CRAN (R 4.3.0)
 remotes       2.4.2.1 2023-07-18 [1] CRAN (R 4.3.0)
 rJava         1.0-6   2021-12-10 [1] CRAN (R 4.3.0)
 rlang         1.1.3   2024-01-10 [1] CRAN (R 4.3.0)
 rmarkdown     2.25    2023-09-18 [1] CRAN (R 4.3.0)
 rstatix       0.7.2   2023-02-01 [1] CRAN (R 4.3.0)
 rstudioapi    0.15.0  2023-07-07 [1] CRAN (R 4.3.0)
 sass          0.4.8   2023-12-06 [1] CRAN (R 4.3.0)
 scales        1.3.0   2023-11-28 [1] CRAN (R 4.3.0)
 sessioninfo   1.2.2   2021-12-06 [1] CRAN (R 4.3.0)
 shiny         1.8.0   2023-11-17 [1] CRAN (R 4.3.0)
 stringi       1.8.3   2023-12-11 [1] CRAN (R 4.3.0)
 stringr     * 1.5.1   2023-11-14 [1] CRAN (R 4.3.0)
 tibble      * 3.2.1   2023-03-20 [1] CRAN (R 4.3.0)
 tidyr       * 1.3.1   2024-01-24 [1] CRAN (R 4.3.2)
 tidyselect    1.2.0   2022-10-10 [1] CRAN (R 4.3.0)
 tidyverse   * 2.0.0   2023-02-22 [1] CRAN (R 4.3.0)
 timechange    0.3.0   2024-01-18 [1] CRAN (R 4.3.0)
 tzdb          0.4.0   2023-05-12 [1] CRAN (R 4.3.0)
 urlchecker    1.0.1   2021-11-30 [1] CRAN (R 4.3.0)
 usethis       2.2.2   2023-07-06 [1] CRAN (R 4.3.0)
 utf8          1.2.4   2023-10-22 [1] CRAN (R 4.3.0)
 vctrs         0.6.5   2023-12-01 [1] CRAN (R 4.3.0)
 withr         3.0.0   2024-01-16 [1] CRAN (R 4.3.0)
 xfun          0.41    2023-11-01 [1] CRAN (R 4.3.0)
 xlsx          0.6.5   2020-11-10 [1] CRAN (R 4.3.0)
 xlsxjars      0.6.1   2014-08-22 [1] CRAN (R 4.3.0)
 xtable        1.8-4   2019-04-21 [1] CRAN (R 4.3.0)
 yaml          2.3.8   2023-12-11 [1] CRAN (R 4.3.0)

 [1] /Library/Frameworks/R.framework/Versions/4.3-x86_64/Resources/library

──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

参考材料

  • Analysis_of_Variance

  • R语言统计分析 04 多组间差异的单因素方差分析(ANOVA)文章来源地址https://www.toymoban.com/news/detail-858490.html

到了这里,关于数据分析:方差分析在R语言中的应用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Python】数据分析+数据挖掘——探索Pandas中的索引与数据组织

    在数据科学和数据分析领域,Pandas是一个备受喜爱的Python库。它提供了丰富的数据结构和灵活的工具,帮助我们高效地处理和分析数据。其中,索引在Pandas中扮演着关键角色,它是一种强大的数据组织和访问机制,使我们能够更好地理解和操作数据。 本博客将探讨Pandas中与索

    2024年02月15日
    浏览(44)
  • [数据挖掘、数据分析] clickhouse在go语言里的实践

    [数据挖掘] clickhouse在go语言里的实践 [数据挖掘] 用户画像平台构建与业务实践 今天给大家介绍一款OLAP大数据处理软件 clickhouse ,在业界它有一个荣誉,那就是”快“,当然此快不是开车快的意思,是指clickhouse在大数据量级的查询方面,对比Spark 、MySQL 、Hive 、Hadoop,速度有

    2024年02月08日
    浏览(34)
  • Python数据挖掘实用案例——自动售货机销售数据分析与应用

    🚀欢迎来到本文🚀 🍉个人简介:陈童学哦,目前学习C/C++、算法、Python、Java等方向,一个正在慢慢前行的普通人。 🏀系列专栏:陈童学的日记 💡其他专栏:C++STL,感兴趣的小伙伴可以看看。 🎁希望各位→点赞👍 + 收藏⭐️ + 留言📝 ​ ⛱️万物从心起,心动则万物动🏄

    2024年02月08日
    浏览(54)
  • 爬虫技术对携程网旅游景点和酒店信息的数据挖掘和分析应用

    导语 爬虫技术是一种通过网络爬取目标网站的数据并进行分析的技术,它可以用于各种领域,如电子商务、社交媒体、新闻、教育等。本文将介绍如何使用爬虫技术对携程网旅游景点和酒店信息进行数据挖掘和分析,以及如何利用Selenium库和代理IP技术实现爬虫程序。 概述

    2024年02月07日
    浏览(45)
  • 【大数据】数据分析和挖掘技术和应用 A Brief Review of Big Data Technologies and Application

    作者:禅与计算机程序设计艺术 在现代信息社会里,数据的爆炸性增长已经给传统行业带来巨大的商机,并促进了人工智能、机器学习、云计算等新兴技术的出现。作为数据驱动的经济领域,数据分析和挖掘技术成为绩效提升和产品优化的关键环节,也是各个公司争相追逐的

    2024年02月07日
    浏览(39)
  • 【案例实践】R语言多元数据统计分析在生态环境中的实践应用

    查看原文R语言生物群落分析绘图、多元统计分析、CMIP6、遥感碳储量、GEE林业、InVEST等 生态环境领域研究中常常面对众多的不同类型的数据或变量,当要同时分析多个因变量(y)时需要用到多元统计分析(multivariate statistical analysis)。多元统计分析内容丰富,应用广泛,是

    2023年04月12日
    浏览(36)
  • R语言用逻辑回归预测BRFSS中风数据、方差分析anova、ROC曲线AUC、可视化探索

    行为风险因素监测系统(BRFSS)是一项年度电话调查。BRFSS旨在确定成年人口中的风险因素并报告新兴趋势 ( 点击文末“阅读原文”获取完整 代码数据 )。 相关视频 例如,调查对象被询问他们的饮食和每周体育活动、HIV/AIDS状况、可能的吸烟情况、免疫接种、健康状况、健

    2024年02月07日
    浏览(31)
  • 数据挖掘与数据分析

    目录 数据挖掘与数据分析 一.数据的本质 二.什么是数据挖掘和数据分析 三.数据挖掘和数据分析有什么区别 案例及应用 1. 基于分类模型的案例 2. 基于预测模型的案例 3. 基于关联分析的案例 4. 基于聚类分析的案例 5. 基于异常值分析的案例 6. 基于协同过滤的案例 7. 基于

    2024年04月28日
    浏览(36)
  • 数据分析、数据挖掘常用的数据清洗方法

    数据的完整性—例如:人的属性中缺少性别 数据的唯一性—例如:不同来源的数据出现重复 数据的权威性—例如:同一个指标出现多个来源的数据且数值不同 数据的合法性—例如:获取的数据与常识不符,年龄大于200岁 数据的一致性—例如:不同来源的不同指标,实际内涵

    2024年02月08日
    浏览(46)
  • 使用Python进行数据分析——方差分析

    大家好,方差分析可以用来判断几组观察到的数据或者处理的结果是否存在显著差异。本文介绍的方差分析(Analysis of Variance,简称ANOVA)就是用于检验两组或者两组以上样本的均值是否具备显著性差异的一种数理统计方法。 根据影响试验条件的因素个数可以将方差分析分为

    2024年02月15日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包