Я пытаюсь запустить линейную модель в R, которая не определяет перехват.Причина заключается в том, чтобы в итоге вычислить суммы квадратов, уменьшенных при добавлении перехвата.Тем не менее, я получаю разные результаты при указании этой модели с использованием встроенного фактора контрастов по сравнению с явным указанием значений контрастности (то есть, -.5 и .5).
Более конкретно, использование contrasts()
приводит к модели с 2 членами (без перехвата), в то время как явное указание значений контрастности через вектор столбца приводит к правильной модели (без перехвата и 1 члена, определяющего контраст).
group <- rep(c("c", "t"), each = 5)
group_cont <- rep(c(-.5, .5), each = 5)
var1 <- runif(10)
var2 <- runif(10)
test_data <- data.frame(
group = factor(group),
group_cont = group_cont,
y = var1,
x = var2
)
contrasts(test_data$group) <- cbind(grp = c(-.5, .5))
summary(lm(y ~ 1 + group, data = test_data)) # full model
summary(lm(y ~ 0 + group, data = test_data)) # weird results
summary(lm(y ~ 0 + group_cont, data = test_data)) # expected
Есть ли способ указать линейную модель без перехвата, но все же использовать contrasts()
для указания контраста?