从我对频率论分层模型的外行理解来看,似然函数中内置了一些惩罚机制,可以防止随机效应过度拟合数据,而是将它们“收缩”到群体平均值。显然,这种惩罚机制有时可以由建模者调整,以反映他们的信念,即组的随机效应之间的方差应该比似然函数的默认设置所实现的更多/更少。这是R中glmmTMB的一个选项吗?是否存在可调整的设置/参数,以调节归因于随机效应的方差?
glmmTMB
lskq00tm1#
是的,您可以通过使用map参数指定哪些模型参数应该是固定的而不是估计的(并使用start指定其值),将随机效应方差设置为您想要的任何值。为了说明,首先拟合模型(为简单起见,只有一个随机效应方差的模型),看看数据(+假设)说方差“应该”是什么:
map
start
library(glmmTMB)data("sleepstudy", package = "lme4")m1 <- glmmTMB(Reaction ~ Days + (1|Subject), sleepstudy)VarCorr(m1)
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
Conditional model:
Groups Name Std.Dev.
Subject (Intercept) 36.012
Residual 30.895
现在假设我们认为模型(由于某种原因)高估了受试者间方差,即主题截取“应当”被更紧密地分组。我们需要知道随机效应是在log-SD尺度上参数化的,相关参数称为theta(在covstruct vignette的“Map”部分有一点信息)。
theta
m2 <- update(m1, map = list(theta = factor(NA)), start = list(theta = log(10)))
m2 <- update(m1,
map = list(theta = factor(NA)),
start = list(theta = log(10)))
(You不必使用update()-您可以使用这些参数从头开始拟合模型。)检查这是否有效:
update()
Conditional model: Groups Name Std.Dev. Subject (Intercept) 10.000 Residual 37.248
Subject (Intercept) 10.000
Residual 37.248
您可以查看固定效应及其SE等。看看这个选择对模型的其他部分有什么影响。
1条答案
按热度按时间lskq00tm1#
是的,您可以通过使用
map
参数指定哪些模型参数应该是固定的而不是估计的(并使用start
指定其值),将随机效应方差设置为您想要的任何值。为了说明,首先拟合模型(为简单起见,只有一个随机效应方差的模型),看看数据(+假设)说方差“应该”是什么:
现在假设我们认为模型(由于某种原因)高估了受试者间方差,即主题截取“应当”被更紧密地分组。
我们需要知道随机效应是在log-SD尺度上参数化的,相关参数称为
theta
(在covstruct vignette的“Map”部分有一点信息)。(You不必使用
update()
-您可以使用这些参数从头开始拟合模型。)检查这是否有效:您可以查看固定效应及其SE等。看看这个选择对模型的其他部分有什么影响。