1.单因素方差分析:适用于单因素A有两个水平或以上,研究个水平对因变量的影响
正态假设条件:W检验
shapiro.test():原假设为数据来自正态分布
方差齐性条件:Bartlett检验(主要用于正态分布的数据)
bartlett.test(x, g, ...)
x是数据向量或列表(list);g是因子向量,如果x是列表则忽略g。
当使用数据集时,也可以通过formula调用函数
bartlett.test(formula, data, subset, na.action, ...)
formula是形如lhs~rhs的方差分析公式;data是数据集;subset指定观测值的子集用于分析;na.action表示对缺失值进行的行为
Levene检验(可用于正态分布,也用于非正态,较稳健)
levene.test():car包
levene.test(x,group)
x是数据向量,group是因子向量
单因素方差分析:目的是比较在因素A的r个水平下,实验结果是否有明显差异
aov():
aov(formula, data = NULL, projections = FALSE, qr = TRUE, contrasts = NULL, ...)
formula表示方差分析的公式,单因素中为x~A;data表示数据框;projections逻辑值,表示是否返回预测结果;qr表示是否返回qr分解结果;contrasts是公式中的一些因子的对比列表
oneway.test():
oneway.test(formula, data, subset, na.action, var.equal = FALSE)
若各水平下总体方差相等,则设置var.equal=TRUE,结果同aov()。默认方差不等,采用Welch近似方法。
也可以用lm()计算,然后使用anova()提取计算结果:anova(lm(formula))
多重t检验:检验两两水平下的样本之间的差异是否明显
pairwise.t.test():
pairwise.t.test(x, g, p.adjust.method=p.adjust.methods, pool.sd=!paired,paired=FALSE,alternative = c("two.sided","less","greater"),...)
x是响应向量;g是因子向量;p.adjust.method给出P值的修正方法,默认为Holm,当多重检验次数较多时,推荐使用"bonferroni";paired为逻辑值,指示是否配对t检验;alternative指明检验的方向
秩和检验:采用秩样本进行比较,可以摆脱总体分布的束缚,不需要满足正态性和方差齐性,比较两个以上总体
krustal.test():
krustal.test(x,...)
krustal.test(x,g,...)
krustal.test(formula, data, subset, na.action, ...)
x是数据的向量或列表;g是由因子构成的向量,当x是列表时忽略g;formula是方差分析的公式;data是数据框;subset指定子集;na.action指定遇到缺失值的处理方法
双因素方差分析:只需将公式中的x~A改为x~A+B(无交互)或x~A*B(有交互),仍用aov()
生成因子水平:gl()
gl(n, k, length= n*k, labels = 1:n, ordered = FALSE)
n是因子的水平个数;k表示每一水平上重复的次数;labels对因子的不同水平添加标签;ordered为逻辑值,指示是否排序
绘制交互效应图:
interaction.plot()
interaction(x.factor, trace.factor, response, fun = mean, type = c("l","p","b","o","c"),legend=TRUE,trace.label = deparse(substitute(trace.factor)),...)
x.factor表示横轴的因子;trace.factor表示分类绘图的因子;response是数值向量,要输入响应变量;fun表示汇总数据的方式,默认为计算每个因子水平下的均值;type指定图形类型;legend是逻辑值,表示是否生成图例;trace.label给出图例中的标签
协方差分析: 实验个体初始条件不同,考虑这些不可控的因素的方差分析
ancova():HH包
ancova(formula, data.in = NULL, ..., x, groups)
formula指定模型;data.in指定输入数据框;x为协方差分析中的协变量,在作图时如果formula中不包括x则需要指明;groups指明绘图时分组的条件因子,当formula中的“|”后面不包括变量时使用