glmer vs lmer,二项式结果最好的是什么?

机器算法验证 r 混合模式 lme4-nlme 重复测量 随机效应模型
2022-03-28 15:12:56

我正在尝试用二元结果拟合混合效果模型。我有一个固定效果(偏移)和一个随机效果(房间,每个房间都有多个数据点)。

在教科书“The R Book”(2007 年)第 604 页中,Crawley 建议使用带有二项式家族的 lmer 函数来分析二项式数据,其中每个参与者贡献多个响应(类似于我的每个房间贡献多个结果) . 基于此示例,我为我的数据使用了以下脚本:

    ball=lmer(Buried~Offset+(1|Chamber), family=binomial, data=ballData)

当我运行这个模型时,我收到了这个警告:

    calling lmer with 'family' is deprecated; please use glmer() instead

当我将代码更改为以下内容时,该模型有效:

    ball=glmer(Buried~Offset+(1|Chamber), family=binomial, data=ballData)

根据我在 Cross Validated 上阅读的其他问题/答案,lmer 应仅用于结果呈正态分布的数据,而 glmer 是用于二项式结果的正确函数。我的问题是:

1)谁能澄清克劳利的建议与 lmer 对我不起作用这一事实之间的差异(根据我在 CVed 上阅读的内容,是否建议将此函数用于二项式数据)

2) glmer 确实是用于对具有随机因素的二项式结果进行建模的正确函数吗?

3)假设 glmer 是正确使用的函数,我想比较一个有和没有随机效应的模型,以确定包括随机效应是否会提高模型的拟合度。我知道 glmer 通过最大似然估计模型参数。对于使用最大似然的二元结果,我可以使用什么函数来创建一个没有随机效应的模型?我在玩 glm 但是这个函数的帮助文件指出估计方法是迭代重新加权最小二乘法(这超出了我的范围,但它不是 ML ......)

2个回答

1) 在以前版本的lme4软件包中,您可以lmer使用该binomial系列运行。但是,所有这些只是实际调用glmer,并且此功能现在已被删除。因此,在撰写本文时,克劳利是正确的。

2)是的,glmer是与二进制结果一起使用的正确函数。

3)glm可以在没有随机效应的情况下拟合二进制数据的模型。但是,将拟合的模型glmglmer使用基于似然的检验拟合的模型进行比较是不正确的,因为似然不可比。根据您的描述,您在房间内有重复的措施。因此,假设您有足够的腔室并且这些可以被认为是来自更多腔室的随机样本,那么您应该先验地保留随机截距,Chamber以控制腔室内观察的可能非独立性。您可以将随机截距视为实验设计的一部分。

另一方面,如果随机效应方差非常小和/或对glmglmer模型的推断或预测大致相同,那么无论如何使用哪个都无关紧要。

对于 2,是的,您应该使用 glmer 或 glm 作为二项式结果。如果您有更多时间等待模型拟合——特别是如果你对随机效应的推断感兴趣——我建议分别使用rstanarm::stan_glmer()rstanarm::stan_glm,它们使用相同的语法。这里的巨大好处是您的不确定性估计来自真正的后验。您的预测还将包括参数的不确定性。一个提示:确保将数据缩放为个位数。

请注意,随机效应的后验密度往往会出现偏差,因此使用基于似然的方法(如 lme4 中的方法)往往会给您带来糟糕的随机效应估计。

3)该loo软件包允许stan_使用近似值来比较您的拟合度,以留一法交叉验证。我建议看看。

https://cran.r-project.org/web/packages/rstanarm/vignettes/glmer.html