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, bvà clà đ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
agiá trị trung bình của các cấpbvàcvà - mức độ
bxuố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 cond2có vẻ ổn, nhưng cond1khô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ì?