Tôi đang sử dụng lmer trong R để kiểm tra ảnh hưởng của điều kiện ( cond
) đến một số kết quả. Dưới đây là một số tạo thành dữ liệu, trong đó s là nhận dạng đối tượng và a
, b
và c
là điều kiện.
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))
Tôi muốn so sánh
- mức
a
giá trị trung bình của các cấpb
vàc
và - mức độ
b
xuống mứcc
.
Câu hỏi của tôi là, làm thế nào để tôi đặt độ tương phản để làm điều này theo cách sao cho phần chặn phản ánh giá trị trung bình của ba điều kiện và hai ước tính được tính trực tiếp phản ánh sự khác biệt như được định nghĩa trong 1. và 2.?
Tôi đã thử với
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))
nơi cond2
có vẻ ổn, nhưng cond1
không phải.
Sau đây làm thế nào để giải thích những tương phản tùy chỉnh? , Tôi đã cố gắng sử dụng nghịch đảo tổng quát thay thế, nhưng những ước tính này cũng không có ý nghĩa.
c2 <- t(ginv(c1))
gather(temp, cond, result, a, b, c) %>%
lmer(result ~ cond + (1|s), data = ., contrasts = list(cond = c2))
Tôi cũng đã thử tương phản Helmert, nhưng phương tiện vẫn không khớp.
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))
cách chính xác để làm điều này là gì?