单因素方差分析——R语言实战
课题组的每个人都有实验任务,做实验的目的是为了获取实验数据,下一步就要进行数据分析,数据分析的方法各式各样。今天我给大家介绍,如何使用R语言进行单因素方差分析。
有人会问,什么是单因素方差分析?
试验中要考察的指标称为试验指标,影响试验指标的条件称为因素,因素所处的状态称为水平,若试验中只有一个因素改变则称为单因素试验,若有两个因素改变则称为双因素试验,若有多个因素改变则称为多因素试验。方差分析就是对试验数据进行分析,检验方差相等的多个正态总体均值是否相等,进而判断各因素对试验指标的影响是否显著,根据影响试验指标条件的个数可以区分为单因素方差分析、双因素方差分析和多因素方差分析。[1]
下面我演示一下具体操作:
原始数据:探究不同外源添加物对土壤cfpoc含量的影响。
重复 | a | b | c | d | e | f | k |
1 | 3.186224 | 3.2629 | 2.397264 | 2.300343 | 1.806937 | 2.711331 | 2.945837 |
2 | 2.975125 | 3.068194 | 2.962235 | 2.233887 | 2.136561 | 4.185355 | 3.01814 |
3 | 3.150602 | 4.29719 | 2.518045 | 2.169607 | 2.473778 | 3.94805 | 2.785514 |
1、导入数据
#导入上述数据
install.packages("xlsxjars")
install.packages("rjava")
library("readxl")
ffpoc <- read_xlsx("C:\\Users\\86138\\Desktop\\实验\\有机碳组分\\外源cfpoc.xlsx")
ffpoc
2、进行数据重构
#数据重构
library(reshape2)
c3 <- melt(c3,id=c())
names(c3) <- c('trt', 'val')
c3 <- c3[-1,]#运行三次,去掉空白行
c3
重构后的数据如下
trt | val | |
1 | a | 3.186224 |
2 |
a |
2.975125 |
3 |
a |
3.150602 |
4 |
b |
3.262900 |
5 |
b |
3.068194 |
6 |
b |
4.297190 |
7 |
c |
2.397264 |
8 |
c |
2.962235 |
9 |
c |
2.518045 |
10 |
d |
2.300343 |
11 |
d |
2.233887 |
12 |
d |
2.169607 |
13 |
e |
1.806937 |
14 |
e |
2.136561 |
15 |
e |
2.473778 |
16 |
f |
2.711331 |
17 |
f |
4.185355 |
18 |
f |
3.948050 |
19 |
k |
2.945837 |
20 |
k |
3.018140 |
21 |
k |
2.785514 |
3、单因素方差分析与多重比较
(1)单因素方差分析
aov6 <- aov(val~trt,data=c3)
summary(aov6)
(2)多重比较
给大家推荐两种比较方法,两种函数LSD.test()和Duncan.test()
(1)LSD.test()
library(agricolae)#需要用的包
data <- LSD.test(aov6,'trt',p.adj = 'bonferroni')#'bonferroni'#对P值进行修正
print(data6$groups)
plot(data6)
(2)Duncan.test()
library(agricolae)
data6<-duncan.test(aov6,'trt')
data6$groups
plot(data6)
这样就可以看出不同组别之间的显著性差异
4、提取数据
mean <- aggregate(c3$val,by=list(trt=c3$trt),FUN=mean) #计算均值
sd <- aggregate(c3$val,by=list(trt=c3$trt),FUN=sd) #计算标准偏差
se <- sd$x/sqrt(nrow(c3)/nrow(sd)) #计算标准误差
new <- data.frame(trt=mean$trt,mean=mean$x,sd=sd$x,se) #对计算后的数据重构
label6 <- data.frame(mean=data6$groups$val,label=data6$groups$groups) #添加多重比较结果
total7 <- merge(new,label6,by="mean") #合并数据
total7
5、画柱状图(带误差棒和显著性字母)
library(ggplot2)
p11 <- ggplot(total7,aes(trt,mean))+geom_bar(stat="identity",fill = c("#90C9E7","#219EBC","#136783","#02304A","#FEB705","#FF9E02","#FA8600"),width = 0.5)+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"))+theme(axis.text.x = element_text(size=12,face="bold"),axis.text.y = element_text(size=12,face="bold"),panel.grid.major = element_blank(),panel.grid.minor=element_blank(),panel.background = element_blank(),axis.line=element_line(colour="black",size=0.6))+labs(x="不同外源添加物",y="土壤cfpoc含量 %")+ylim(0,5)
p11
ps:显著性字母相关解释[2]:
(1) 先将平均数由大到小排列(从上到下排列),在最大平均数后标记字母 a 。
(2)用该平均数依次与各平均数相比(向下过程),凡差异不显著都标记同一字母 a,直到遇到与其差异显著的平均数,其后标记字母 b,向下比较停止;
(3)再以标有字母b的该平均数为标准,依次与上方比它大的各个平均数比较(向上过程),凡差异不显著一律再加标b,直至显著为止(开始“掉头”向下);
(4)再以标记有字母 b 的最大平均数为标准(向下过程),依次与下面各未标记字母的平均数相比,凡差异不显著,继续标记字母 b,直至遇到某一个与其差异显著的平均数标记 c;
(5) 如此循环下去,直到最小的平均数被标记、且比较完毕为止。
资料来源
[1]百度百科,单因素方差分析_百度百科 (baidu.com)
[2]百度解答,论文中显著性水平怎么标注_百度知道 (baidu.com)
单因素方差分析——R语言实战相关推荐
- 对比《学习R》PDF代码+《R语言实战第2版》PDF代码+《R数据科学》PDF代码分析
R语言是世界上最流行的用于数据处理和统计分析的脚本语言.考古学家用它来跟踪古代文明的传播,医药公司用它来探索哪种药物更安全.更有效,精算师用它评估金融风险以保证市场的平稳运行.总之,在大数据时代,统计 ...
- R语言实战笔记--第十二章 重抽样(置换检验)与自助法
R语言实战笔记–第十二章 重抽样(置换检验)与自助法 标签(空格分隔): R语言 重抽样 自助法 置换检验 置换检验 双样本均值检验的时候,假设检验的方法就是,检查正态性.独立性.方差齐性,分别对应的 ...
- R语言实战笔记--第九章 方差分析
R语言实战笔记–第九章 方差分析 标签(空格分隔): R语言 方差分析 术语 组间因子,组内因子,水平:组间因子和组同因子的区别是,组间因子对所有测试对象进行分组,而组内因子则把所有测试对象归为同一组 ...
- 备受推崇的《R语言实战》真的值得如此好评吗?
作者:刘洋溢 R语言中文社区专栏作者 知乎ID:https://zhuanlan.zhihu.com/p/51396601 阅前思考: R语言入门必看的<R语言实战>真的是很好的入门书籍 ...
- R语言必看推荐:R语言入门经典版(中文版)+R语言实战第二版(中文完整版)
R语言入门经典(中文版)R for beginners R语言经典教材 第二版 适合初学者 作者:Emmanuel Paradis R 语言实战第二版(中文完整版) R语言实战(第2版)注重实用性,是 ...
- R语言实战笔记--第十五章 处理缺失数据
R语言实战笔记–第十五章 处理缺失数据 标签(空格分隔): R语言 处理缺失数据 VIM mice 缺失值(NA),是导致我们计算错误的一大来源,处理缺失数据在实际的应用中有着较为重要的作用. 基本方 ...
- R语言实战:机器学习与数据分析源代码5
本文辑录了<R语言实战--机器学习与数据分析>(电子工业出版社2016年出版)一书第6章至第7章前半部分(至136页)之代码.本书引言请见如下链接: http://blog.csdn.ne ...
- R语言实战(九)主成分和因子分析
本文对应<R语言实战>第14章:主成分和因子分析 主成分分析(PCA)是一种数据降维技巧,它能将大量相关变量转化为一组很少的不相关变量,这些无关变量成为主成分. 探索性因子分析(EFA)是 ...
- R语言实战笔记--第十四章 主成分和因子分析
R语言实战笔记–第十四章 主成分和因子分析 标签(空格分隔): R语言 主成分分析 因子分析 原理及区别 主成分分析与因子分析很接近,其目的均是为了降维,以更简洁的数据去解释结果,但这两种方法其实是相 ...
最新文章
- GlusterFS 安装与配置
- Linux中压缩、解压缩(tar/zip/bzip2/gz/gzip/zip)
- 使用cnn预测房价_使用CNN的人和马预测
- 浅析 NodeJs 的几种文件路径
- ajax 页面无刷新,Ajax的页面无刷新实现详解(附代码)
- Java实现数据批量导入数据库(优化速度-2种方法)
- maven 打包javadoc乱码解决方案
- weex默认的flex布局_CSS flex布局入门
- 如何让手机快速运行AI应用?这有份TVM优化教程
- JavaScript中常见的字符串操作函数及用法
- Linux快捷键及命令
- 基于Matlab的数字水印设计实现
- html图片标签img的介绍以及基本用法详解
- rust实现一个mysql驱动_使用Rust编写用户态驱动程序
- 项目部署常用linux命令(丰富的教程、资源)
- 论文解读2019INFOCOM_Calibrate: Frequency Estimation and Heavy Hitter Identification with LDP
- 百度推广引流一个成本多少?百度推广怎么预估成本?
- 在HBuilder创建前端web项目时,图片加载不出来,怎么解决?
- CTR --- DIEN论文阅读笔记,及tf2复现
- 招聘 关于数通与云计算的岗位
热门文章
- Android加载自定义字体出错,Android设置自定义字体的解决方案
- 利用js去除发货100广告
- linux中主成分分析软件,基于全基因组snp数据进行主成分分析(PCA)
- 2018.03.02 leaning journal
- 攻略丨一文速览2018世界机器人大会最全参会指南
- 以95%的精度构建CNN模型
- 北京研究院联想公司android面试题
- vue 请求参数数组_vue中get请求如何传递数组参数
- 计算机毕业设计(附源码)python自动组卷系统
- c语言中10c表示什么,18650锂电池产品常说3C,5C,10C,30C是什么意思?