《R语言与农业数据统计分析及建模》学习——方差分析

        方差分析是研究一种或多种因素的变化对试验结果的观测值是否有显著影响,从而找到较优试验条件或生产条件的一种常用数理统计方法。

        方差分析根据平方和的加和原理,利用F检验,进而判断试验因素对试验结果的影响是否显著。

        分为:单因素方差分析(one-way ANOVA)、双因素方差分析(two-way ANOVA)和多因素方差分析分析(multi-way ANOVA)

方差分析的前提假设:

        ①样本数据独立

        ②每组数据的总体服从正态分布分布

        ③每组数据方差齐性

        因此在进行方差分析前,需要先进行对应的检验:

        (1)正态性检验

        ①使用Shaprio-Wilk正态检验方法来检验样本是否符合正态分布

        ②使用Q-Q图来检验正态性

        (2)方差齐性检验

        ①Bartlett检验:适用于数据服从正态分布,而当数据非正态时容易导致假阳性。

        ②Levene检验:在非正态数据时,表现较为稳定,对正态不敏感。

        ③Fligner-Killeen检验:非参数检验,完全不依赖已知分布。

        (3)离群点检验

        由于方差分析对离群点很敏感,所以需要对数据检测是否有离群点,最常用(可能也较为好使的)是以图形展示室,如箱线图、散点图等形式:

        ①mvoutlier包aq.plot()作物

        ②car包的outlierTest()作图

1、单因素方差分析分析——检验前提(正态性)

(1)独立性:由于随机抽取,假设总体满足独立。

(2)检验正态性:用W检验。

        H0:样本数据与正态分布没有明显区别;

        HA:样本数据与正态分布存在显著区别。

        W统计量越小,越接近零,表示样本越接近正态分布;p值,如果p-value小于显著性水平α(通常为0.05),则拒绝H0。代码如下:

# 导入数据
df<-read.csv("sss.csv")
# 部分数据展示
head(df)
# 进行正态性检验
shapiro.test(df[which(df[,2]=="A"),]$x)
shapiro.test(df[which(df[,2]=="B"),]$x)
shapiro.test(df[which(df[,2]=="C"),]$x)
shapiro.test(df[which(df[,2]=="D"),]$x)
shapiro.test(df[which(df[,2]=="E"),]$x)

        #结论:所有因素的W检验显示不显著,即满足正态性。

2、单因素方差分析分析——检验前提(齐次性)

        检验方差齐次性(本例使用bartlett检验)

        H0:各因子水平下的方差相同。

        HA:各因子水平下的方差不同。

# 接续上一个代码
# 进行bartlett方差齐性检验
bartlett.test(x~method,data=df)

        检验结果显示,p-value>0.05,即差异不显著,接受原假设(方差齐性)。

3、单因素方差分析分析——检验前提(离群性)

        方差齐性检验本身对离群点就非常敏感。当然也可以用outlierTest()函数进行检验。

# 接续上一代码
# 进行离群性检验
library(car)
outlierTest(aov(x~method,data=df))

        结论:没有证据表明数据中存在离群点。

4、单因素方差分析

        由于经过前面三步的检验,符合方差分析的假设条件。下面进行方差分析。【注意:如果正态性和方差齐性不满足,需要中KW检验进行分析,对应的函数为:kruskal.test()

# 接续上一代码
# 对数据进行方差分析
df$method<-factor(df$method)
aov.model<-aov(x~method,data=df)
summary(aov.model)
boxplot(x~method,data=df)

        结论:p值小于0.05,即method的不同水平之间差异显著。

5、双因素(无交互)方差分析

        双因素(无交互)方差分析,仍需要满足:数据独立、正态性和方差齐性。

        R中的函数aov():不考虑交互作用x~A+B,加号表示两个因素具有可加性。

# 双因素(无交互)方差分析
# 导入数据
juice<-read.csv("juice.csv")
# 数据展示
head(juice)
# 转化为因子型变量
juice$A<-factor(juice$A)
juice$B<-factor(juice$B)
# 双因素方差分析
juice_aov<-aov(X~A+B,data=juice)
summary(juice_aov)

        结论:A因素不同水平对x的影响差异不显著,B因素不同水平对x的影响差异显著。

6、双因素(有交互)方差分析

        双因素(有交互)方差分析仍需要满足:数据独立、正态性和方差齐性。

        有交互作用,表示两个因素的不同水平较差搭配对试验指标产生影响。

        R中的函数aov():考虑交互作用的方差分析模型x~A+B+A:B

# 双因素(有交互)方差分析
# 导入数据
rats<-read.csv("rats.csv")
# 数据展示
head(rats,3)
# 转化为因子型变量
rats$Toxicant<-factor(rats$Toxicant)
rats$Cure<-factor(rats$Cure)
# 更改图形显示的界面排版
op<-par(mfrow=c(1,2))
# 图形展示
plot(Time~Toxicant+Cure,data=rats)
# 用函数interaction.plot()作出交互效应图,考察因素间是否存在交互作用
with(rats,interaction.plot(Toxicant,Cure,Time,trace.label="Cure"))
with(rats,interaction.plot(Cure,Toxicant,Time,trace.label="Toxicant"))
# 方差分析
rats_aov<-aov(Time~Toxicant+Cure+Toxicant:Cure,data=rats)
summary(rats_aov)

        由交互曲线图可以看出,曲线中没有明显的相交情况出现,初步认为两个因素没有交互作用,下一步在用方差分析进行两因素间交互作用的确认。

        由方差分析结果可知:两因素对Time的影响极显著;二者间的交互作用对Time影响不显著。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Ajax-异步刷新技术】什么是Ajax之续章 !

文章目录 Ajax第五章1、layui的后台布局2、layui的数据表格1、在jsp页面中编写table2、在页面中引入文件3、编写代码4、参照文档修改表格属性 **3、最终效果** 第六章1、继续第五章内容1、layui组件2、添加数据3、查看数据4、修改数据5、删除数据 2、批量删除核心 3、数据表格重…

金融级国产化替代中间件有哪些?

过去&#xff0c;国内中间件市场一直由IBM、Oracle等国际大型企业所主导&#xff0c;这在一定程度上限制了对国内企业多样化和个性化需求的满足&#xff0c;尤其是在实现底层硬件与上层应用软件之间高效、精准匹配方面。面对日益复杂的国际局势&#xff0c;金融安全已成为国家整…

算法项目(9)—— 大模型实现PDF检索加QA

本文包含什么? 使用大语言模型进行多个PDF问答检索加QA.gradio实现的网页界面操作,全套代码以及代码介绍运行有问题? csdn上后台随时售后.项目说明 本项目实现使用大语言模型为核心,gradio框架,调用vicuna实现多个pdf QA 代码运行 python3 main.pyimport gradio as gr fr…

vscode 创建代码模版

在vscode中快捷创建代码模版 1.在VSCode中&#xff0c;按下Ctrl Shift P&#xff08;Windows/Linux&#xff09;或Cmd Shift P&#xff08;Mac&#xff09;打开命令面板。 2.然后输入"Preferences: Configure User Snippets"并选择该选项。打开一个json文件用户…

关于5V继电器模块使用问题记录

1、stm32f103c8t6信号引脚设置为开漏输出模式 2、发现无论高低电平继电器都是闭合的&#xff0c;无法控制 3、单片机复位时&#xff0c;继电器会有异响滋滋声 4、烧录器是一直连接单片机的&#xff0c;后面测试拔掉烧录器后&#xff0c;继电器模块正常工作。 原因是单片机供…

【Git】Git常用命令

1、配置命令 # 查看全局配置列表 git config --global -l # 查看局部配置列表 git config --local -l# 查看所有的配置以及它们所在的文件 git config --list --show-origin# 查看已设置的全局用户名/邮箱 git config --global --get user.name git config --global --get use…

分布式文件系统--MinIO

1 MinIO安装(Docker) ●在root目录下新建docker_minio文件夹 ●在docker_minio文件夹下新建config文件夹,data文件夹 ●在root目录下新建docker_compose文件夹,在docker_compose文件夹中添加docker-compose.yaml services:minio:image: quay.io/minio/miniocontainer_name: mi…

新品发布!无人机装调检修实训系统

近年&#xff0c;我国密集出台相关产业政策&#xff0c;推动低空经济从探索走向发展&#xff0c;根据新华网数据&#xff0c;2030年低空经济规模有望达2万亿。无人机专业属于跨学科的综合性专业&#xff0c;其中装调检测技术是无人机教培的重要组成部分。 天途推出无人机装调检…

全额退款20000,what?

接单的时候有多兴奋&#xff0c;退单的时候就有多落寞。今天我对客户全额退款了&#xff0c;跟踪了10天的项目正式结束。 这是我接单以来项目单价最高的一个项目&#xff0c;本来不太想接的&#xff0c;因为业务领域不擅长&#xff0c;又想挑战一下。兜兜转转找了几个人因为各种…

19-ESP32-S3外设IIC

ESP32-S3的IIC 引言 ESP32-S3是一款集成了Wi-Fi和蓝牙功能的低成本、多功能微控制器。在这篇博客中&#xff0c;我们将详细介绍ESP32-S3的IIC&#xff08;Inter-Integrated Circuit&#xff09;接口&#xff0c;也被称为I2C。 IIC简介 IIC是一种串行、同步、多设备、半双工…

【机器学习】03. SMOTE算法实现数据集单个不平衡的样本扩充

背景&#xff1a;通常在处理分类问题中数据不平衡类别。使用SMOTE算法对其中的少数类别进行过采样&#xff0c;以使其与多数类别的样本数量相当或更接近。 直接上代码 from imblearn.over_sampling import SMOTE from sklearn.datasets import make_classification from colle…

openGauss学习笔记-271 openGauss性能调优-TPCC性能调优测试指导-测试MOT-TPCC性能

文章目录 openGauss学习笔记-271 openGauss性能调优-TPCC性能调优测试指导-测试MOT-TPCC性能271.1 TPC-C简介271.2 系统级优化271.3 BenchmarkSQL&#xff1a;开源TPC-C工具271.4 运行基准271.5 结果报告 openGauss学习笔记-271 openGauss性能调优-TPCC性能调优测试指导-测试MO…

AI智能写作工具,一键智能改写文章简单又高效

随着人们生活节奏的加快和工作压力的增大&#xff0c;如何在繁忙的日程中高效地写作成为了许多人的难题。但是随着人工智能技术的不断发展和应用&#xff0c;AI智能写作工具的出现&#xff0c;成为了许多人解决写作难题的利器。今天小编就来跟大家分享下AI智能写作工具&#xf…

自动驾驶行业源代码防泄漏解决方案

行业背景&#xff1a; 随着新一代信息通信及人工智能技术的快速发展&#xff0c;汽车作为这些新技术应用的重要载体&#xff0c;正在加速向智能化和网联化转型&#xff0c;以自动驾驶研发为主业的企业也越来越多&#xff0c;如何保障自己研发的算法、模型、系统不被研发人员离…

百度沈抖:智能,生成无限可能

4月16日&#xff0c;Create 2024百度AI开发者大会在深圳举行。会上&#xff0c;百度集团执行副总裁、百度智能云事业群总裁沈抖正式发布新一代智能计算操作系统——百度智能云万源。它能管理万卡规模的集群&#xff0c;极致地发挥GPU、CPU的性能&#xff1b;它有强大的大模型作…

创新科技赋能旅游服务:智慧文旅引领旅游发展新篇章,智能体验助力产业转型升级

随着科技的飞速发展和人们生活水平的提高&#xff0c;旅游业正迎来前所未有的发展机遇。创新科技在旅游服务领域的广泛应用&#xff0c;不仅提升了旅游体验的品质&#xff0c;也为旅游产业的转型升级注入了新的动力。智慧文旅作为旅游业与信息技术深度融合的产物&#xff0c;正…

【机器学习-12】数据探索---python主要的探索函数

在上一篇博客【机器学习】数据探索(Data Exploration)—数据质量和数据特征分析中&#xff0c;我们深入探讨了数据预处理的重要性&#xff0c;并介绍了诸如插值、数据归一化和主成分分析等关键技术。这些方法有助于我们清理数据中的噪声、消除异常值&#xff0c;以及降低数据的…

AI视频教程下载:用ChatGPT和 MERN 堆栈构建 SAAS 项目

这是一个关于 掌握ChatGPT 开发应用的全面课程&#xff0c;它将带领你进入 AI 驱动的 SAAS 项目的沉浸式世界。该课程旨在使你具备使用动态的 MERN 堆栈和无缝的 Stripe 集成来构建强大的 SAAS 平台所需的技能。 你将探索打造智能解决方案的艺术&#xff0c;深入研究 ChatGPT 的…

PM2管理器无法使用解决方法

之前的项目全是依靠PM2管理器部署的&#xff0c;部署快速&#xff0c;也便于管理 但是宝塔实在是bug毛病太多&#xff0c;最近这两天又出毛病了 这次的问题是在PM2管理器的node版本中无法进行版本切换&#xff0c;如果是第一次使用PM2的话甚至无法设置node版本&#xff0c;之前…

docker 集群管理实战mesos+zookeeper+marathon(一)

一 实验环境 1.1 系统版本&#xff0c;本实验使用cnetos7.9版本镜像 1.2 准备5台虚拟机&#xff0c;其中3台master&#xff0c;两台slave&#xff0c;使用克隆的方式 1.3 使用远程连接工具登录 1.4 修改主机名 1.5 设置域名映射 每个虚拟机都配置一下&#xff0c;这里就演示一…