R 中 2 因子重复测量 ANOVA 后的事后检验?

机器算法验证 r 方差分析 重复测量 事后 tukey-hsd-测试
2022-03-28 08:46:01

我在寻找关于如何在 R 中的 2 因子(包括受试者内)重复测量方差分析之后运行事后测试(Tukey HSD)的解决方案时遇到问题。对于方差分析,我使用了 aov -函数:

summary(aov(dv ~ x1 * x2 + Error(subject/(x1*x2)), data=df1))

在阅读了其他问题的答案后,我了解到我首先必须使用其他一些功能(例如 lme)重新运行 ANOVA。这就是我想出的。

Lme.mod <- lme(dv ~ x1*x2, random=list(subject=pdBlocked(list(~1, pdIdent(~x1-1), pdIdent(~x2-1)))), data=df1)
anova(Lme.mod)

两个主效应都很显着,但没有交互效应。然后,我使用这些函数进行事后比较:

summary(glht(Lme.mod, linfct=mcp(x1="Tukey")))
summary(glht(Lme.mod, linfct=mcp(x2="Tukey")))

但是,出现了一些问题:

首先,R 帮助文件说“在定义双向 ANOVA 或 ANCOVA 模型中感兴趣的参数时,必须小心使用 mcp 函数 (...) multcomp 版本 1.0-0 及更高版本会生成主要效果的比较仅,忽略协变量和交互(旧版本自动对交互项进行平均)。给出警告。” 果然,我收到了以下警告信息:

Warning message:
In mcp2matrix(model, linfct = linfct) :
covariate interactions found -- default contrast might be inappropriate

另一个令人费解的事情是,虽然两个主效应都很显着,但其中一个因素 (x1) 的事后比较没有显着差异。我以前从未遇到过这种情况。脚本/分析是否正确/适当,还是我遗漏了什么?非常感激任何的帮助!

2个回答

df1$x1x2=interaction(df1$x1,df1$x2)
library(lmerTest)
Lme.mod <- lme(dv ~ x1x2, random=~1|subject,
               correlation=corCompSymm(form=~1|subject),
               data=df1)
anova(Lme.mod)
summary(glht(Lme.mod, linfct=mcp(x1x2="Tukey")))

是你所追求的,即在因子 x1 和 x2 的所有测量水平组合中进行事后测试?(我还施加了复合对称性,以使 lme 结果与重复测量 aov 调用的结果相匹配)

Tukey 多重比较测试

  1. 安装 multcomp 包 install.packages("multcomp")

  2. 使 multcomp 可供使用库(“multcomp”)

  3. 检查它是否正在运行 - 解释当前在 R search() 中打开了哪些包

然后使用函数 glht()