R语言基础数据分析—单因素方差分析
有了试验数据,我们就需要进行数据的处理与分析,而在试验设计中,通常分为单因素试验或者双因素试验。试验中要考察的指标称为试验指标,影响试验指标的条件称为因素,因素所处的状态称为水平,若试验中只有一个因素改变则称为单因素试验,若有两个因素改变则称为双因素试验,若有多个因素改变则称为多因素试验。方差分析就是对试验数据进行分析,检验方差相等的多个正态总体均值是否相等,进而判断各因素对试验指标的影响是否显著,根据影响试验指标条件的个数可以区分为单因素方差分析、双因素方差分析和多因素方差分析。
在进行数据分析之前,我们要对试验数据进行检验,即独立性检验、正态性检验、方差齐性检验,若三者检验符合条件,则我们可以进行参数分析,如果不符合条件则只能进行非参数分析。
(参数分析:假定数据服从某分布(一般为正态分布),通过样本参数的估计量(x±s)对总体参数(μ)进行检验,比如t检验、方差分析、Pearson的相关分析等。非参数分析:不需要假定总体分布形式,直接对数据的分布进行检验。由于不涉及总体分布的参数,故名「非参数」检验,包括卡方检验、二项分布检验、K-S检验、秩和检验、符号检验、Spearman和Kendall的相关性分析等)
接下来,我演示一个R语言进行的参数分析的单因素方差分析。
原始数据:探究添加不同浓度的氮肥(N1,N2,N3,N4,N5)对植物根际土壤硝态氮的浓度影响
(同学们使用edit()函数,把我的数据仿照输入,这样你们的数据不需要整理,直接进入数据重构的那步。)
data<-data.frame(N1=numeric(0),N2=numeric(0),N3=numeric(0),N4=numeric(0),N5=numeric(0))
data<-edit(data)
第一步:进行数据整理与重构:
library(readxl)
DN <- read_excel("C:/Users/lenovo/Desktop/DN.xlsx")
View(DN)
DN
data<-edit(DN)#打开数据编辑表,查看和编辑数据
发现数据错误,进行数据的调整(见上一文章)
library(tidyverse)
library(gcookbook)
data<-DN%>%select(N1,N2,N3,N4,N5)
data
数据重构:
library(reshape2)
data <- melt(data,id=c())#进行数据的合并重构
names(data) <- c('trt', 'val')
data
第二步:对数据进行参数检验(独立性、正态性和方差齐性检验)
data1<-table(data$trt,data$val)
chisq.test(data1)#独立性检验函数chisq.test()
shapiro.test(data$val)#shaprio.test()正态性检验函数
bartlett.test(val~trt,data)#方差齐性检验函数bartlett.test()
可以看到三大参数检验P>0.05,即接受原假设,数据满足独立性,正态性和方差齐性。
第三步:单因素方差分析和多重比较
单因素方差分析
aov<-aov(val~trt,data=data)#单因素方差分析
summary(aov)
P<0.05,拒绝原假设,各组试验结果均值存在差异,即添加不同浓度的氮肥对植物根际土壤的硝态氮浓度存在影响差异。
多重比较:介绍两种函数LSD.test()和Duncan.test()
library(agricolae)
data2<-LSD.test(aov,'trt',p.adj = 'bonferroni')#'bonferroni'对P值进行修正
print(data2$groups)
plot(data2)
可以看到不同组别之间的显著性差异。
data3<-duncan.test(aov,'trt')#duncan.test()函数
data3$groups
plot(data3)
第四步:提取关键数据并处理(以Duncan多重比较为例)
mean<-aggregate(data$val,by=list(trt=data$trt),FUN=mean)#计算均值
sd<-aggregate(data$val,by=list(trt=data$trt),FUN=sd)#计算标准偏差
se<-sd$x/sqrt(nrow(data)/nrow(sd)) #计算标准误差
new<-data.frame(trt=mean$trt,mean=mean$x,sd=sd$x,se) #对计算后的数据重构
label<-data.frame(mean=data3$groups$val,label=data3$groups$groups) #添加多重比较结果
total<-merge(new,label,by="mean") #合并数据
total
第五步:根据结果画图
p<-ggplot(total,aes(trt,mean))+geom_bar(stat="identity",fill="grey50",width = 0.5)
p1<-p+geom_errorbar(aes(ymin=mean-se,ymax=mean+se),width=0.1)+geom_text(aes(y=mean+se,label=label,vjust=-0.5,hjust="center"))p2<-p1+theme(panel.grid.major = element_blank(),panel.grid.minor=element_blank(),panel.background = element_blank(),axis.line=element_line(colour="black",size=0.6))p3<-p2+labs(x="不同的氮肥添加浓度",y="植物根际土壤硝态氮浓度")+ylim(0,200)
p3
end~
R语言基础数据分析—单因素方差分析相关推荐
- 数据分析必备:掌握这个R语言基础包1%的功能让你事半功倍!(附代码)
来源:大数据 本文约7100字,建议阅读15分钟. 本文介绍了utils包在R语言基础的用途. [ 导读 ]无论数据分析的目的是什么,将数据导入R中的过程都是不可或缺的.毕竟巧妇难为无米之炊.util ...
- 《R语言游戏数据分析与挖掘》一导读
前 言 为什么要写这本书 随着大数据的概念越来越流行,越来越多的企业开始重视数据,期待从数据中寻找有价值的结论,以指导公司管理层决策,最终创造更大的价值.但是在游戏行业,数据分析的发展相对缓慢,很多游 ...
- R语言基础统计分析:正态性检验、方差齐性检验、T检验、方差分析、秩和检验
R语言基础统计分析 1. 正态性检验 1.1 Shapiro-Wilk正态检验方法 1.2 QQ图 2. 方差齐性检验 2.1 Bartlett检验,适用于正态分布数据 2.2 Levene检验,非正 ...
- R语言基础入门(全)
R 是门语言,也是个环境.个人认为R有点像matlab. R自带多种统计学及数字分析功能.R的功能也可以通过安装包(Packages,用户撰写的功能)增强,个人感觉这个就是插件.因为S的血缘,R比其他 ...
- FigDraw 2. SCI 文章绘图必备 R 语言基础
点击关注,桓峰基因 桓峰基因 生物信息分析,SCI文章撰写及生物信息基础知识学习:R语言学习,perl基础编程,linux系统命令,Python遇见更好的你 70篇原创内容 公众号 关注公众号,桓峰基 ...
- R语言基础指令和并行算法初识(上篇)
一.R语言背景介绍 二. R语言基础指令 三. R语言并行算法 四. 计划打算 一.R语言背景介绍 1.2.起源:R是统计领域广泛使用的诞生于1980年左右的S语言的一个分支.可以认为R是S语言的一种 ...
- R语言基础知识入门学习(一)
目录 系列文章目录 一.软件下载 二.基本知识 1. 对象 2. 向量 3. 向量化 4. 因子 总结 系列文章目录 R语言基础知识入门学习(一) 一.软件下载 我们可以通过这个网址对R语言软件进行下 ...
- R语言与数据分析练习:使用ARIMA模型预测网站访问量
R语言与数据分析练习:使用ARIMA模型预测网站访问量 使用ARIMA模型预测网站访问量 一.实验背景: 随着流量的增大,某网站的数据信息量也在以一定的幅度增长 基于该网站2016年9月~2017年2 ...
- [R语言基础]——数据处理实例
[R语言基础]--数据处理实例 前言 问题 Step1:建立数据框 Step2:计算综合得分 Step3:对学生进行评分 Step4:根据姓氏和名字排序 完整代码 前言 之前我们已经学习了R对数据预处 ...
最新文章
- 重装操作系统的20条原则(转载)
- dedecms 漏洞_织梦dedecms文档内容页自动关联tag标签加入内链的方法_dedecms_CMS教程...
- 要不是这本书及时出现,本周真撑不下去…
- CSS的一些基础知识
- QT打开和保存文件对话框
- 苹果11如何设置9宫格_4月9日三只可转债回落卖出条件单结果,10日永高转债上市,手把手教你如何设置华宝智投的涨跌幅条件单...
- Mac idea 打不开
- I+关系网络分析发布,提供完整的可视化分析和关系引擎功能
- centos7:塔建pure_ftpd虚拟用户
- python爬取行业数据_用Python进行Web爬取数据
- 做自媒体也要注意“轻资产”
- 笔记本电脑里计算机未响应,win10系统笔记本word程序总是未响应的详细方案
- Word怎么显示目录
- FPGAASIC开发流程
- PV3D的小练习~太阳系八大行星
- h0043. 奇怪的汉诺塔
- 微光集市-JWT和Token在本项目中的应用(版本5.0)
- 机器学习实战——人脸表情识别
- alpine linux系统操作
- user administration
热门文章
- set Assigning an instance of ‘esri.***‘ which is not a subclass of ‘esri.***‘错误偶遇
- Tiny210(S5PV210) U-BOOT(五)----Nand Flash源码分析
- 0.91英寸和0.96英寸OLED驱动区别
- 不讨老婆之“不亦快哉”(三十三则)(李敖)
- webpy —— 简单直接的 python web 框架
- Windows系统设置多账户步骤
- CTS、CTS Verify、GTS测试以及GMS认证介绍
- 给深度学习新手做项目的10个建议
- 【OpenStack(Train版)安装部署(十六)】之Nova的API测试,报错处理
- java阶梯计费,机器智能审核阶梯计费方式