将要检验的对象称为因素或因子,因素或因子的不同表现称为水平,每个因子水平下得到的样本数据称为观测值。方差分析关注的是三个或更多总体的均值是否相等的问题
基本假设:1.正态假设(W检验),因素每个水平的观测值样本都来自正态总体;2.方差齐性假设(多样本bartlett检验),各个总体分布的方差相同;3.独立假设,观测值之间相互独立
bartlett.test(x,g,...)
#x-数据向量或列表,g-因子向量(当x为list时忽略g)
bartlett.test(formula,data,subset,na.action,...) #formula-方差分析公式,subset-
指定观测值的子集用于分析
x<-c(x1,x2,x3)
accout<-data.frame(x=x,A=factor(rep(c(1,2,3),each=7)))
bartlett.test(x~A,data=accout)
library("car")
levene.test(x,group),原假设:不同水平下样本的来源总体是等方差的
#p值修正函数
p.adjust(p,method=p.adjust.methods,n=length(p))
p.adjust.methods
[1] "holm" "hochberg" "hommel" "bonferroni" "BH" "BY" "fdr"
[8] "none"
#当多重检验次数较多时,bonferroni修正方法较好(思路:在同一数据集不同水平上同时进行n次假设检验,每一个假设的显著水平=α/n,n为多重t检验次数)
#使用pairwise.t.test()返回多重比较的修正p值(一般比原来大)
pairwise.t.test(x,g,p.adjust.method=p.adjust.methods,pool.sd=!paired,paired=FALSE,alternative=c("two.sided","greater","less")...)
#x-响应变量,g-因子变量,p.adjust.methods默认holm(如果不作任何调整设置成none),paired-是否要配对t检验
#返回各因子水平下两两配对检验的P值矩阵
单因素方差分析又被称为单因素组间(或组内)方差分析(one-way anova)。方差分析主要通过F检验来进行效果评测。单因素方差分析是一个影响因素下不同水平组均值之间差异的显著性检验(例:考察地区差异对妇女生育率的影响)
原假设H0:无差异(单因素A的不同水平来自相同的正态总体,各个水平造成的均值差异无统计意义);H1:有显著差异
#1.在满足方差齐性的条件下,使用oneway.test等同于aov()
oneway.test(weight~group,data=plantgrowth,var.equal=T)
#2.aov()函数,projections是否返回预测结果,qr是否返回QR分解结果,通过summary()列出方差分析表的详细结果
aov(formula,data=NULL,projections=FALSE,qr=TRUE,contrasts=NULL,...)
a.aov=aov(x~A,data=accout)
summary(a.aov) #输出的分析结果对应一个方差分析表
plot(accout$x~accout$A)
#3.更多有关分析的详细信息可以通过anova来实现,但anova结果的得到需要建立在线性模拟函数lm的基础上来调用,aov(formula)==anova(lm(formula))
anova(lm(weight~group,data=plantgrowth)):可以显示出组间离差平方和和自由度
#4.各水平的总体方差不相等时,则使用welch近似方法,在任意多样本的情况下做两样本welch检验
oneway.test(weight~group,data=plantgrowth,var.equal=F)
1.不考虑交互作用的两因素方差分析
检查两个因素各自变异对观察结果有无显著性影响
#首先将A|B声明成因子
A<-factor(A)
B<-factor(B)
tian<-aov(range~A+B) #拟合方差分析模型
summary(tian) #得到分析结果
2.考虑交互作用的两因素方差分析
若A和B两因素存在交互影响,则这种交互作用也可能对各观察值的总体水平差异产生影响,这需要对每种水平的组合进行若干次的独立观察,也被称为重复观察的两因素方差分析
交互作用原假设:不存在A、B交互作用的影响
tian<-aov(range~A+B+A*B)或者tian<-aov(range~A:B)