1 方差分析 ANOVA
当包含的因子是解释变量时,我们关注的重点通常会从预测转向组别差异的分析,这种分析方法称作方差分析(ANOVA)
2 单因素方差分析
2.1 单因素比较
install.packages("multcomp")
library(multcomp)
dat<-cholesterol #此数据集只有两列,第一列是使用的方法,第二列是指标
attach(dat)
table(dat)
aggregate(response,by=list(trt),FUN=mean) #查看每种方法的平均,可以看出平均数差别很大
fit<-aov(response~trt) #做方差分析模型
summary(fit) #查看方差分析的结果
结果分析:看到Pr(>F)值很小,小于0.05,并且后面有三颗星星,说明结果是非常显著的,说明这五种方法的疗效是有区别的
2.2 多重比较
TukeyHSD(fit)
结果分析:观察 p adj,即P值,P值小于0.05,说明这两个方法的差异显著,若P值大于0.05,说明这两个方法的的效果相差不大
par(las=2)
par(mar=c(5,8,4,2))
plot(TukeyHSD(fit))
结果分析:如图所示,黑色横线触碰到了竖着的虚线,就说明这两个方法之间的疗效不显著
2.3 评估检验的假设条件
(1)因变量y服从正太分布
library(car)
dat<-cholesterol
qqPlot(lm(response~trt,data=dat),simulate = T)
结果分析:样本基本在两条虚线之间,就说明此样本服从正太分布
(2)各组之间方差相等
library(car)
dat<-cholesterol
bartlett.test(response~trt,data=dat)
结果分析:p-value = 0.9653,P值很大,说明这五组的方差没有很大的不同,可以满足方差齐次性的假设
3 单因素协方差分析
3.1 ANOVA的实线
library(multcomp)
data(litter,package="multcomp")
attach(litter)
table(litter$dose) #统计不同剂dose量的频数
aggregate(litter$weight,by=list(litter$dose),FUN=mean)
解释:根据剂量dose的不同,查看重量weight的平均值mean
fit<-aov(litter$weight~litter$gesttime+litter$dose)
解释:方差分析的顺序特别重要,与回归分析不一样,litter$weight~litter$gesttime+litter$dose这样写的意思是排除协变量litter$gesttime的影响,分析变量litter$dose对litter$weight的影响
summary(fit)
结果分析:P值小于0.05,后面就会有星星,说明统计是显著的,说明剂量dose会影响重量weight
错误:参数的长度必需一样
修正:要指定具体的是哪一个表的哪一列
3.2 评估检验的假设条件
fit2<-aov(weight~gesttime*dose,data=litter)
解释:把 + 换成了 * ,这两项gesttime和dose就变成了交互项
summary(fit2)
3.3 结果的可视化
install.packages("HH")
library(HH)
ancova(weight~gesttime+dose,data=litter)
请发表评论