Ich verwende lmer in R, um die Auswirkung von condition ( cond
) auf ein Ergebnis zu überprüfen . Hier sind einige aus Daten, wobei s der Objektidentifizierer und a
, b
und c
sind Bedingungen.
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))
Ich würde gerne vergleichen
- Ebene
a
zum Mittelwert der Ebenenb
undc
und - Level
b
zu Levelc
.
Meine Frage ist, wie ich die Kontraste so einstelle, dass der Achsenabschnitt den Mittelwert der drei Bedingungen widerspiegelt und die beiden berechneten Schätzungen die Unterschiede gemäß 1. und 2. direkt widerspiegeln.
Ich habe es mit versucht
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))
wo cond2
scheint in Ordnung zu sein, ist es aber cond1
nicht.
Folgen Wie werden diese benutzerdefinierten Kontraste interpretiert? Ich habe versucht, stattdessen die verallgemeinerte Inverse zu verwenden, aber diese Schätzungen sind auch nicht sinnvoll.
c2 <- t(ginv(c1))
gather(temp, cond, result, a, b, c) %>%
lmer(result ~ cond + (1|s), data = ., contrasts = list(cond = c2))
Ich habe auch Helmert-Kontraste ausprobiert, aber die Mittel stimmen immer noch nicht überein.
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))
Was ist der richtige Weg, um dies zu tun?