如何使用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=?)
。
lme4
包来拟合模型,而没有使用lm
。但这可能是一个非常具体的基于书本的视图。我会让其他人对此发表评论。我可以根据我的解释给出一个与您不同的示例。