Многоходовое взаимодействие: простой способ получить числовые оценки коэффициентов?
Допустим, есть четырехстороннее взаимодействие с факториальным дизайном 2x2x2 плюс непрерывная переменная. Факторы имеют кодировку контраста по умолчанию (contr.treatment
). Вот пример:
set.seed(1)
cat1 <- as.factor(sample(letters[1:2], 1000, replace = TRUE))
cat2 <- as.factor(sample(letters[3:4], 1000, replace = TRUE))
cat3 <- as.factor(sample(letters[5:6], 1000, replace = TRUE))
cont1 <- rnorm(1000)
resp <- rnorm(1000)
df <- data.frame(cat1, cat2, cat3, cont1, resp)
mod <- lm(resp ~ cont1 * cat1 * cat2 * cat3, data = df)
Глядя на выводcoef(mod)
мы получаем что-то вроде:
(Intercept) cont1 cat1b
0.019822407 0.011990238 0.207604677
cat2d cat3f cont1:cat1b
-0.010132897 0.105397591 -0.001153867
cont1:cat2d cat1b:cat2d cont1:cat3f
0.023358901 -0.194991402 0.060960695
cat1b:cat3f cat2d:cat3f cont1:cat1b:cat2d
-0.240624582 -0.117278931 -0.069880751
cont1:cat1b:cat3f cont1:cat2d:cat3f cat1b:cat2d:cat3f
-0.120446848 -0.141688864 0.136945262
cont1:cat1b:cat2d:cat3f
0.201792298
И чтобы получить предполагаемый перехват дляcat1b
(например), мы бы добавили нашу неявную(Intercept)
срок иcat1b
т.е.coef(mod)[1] + coef(mod)[3]
, Чтобы получить изменение наклона для той же категории, мы использовали быcoef(mod)[2] + coef(mod)[6]
, а ля этот р-блоггеров пост, Становится довольно утомительно выписывать их все, иmethods(class="lm")
не похоже, что у него есть какие-либо функции, которые делают это прямо из ворот.
Есть ли какой-то очевидный способ получить численные оценки для пересечения и наклона для каждой комбинации факторов?