如何使用合适的模型比较来测试裂区方差分析中的效果,以便与 R 中的X
和M
参数一起使用anova.mlm()
?我熟悉?anova.mlm
和 Dalgaard (2007)[1]。不幸的是,它只刷了裂区设计。在具有两个受试者内因素的完全随机设计中执行此操作:
N <- 20 # 20 subjects total
P <- 3 # levels within-factor 1
Q <- 3 # levels within-factor 2
DV <- matrix(rnorm(N* P*Q), ncol=P*Q) # random data in wide format
id <- expand.grid(IVw1=gl(P, 1), IVw2=gl(Q, 1)) # intra-subjects layout of data matrix
library(car) # for Anova()
fitA <- lm(DV ~ 1) # between-subjects design: here no between factor
resA <- Anova(fitA, idata=id, idesign=~IVw1*IVw2)
summary(resA, multivariate=FALSE, univariate=TRUE) # all tests ...
以下模型比较得出相同的结果。受限模型不包括相关效应,但所有其他相同或更低阶的效应,完整模型会添加相关效应。
anova(fitA, idata=id, M=~IVw1 + IVw2, X=~IVw2, test="Spherical") # IVw1
anova(fitA, idata=id, M=~IVw1 + IVw2, X=~IVw1, test="Spherical") # IVw2
anova(fitA, idata=id, M=~IVw1 + IVw2 + IVw1:IVw2,
X=~IVw1 + IVw2, test="Spherical") # IVw1:IVw2
具有一个主体内和一个主体间因子的Split-Splot 设计:
idB <- subset(id, IVw2==1, select="IVw1") # use only first within factor
IVb <- gl(2, 10, labels=c("A", "B")) # between-subjects factor
fitB <- lm(DV[ , 1:P] ~ IVb) # between-subjects design
resB <- Anova(fitB, idata=idB, idesign=~IVw1)
summary(resB, multivariate=FALSE, univariate=TRUE) # all tests ...
这些是anova()
复制测试的命令,但我不知道它们为什么起作用。为什么以下模型比较的测试会导致相同的结果?
anova(fitB, idata=idB, X=~1, test="Spherical") # IVw1, IVw1:IVb
anova(fitB, idata=idB, M=~1, test="Spherical") # IVb
两个主体内因素和一个主体间因素:
fitC <- lm(DV ~ IVb) # between-subjects design
resC <- Anova(fitC, idata=id, idesign=~IVw1*IVw2)
summary(resC, multivariate=FALSE, univariate=TRUE) # all tests ...
如何使用相应的模型比较复制上面给出的结果,以便与 的X
和M
参数一起使用anova.mlm()
?这些模型比较背后的逻辑是什么?
编辑:suncoolsu 指出,出于所有实际目的,应使用混合模型分析来自这些设计的数据。但是,我仍然想了解如何复制summary(Anova())
with的结果anova.mlm(..., X=?, M=?)
。