我正在尝试在R中运行重复测量Anova,然后对该数据集进行一些特定的对比。我认为正确的方法是
Anova()
从汽车包装中使用。
让我们用?Anova
使用
OBrienKaiser
数据的示例来说明我的问题(注意:我省略了示例中的性别因素):
我们设计了一个在受试者因素,治疗之间(3个级别:对照,A,B)和两个重复的因素-测量(在受试者内)因素,阶段(3个级别:测试前,测试后,随访)和小时(5个级别:1至5)。
标准ANOVA表的给出方式为(与example(Anova)不同,我切换到Type 3 Squares of Squares,这是我的领域想要的):
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))
我的想法是运行另一种方差分析以忽略不需要的治疗条件(对照):
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
。但是,教科书ANOVA与anove(lme)
由于标准ANOVA可能出现负方差而导致的lme
返回值(在中不允许)之间的F和p值之间存在微小差异。与此相关的是,有人指出gls
允许重复测量方差分析(ANOVA),但是它没有对比论证。
澄清一下:我想要一个F或t检验(使用III型平方和)来回答所需的对比度是否显着。
更新:
不久前,对R-help提出了类似的问题。但是,答案也不能解决问题。
更新(2015):
由于此问题仍会产生一些活动,因此可以使用afex小插图中所述afex
的lsmeans
包装与包装相结合,相对轻松地指定这些内容以及基本上所有其他对比。
treatment
,3)每个人的平均水平超过prePostFup
,4)每个人的平均水平1,2(=数据组1)以及超过3,4(=数据组2),5)的小时数,对2个相关组进行t检验。由于Maxwell&Delaney(2004)和Kirk(1995)不鼓励在内部设计中使用汇总误差项进行对比,因此这可能是一个简单的选择。