1 双因素方差分析
1.1 双因素方差分析的实线
dat<-ToothGrowth
dat
attach(dat)
table(dat$supp,dat$dose)
aggregate(len,by=list(dat$supp,dat$dose),FUN=mean)
解释:根据投方式(橙汁OJ,维C素VC)supp和剂量dose来对牙齿的长度len进行求均值
dose<-factor(dose)
解释:为了避免把dose变量认为是数值变量,而是把dose认为成分组变量,所以设置成因子类型factor
fit<-aov(dat$len~dat$supp*dat$dose)
解释:aov()做方差分析,把 + 换成了 * ,这两项dat$supp和dat$dosee就变成了交互项
summary(fit)
结果分析:可以看出P值很小,三个P值都小于0.05,说明不同的投喂方式supp对牙齿的生长长度len是有显著影响的;说明不同的剂量dose对牙齿的生长长度len是有显著影响的;说明在两种投喂方式下,不同的投喂方式supp和剂量dose的交互效应对牙齿的生长长度len是有显著影响的
1.2 可视化方法1
interaction.plot(dat$dose,dat$supp,dat$len,type = "b",
col=c("red","blue"),pch=c(16,18),main="XX")
1.3 可视化方法2
library(gplots)
plotmeans(dat$len~interaction(dat$supp,dat$dose,sep=" "),
connect=list(c(1,3,5),c(2,4,6)),col=c("red","blue"),main="XX",xlab="xlab")
1.4 可视化方法3
library(HH)
interaction2wt(dat$len~dat$supp*dat$dose)
2 重复测量方差分析
dat<-CO2
CO2$conc<-factor(CO2$conc)
w1b1<-subset(CO2,Treatment=="chilled")
uptake是植物光合作用对二氧化碳的吸收量,是因变量y,type是组间因子,是互斥的,表示的是两个不同地区的植物类型,要么是加拿大的植物,要么是美国的植物,不可能两个地方都是,conc是不同的二氧化碳的浓度,每一种植物都在所有的二氧化碳浓度下,所以conc是组内因子
研究不同地区的植物作用,在某种二氧化碳的浓度作用下,对植物的光合作用效果有没有影响
2.1 含有单个组内因子w和单个组间因子B的重复测量ANOVA
fit<-aov(uptake~conc*Type+Error(Plant/(conc)),w1b1)
summary(fit)
结果分析:二氧化碳浓度和类型对植物光合作用都有显著影响
2.2 可视化图形呈现
(1)方式一
par(las=2)
par(mar=c(10,4,4,2))
with(w1b1,interaction.plot(conc,Type,uptake,type = "b",
col=c("red","blue"),pch=c(16,18)))
(2)方式二
boxplot(uptake~Type*conc,data=w1b1,col=c("red","blue"))
3 多元方差分析
library(MASS)
attach(UScereal)
dat<-UScereal
shelf<-factor(shelf)
y<-cbind(calories,fat,sugars)
fit<-manova(y~shelf)
summary(fit)
结果分析:不同的货架shelf上,食物的热量calories,脂肪含量fat和含糖量sugars是非常显著不同的
3.1 多元正态性
center<-colMeans(y)
n<-nrow(y) #行数
p<-ncol(y) #列数
cov<-cov(y) #计算方差
d<-mahalanobis(y,center,cov)
coord<-qqplot(qchisq(ppoints(n),df=p),d) #画图
abline(a=0,b=1) #画参考线
identify(coord$x,coord$y,labels = row.names(UScereal)) #给出交互式标出离群点
3.2 稳健多元方差分析
install.packages("rrcov")
library(rrcov)
wilks.test(y,shelf,method="mcd")
结果分析:P值小于0.05,说明结果是显著性的,即不同货架上食物的热量calories,脂肪含量fat和含糖量sugars是非常显著不同的
4 用回归来做ANOVA
library(multcomp)
dat<-cholesterol
levels(dat$trt)
fit.aov<-aov(response~trt,data=dat)
summary(fit.aov)
结果分析:aov方差分析,trt对response的影响非常显著
fit.lm<-lm(response~trt,data=dat)
summary(fit.lm)
结果分析:lm回归分析,trt对response的影响非常显著,并且trt的每一项都显示出来了