Я использую lmer в R, чтобы проверить влияние условия ( 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))
Я тоже попробовал контрасты Хельмерта, но средства все равно не совпадают.
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))
Как правильно это сделать?