【发布时间】:2021-03-05 08:31:48
【问题描述】:
我有一个带有mod <- lmer(value ~ time + study + (1|participant)) 形式的因子的模型,我对研究系数并不真正感兴趣,但出于各种原因希望将其保持为固定值。但我想在没有研究系数影响的情况下从mod 进行预测。我已经对学习系数进行了总和编码,因此我真的只需要一种方法来删除学习系数。
手动根据系数计算预测似乎有点麻烦。我想另一种选择是用零替换研究系数(Replace lmer coefficients in R)
有更好的想法吗?
一个最小的例子:
library("lme4")
df <- data.frame(
participant = as.factor(c(1,1,1,2,2,2,3,3,3,4,4,4)),
time = as.factor(c(1,2,3,1,2,3,1,2,3,1,2,3)),
study = as.factor(c("A", "A", "A", "B", "B", "B", "A","A", "A", "C", "C", "C")),
value = c(1,2,3,3,4,1,3,5,3,1,7,2)
)
contrasts(df$study) = contr.sum(length(unique(df$study)))
mod <- lmer(value ~ time + study + (1|participant), data = df)
predict(mod, newdata = data.frame(time = as.factor(c(1,2,3))), re.form=NA)
【问题讨论】:
-
您能否指定尝试忽略
study变量的原因?在您上面指定的(分层)线性模型中,它只是简单的统计数据,预测器参数将相对于其他预测器进行计算。如果您只想为不同的研究存储不同的模型(从变量名猜测),您可以存储例如将它们存储在列表中。 -
我更愿意将
study包含为随机截距,因为研究之间存在基线差异。由于研究数量较少,我们更愿意将其作为固定变量包含在内,以考虑基线差异,但仍对平均人口水平进行预测