我正在尝试在 R 中运行重复测量 Anova,然后对该数据集进行一些特定的对比。我认为正确的方法是
Anova()
从汽车包装中使用。
让我们用?Anova
使用
OBrienKaiser
数据的例子来说明我的问题(注意:我从例子中省略了性别因素):
我们有一个设计,在受试者因素、治疗(3 个水平:控制、A、B)和 2 个重复之间-测量(在受试者内)因素、阶段(3 个级别:前测、后测、后续)和小时(5 个级别:1 到 5)。
标准方差分析表由(与示例(方差分析)不同,我切换到类型 3 平方和,这就是我的领域想要的):
require(car)
phase <- factor(rep(c("pretest", "posttest", "followup"), c(5, 5, 5)),
levels=c("pretest", "posttest", "followup"))
hour <- ordered(rep(1:5, 3))
idata <- data.frame(phase, hour)
mod.ok <- lm(cbind(pre.1, pre.2, pre.3, pre.4, pre.5, post.1, post.2, post.3, post.4, post.5, fup.1, fup.2, fup.3, fup.4, fup.5) ~ treatment, data=OBrienKaiser)
av.ok <- Anova(mod.ok, idata=idata, idesign=~phase*hour, type = 3)
summary(av.ok, multivariate=FALSE)
现在,假设最高阶交互会很重要(事实并非如此),我们想通过以下对比进一步探索它:
1 小时和 2 小时与 3 小时(对比 1)之间以及 1 和 2 小时之间是否存在差异与治疗条件(A 和 B 一起)中的 4 和 5 小时(对比 2)相比?
换句话说,我如何指定这些对比:
((treatment %in% c("A", "B")) & (hour %in% 1:2))
相对((treatment %in% c("A", "B")) & (hour %in% 3))
((treatment %in% c("A", "B")) & (hour %in% 1:2))
相对((treatment %in% c("A", "B")) & (hour %in% 4:5))
我的想法是运行另一个 ANOVA 忽略不需要的治疗条件(对照):
mod2 <- lm(cbind(pre.1, pre.2, pre.3, pre.4, pre.5, post.1, post.2, post.3, post.4, post.5, fup.1, fup.2, fup.3, fup.4, fup.5) ~ treatment, data=OBrienKaiser, subset = treatment != "control")
av2 <- Anova(mod2, idata=idata, idesign=~phase*hour, type = 3)
summary(av2, multivariate=FALSE)
但是,我仍然不知道如何设置适当的主体内对比度矩阵,将 1&2 小时与 3 小时以及 1&2 小时与 4&5 小时进行比较。而且我不确定省略不需要的治疗组是否确实是一个好主意,因为它会改变整体误差项。
在去之前Anova()
我也想去lme
。anove(lme)
但是,由于标准 ANOVA 中可能存在负方差(在 ANOVA 中是不允许的lme
) ,教科书 ANOVA 与返回的值之间的 F 和 p 值存在微小差异。相关地,有人指出我gls
允许拟合重复测量方差分析,但是,它没有对比参数。
澄清一下:我想要一个 F 或 t 检验(使用 III 型平方和)来回答所需的对比是否显着。
更新:
我已经在 R-help 上问了一个非常相似的问题,没有答案。
前段时间在 R-help 上提出了类似的问题。但是,答案也没有解决问题。
更新(2015 年):
由于这个问题仍然会产生一些活动,因此现在可以通过与afex vignette中描述的afex
包相结合的包来相对容易地指定论文和基本上所有其他对比。lsmeans