Saya menggunakan lmer di R untuk memeriksa efek kondisi ( cond
) pada beberapa hasil. Berikut adalah beberapa data yang dibuat, di mana s adalah pengidentifikasi subjek dan a
, b
dan c
kondisi.
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))
Saya ingin membandingkan
- level
a
ke rata-rata levelb
danc
dan - level
b
ke levelc
.
Pertanyaan saya adalah, bagaimana cara mengatur kontras untuk melakukan ini sedemikian rupa sehingga intersep mencerminkan rata-rata dari tiga kondisi dan dua estimasi yang dihitung secara langsung mencerminkan perbedaan sebagaimana didefinisikan dalam 1. dan 2.?
Saya mencoba
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))
di mana cond2
tampaknya OK, tetapi cond1
tidak.
Mengikuti Bagaimana menafsirkan kontras khusus ini? , Saya mencoba menggunakan invers umum, sebagai gantinya, tetapi perkiraan ini juga tidak masuk akal.
c2 <- t(ginv(c1))
gather(temp, cond, result, a, b, c) %>%
lmer(result ~ cond + (1|s), data = ., contrasts = list(cond = c2))
Saya mencoba kontras Helmert juga, tetapi cara masih tidak cocok.
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))
Apa cara yang benar untuk melakukan ini?