用R语言进行ANOVA分析

打开.rda(rdata的简写)文件,可以用R.studio打开

#R
#对于比较不同组之间是否存在差别,用单因素方差分析法(ANOVA)

# ll
# 2019-03-14
#对于安装报错的包,可以修改镜像为china(lanzhou)
install.packages("car", dependencies=TRUE, INSTALL_opts = c('--no-lock'))
install.packages("multcomp", dependencies=TRUE, INSTALL_opts = c('--no-lock'))

library(readxl)
library(gplots)
library(car)
library(multcomp)

# read excel 打开第二个工作薄 数据格式为第一列是类别名,第二列是相对应的值 
data<-read_xlsx('C:\\Users\\guosheng\\Desktop\\name.xlsx',sheet=2)

# 统计各个类别的个数 (行标题为equ,value)
# 利用attach()来加载数据,不然在用table函数时会提示找不到对象'equ'
attach(data)
table(equ)

#各组均值
result_mean <-aggregate(val,by = list(equ),FUN= mean)

#各组标准差
result_sd <-  aggregate(val,by = list(equ),FUN= sd)

#检验组间差异(ANOVA)
fit<-aov(val~equ)
summary(fit)

# 绘制各组均值及其置信区间的图形
plotmeans(val ~ equ,xlab = 'name',ylab = 'values',mean = 'an plot\nwith 95% CI')

# 如果p<0.05时,说明各组之间有显著性差异,具体哪些组之间有显著性差异,还要进行多重比较,TukeyHSD()函数提供了对各组均值差异的成
#对检验。 注意TukeyHSD()函数与本章使用的HH包存在兼容性问题:若载入HH包,TukeyHSD()函数将会失效。对于上例,使用detach("package::HH")将它从搜寻路
#径中删除,然后再调用TukeyHSD()
TukeyHSD(fit)

#对于单因素方差分析中,我们假设因变量服从正态分布,各组方差相等。可以使用Q-Q图来检验正态性假设。
library(car)
qqPlot(lm(val~equ,data=data),simulate = TRUE, main = "QQ Plot", labels = FALSE)


#做Bartlett检验方差齐性。其他检验如Fligner-Killeen检验(fligner.test()函数)和Brown-Forsythe检验(HH包中的hov()函数)
#p值大于0.05,所以表明各组方差并没有明显不同。
 bartlett.test(val~equ,data=data)
 
#方差齐性分析对离群点非常敏感,利用car包中的outlierTest()函数来检测离群点。
library(car)
outlierTest(fit)
#No Studentized residuals with Bonferonni p < 0.05 
# 。。。并没有证据说明数据含有离群点(当p>1时将产生NA)

其他一些方法:https://blog.csdn.net/Tiaaaaa/article/details/58134868

还没有验证过,后续操作。

你可能感兴趣的:(R)