One way Analysis of Variance(ANOVA)

1.方差分析的基本思想

方差:又叫均方,是标准差的平方,是表示变异的量。在一个多处理实验中,可以得出一系列不同的观测值,导致这些观测值不同的原因主要是由于处理效应(处理不同引起的)和试验误差(试验过程中偶然性因素的干扰和测量误差)两个因素所导致,方差分析就是确定各种原因(处理效应、试验误差)在总变异种所占的重要程度,方差检验结果相差不大,说明试验处理对于指标影响不大;结果相差较大,即处理效应比试验误差大得多,说明试验处理影响很大,不可忽视。

2.方差分析的前提条件

  1. 采样的随机性
    难以用数学的方法进行检验

  2. 样本的独立性
    通常也不进行检验

  3. 分布的正态性
    正态性检验——Shapiro-Wilk normality test

  4. 方差同质性(齐性)
    Bartlett Test of Homogeneity of Variances (parametric)
    Figner-Killeen Test of Homogeneity of Variances (non-parametric)

3.方差分析的步骤

  1. 提出原假设和备择假设;
  2. 计算各因素的离差平方和、均方差和原假设的显著性概率;
  3. 根据显著性概率和显著性水平,判断拒绝或者接受原假设。

4.单因素方差分析举例——R语言

1.输入数据
#不同地点植物的初级生产力

site1 <- c(9.4, 8.7, 13.3, 13.6, 15, 15.2, 17.7, 18.6, 22.2) 
site2 <- c(16.8, 30.8, 33.6, 40.5, 48.9) 
site3 <- c(27.0, 28.9, 32, 32.7, 35.5, 45.6) 
site4 <- c(21.0, 23.4, 27.5, 27.5, 30.5, 31.9, 32.5, 33.8, 33.8) 
site5 <- c(24.3, 29.7, 19.9) 
site6 <- c(17.7, 19.7, 21.5, 27.9, 34.8, 40.2) 
site7 <- c(16.5, 20.7, 23.5, 26.4, 26.7, 29.5, 29.8, 31.9, 35.5) 

#将数据组合成一个数据框

rodent.survey <- data.frame(weight=c(site1,site2,site3,site4,site5,site6,site7), site=factor(c(rep("1",9),rep("2",5),rep("3",6),rep("4",9),rep("5",3), rep("6",6),rep("7",9))))

2.做数据的描述统计
#可用psych()包中的describeBy分组计算

library(psych) 
describeBy(rodent.survey, rodent.survey$site)

#也可用tapply函数直接计算均值方差等

tapply(rodent.survey$weight, rodent.survey$site, mean) 

在这里插入图片描述

tapply(rodent.survey$weight, rodent.survey$site, var)

在这里插入图片描述

tapply(rodent.survey$weight, rodent.survey$site, sum)

在这里插入图片描述

3.分析和结果

fit <- aov (weight~site, data=rodent.survey) 
summary(fit) 

在这里插入图片描述

4.多重比较

TukeyHSD(fit)$site

在这里插入图片描述
可以看到3-2差异不显著(p=1),3-1差异非常显著(p<0.01),查看Tukey HSD均值成对比较图,图形中置信区间包含0的表示差异不显著。
在这里插入图片描述

5.评估检验的假设条件

1.正态性检验——Q-Q图

library(car)
qqPlot(lm(weight~site, data=rodent.survey),simulate=TRUE,main="Q-Q Plot",labels=FALSE)

在这里插入图片描述
数据全部落在95%的置信区间范围内,因此数据满足正态性假设。

2.方差齐性检验

bartlett.test (weight~site, data=rodent.survey)

在这里插入图片描述
p值大于0.05,说明数据满足方差齐性。

6.标注图形差异显著性

library(multcomp)
par(mar=c(5,4,6,2))
tuk <- glht(fit,linfct=mcp(site="Tukey"))
plot(cld(tuk,level=.05),col="lightgrey")

在这里插入图片描述
具有相同字母得为差异不显著。

7.ggplot标注图形差异显著性

site <- c("site1","site2","site3","site4","site5","site6","site7" )
mean<-c (14.85556,34.12000,33.61667,29.10000,24.63333,26.96667,26.72222)
se <- c(1.43,5.34,2.69,1.53,2.83,3.68,1.94)
df <- data.frame(site,mean,se)
label <- c("a", "b", "b", "b", "ab", "b", "b")#设置显著性“***”等是一样的
a1 <- ggplot(data=df,aes(x=site,y=mean))+geom_bar(stat="identity", color="black", position=position_dodge())+ geom_errorbar(aes(ymin=mean-se,ymax=mean+se),position = position_dodge(0.9), width = 0.3)+geom_text(aes(y = mean +  1.8 * se, label = label),  position = position_dodge(0.9), size = 5,family="TNM", fontface = "bold")+scale_fill_brewer(palette = "Set1")
p1<- a1 +labs(x=NULL,y='Weight')+
  theme_bw()+theme(panel.grid.major = element_blank(),panel.grid.minor = element_blank())+
  theme(axis.text.x= element_text(size=8, family="TNM", color="black", face= "bold", angle = 45,vjust=0.5, hjust=0.5))+#angle设置坐标轴标签角度
  theme(axis.text.y= element_text(size=10, family="TNM", color="black", face= "bold", vjust=0.5, hjust=0.5))+
  theme(axis.title= element_text(size=10, family="TNM", color="black", face= "bold", vjust=0.5, hjust=0.5))+
  theme(legend.text = element_text(size=10, family="TNM", color="black", face= "bold", vjust=0.5, hjust=0.5))+
  theme(legend.position = c(0.75,0.88))#(theme(legend.title = element_blank())#弃用图例标题,guides(fill=F)#隐藏图例)
  #输出图片
  png(file="方差分析.png",res=600,width=2000,height=2000)
  p1
  dev.off()

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值