Estoy usando lmer en R para verificar el efecto de la condición ( cond
) en algún resultado. Aquí están algunos hechos de seguridad de datos, donde s es el identificador de objeto y a
, b
y c
son condiciones.
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))
Me gustaria comparar
- el nivel
a
de la media de los nivelesb
yc
y - nivel
b
a nivelc
.
Mi pregunta es, ¿cómo configuro los contrastes para hacer esto de tal manera que la intersección refleje la media de las tres condiciones y las dos estimaciones calculadas reflejen directamente las diferencias definidas en 1. y 2.?
Lo intenté con
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))
donde cond2
parece estar bien, pero cond1
no lo está.
Siguiente ¿Cómo interpretar estos contrastes personalizados? , Intenté usar el inverso generalizado, pero estas estimaciones tampoco tienen sentido.
c2 <- t(ginv(c1))
gather(temp, cond, result, a, b, c) %>%
lmer(result ~ cond + (1|s), data = ., contrasts = list(cond = c2))
También probé los contrastes de Helmert, pero los medios aún no coinciden.
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))
¿Cuál es la forma correcta de hacer esto?