运行 具有 Gamma 分布的 GLM,但数据包含零

Running a GLM with a Gamma distribution, but data includes zeros

我正在尝试 运行 R 中的 GLM 用于生物量数据(还原生物量和生殖生物量与植物生物量的比率)作为栖息地类型的函数("hab"),年份数据被收集("year"),以及数据收集地点("site")。我的数据看起来很适合 Gamma 分布,但我有 8 个观测值的生物量为零(约 800 个观测值),所以模型不会 运行。处理这个问题的最佳方法是什么?另一个错误分布是什么?或者将一个非常小的值(例如 .0000001)添加到我的零观测值是否可行?

我的模型是:

reproductive_biomass<-glm(repro.biomass~hab*year + site, data=biom, family = Gamma(link = "log")) 

啊,zeroes - 非常喜欢它们。

根据您正在研究的系统,我很想检查零膨胀或障碍模型 - 基本思想是模型有两个组成部分:一些二项式过程决定响应是否是零或非零,然后是适用于非零的伽玛。巧妙的部分是您可以对两个模型的系数进行推断,甚至可以对两者使用不同的系数。

http://seananderson.ca/2014/05/18/gamma-hurdle.html ...但是搜索 "zero-inflated gamma" 或 "tweedie models" 也可能会产生一些有用的 and/or 学术信息。

在理想情况下,您的分析工具应该适合您的系统和预期的推论。零膨胀的世界非常美好,但以独立过程的假设为条件。因此,一个需要回答的重要问题当然是在你的研究背景下什么是零 "mean",只有你能回答这个问题——无论它们是恰好非常小的数字,还是真正的零是一些混杂过程的结果,例如您的同事洒了漂白剂(或其他对您的研究无趣的东西),或者是有趣的真零。

另一个想法:在交叉验证上再问同样的问题,你可能会得到一个更具有统计意义的答案。祝你好运!