根据我对常客层次模型的外行理解,似然函数中内置了一些惩罚机制,可以防止随机效应过度拟合数据,而是将它们“收缩”到组均值。
显然,这种惩罚机制有时可以由建模者进行调整,以反映他们的信念,即与似然函数的默认设置相比,各组随机效应之间的差异应该更多/更少。
这是 R 中带有
glmmTMB
的选项吗?是否有可以调整的设置/参数来调节归因于随机效应的方差?
是的,您可以将随机效应方差设置为您想要的任何值,方法是使用
map
参数指定哪些模型参数应该固定而不是估计(和 start
指定它们的值)。
为了说明,首先拟合模型(为简单起见,只有一个随机效应方差的模型)以查看数据(+假设)表示方差“应该”是什么:
library(glmmTMB)
data("sleepstudy", package = "lme4")
m1 <- glmmTMB(Reaction ~ Days + (1|Subject), sleepstudy)
VarCorr(m1)
Conditional model:
Groups Name Std.Dev.
Subject (Intercept) 36.012
Residual 30.895
现在假设我们认为模型(出于某种原因)高估了主体间方差,即主体截距“应该”更紧密地分组。
我们需要知道随机效应是在对数 SD 尺度上参数化的,并且相关参数称为
theta
(在 covstruct 小插图的“映射”部分中有little 信息).
m2 <- update(m1,
map = list(theta = factor(NA)),
start = list(theta = log(10)))
(您不必使用
update()
- 您可以使用这些参数从头开始拟合模型。)检查这是否有效:
Conditional model:
Groups Name Std.Dev.
Subject (Intercept) 10.000
Residual 37.248
您可以查看固定效果及其 SE 等,以了解此选择如何影响模型的其余部分。