我在R中使用lmer来检查条件(cond
)对某些结果的影响。这是一些组成的数据,其中s是主题标识符a
,b
和c
是条件。
library("tidyr")
library("dplyr")
set.seed(123)
temp <- data.frame(s = paste0("S", 1:30),
a = rnorm(30, -2, 1),
b = rnorm(30, -3, 1),
c = rnorm(30, -4, 1))
我想比较
- 级别
a
的平均水平b
,并c
与 - 逐级
b
升级c
。
我的问题是,如何设置对比度以使截距反映三个条件的均值,而两个计算出的估计值直接反映1.和2中定义的差异?
我尝试过
c1 <- cbind(c(-0.5, 0.25, 0.25), c(0, -0.5, 0.5))
gather(temp, cond, result, a, b, c) %>%
lmer(result ~ cond + (1|s), data = ., contrasts = list(cond = c1))
这里cond2
似乎是美好的,但cond1
并非如此。
以下如何解释这些自定义对比?,我尝试改用广义逆,但是这些估计也没有意义。
c2 <- t(ginv(c1))
gather(temp, cond, result, a, b, c) %>%
lmer(result ~ cond + (1|s), data = ., contrasts = list(cond = c2))
我也尝试过Helmert对比,但方法仍然不匹配。
gather(temp, cond, result, a, b, c) %>%
mutate(cond = factor(cond, levels = c("c", "b", "a"))) %>%
lmer(result ~ cond + (1|s), data = ., contrasts = list(cond = contr.helmert))
正确的方法是什么?
这听起来像是Helmert对比(c是第一个级别,然后是b,然后是a)。
—
Michael M
我也尝试过Helmert,但数字并不是我想要的手段。我已经编辑了问题,以包括赫尔默特对比,谢谢。
—
M4RT1NK4 2015年