如何解决GLMM 中的 Gamma 分布
我正在尝试在 R 中创建一个 GLMM。我想了解蝙蝠的出现时间如何取决于不同的因素。在这里,我将各个蝙蝠的离开和当天日落之间的时间差作为因变量(公制)。作为固定因素,我想包括不同的天气数据(公制)以及蝙蝠的繁殖状态(分类)。此外,还有应答器编号(个体识别码)作为排除蝙蝠个体间差异的随机因素。
我首先在 R 中使用线性混合模型(包 lme4),但残差的 QQ 图与正态分布的偏差非常大。数据的直方图也表示伽马分布。结果,我实现了一个具有伽马分布的 GLMM。这是一个带有一个天气参数的示例:
model <- glmer(formula = difference_in_min ~ repro + precipitation + (1+repro|transponder number),data = trip,control=ctrl,family=gamma(link = log))
但是,由于QQ图没有这样的变化,所以我查看了DHARMa包的残留诊断。但是分布假设似乎仍然不正确,因为QQ图中的数据在这里也偏差很大。 Residual diagnostics from DHARMa
但如果数据也不符合伽马分布,还有什么替代方案?或者也许问题完全出在其他地方。
有人知道错误可能在哪里吗?
解决方法
但如果数据也不符合伽马分布,还有什么替代方案?
- 另一种称为对数正态分布 (https://en.wikipedia.org/wiki/Log-normal_distribution)
高斯(或正态)分布通常用于正态分布在零附近的数据,这听起来您没有。但是对数正态分布没有相同的要求。按照你之前的代码,你会像这样适合它:
model <- glmer(formula = log(difference_in_min) ~ repro + precipitation + (1+repro|transponder number),data = trip,control=ctrl,family=gaussian(link = identity))
或者代替 glmer
,您可以直接调用 lmer
,而无需指定分布(无论如何它可能会在警告消息中告诉您这样做:
model <- lmer(formula = log(difference_in_min) ~ repro + precipitation + (1+repro|transponder number),control=ctrl)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。