Ответ прост: то, чего вы хотите, напрямую невозможно. Вы должны использовать немного другой подход.
В модели с взаимодействиями вы хотите использовать контрасты, в которых среднее значение равно нулю, а не конкретному уровню. В противном случае эффекты более низкого порядка (т. Е. Основные эффекты) являются не основными эффектами, а простыми эффектами (оцениваются, когда уровень другого фактора находится на его эталонном уровне). Более подробно это объясняется в моей главе о смешанных моделях: http://singmann.org/download/publications/singmann_kellen-introduction-mixed-models.pdf
Чтобы получить то, что вы хотите, вы должны подобрать модель разумным образом, а затем передать ее emmeans
для сравнения с перехватом (т.е. невзвешенным большим средним). Это также работает для взаимодействий, как показано ниже (поскольку ваш код не работал, я использую warpbreaks
).
afex::set_sum_contrasts() ## uses contr.sum globally
library("emmeans")
## model
m1 <- lm(breaks ~ wool * tension,data=warpbreaks)
car::Anova(m1, type = 3)
coef(m1)[1]
# (Intercept)
# 28.14815
## both CIs include grand mean:
emmeans(m1, "wool")
# wool emmean SE df lower.CL upper.CL
# A 31.0 2.11 48 26.8 35.3
# B 25.3 2.11 48 21.0 29.5
#
# Results are averaged over the levels of: tension
# Confidence level used: 0.95
## same using test
emmeans(m1, "wool", null = coef(m1)[1], infer = TRUE)
# wool emmean SE df lower.CL upper.CL null t.ratio p.value
# A 31.0 2.11 48 26.8 35.3 28.1 1.372 0.1764
# B 25.3 2.11 48 21.0 29.5 28.1 -1.372 0.1764
#
# Results are averaged over the levels of: tension
# Confidence level used: 0.95
emmeans(m1, "tension", null = coef(m1)[1], infer = TRUE)
# tension emmean SE df lower.CL upper.CL null t.ratio p.value
# L 36.4 2.58 48 31.2 41.6 28.1 3.196 0.0025
# M 26.4 2.58 48 21.2 31.6 28.1 -0.682 0.4984
# H 21.7 2.58 48 16.5 26.9 28.1 -2.514 0.0154
#
# Results are averaged over the levels of: wool
# Confidence level used: 0.95
emmeans(m1, c("tension", "wool"), null = coef(m1)[1], infer = TRUE)
# tension wool emmean SE df lower.CL upper.CL null t.ratio p.value
# L A 44.6 3.65 48 37.2 51.9 28.1 4.499 <.0001
# M A 24.0 3.65 48 16.7 31.3 28.1 -1.137 0.2610
# H A 24.6 3.65 48 17.2 31.9 28.1 -0.985 0.3295
# L B 28.2 3.65 48 20.9 35.6 28.1 0.020 0.9839
# M B 28.8 3.65 48 21.4 36.1 28.1 0.173 0.8636
# H B 18.8 3.65 48 11.4 26.1 28.1 -2.570 0.0133
#
# Confidence level used: 0.95
Обратите внимание, что для coef()
вы, вероятно, захотите использовать fixef()
для lme4
моделей.
person
Henrik
schedule
07.07.2020