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

时间:2017-04-25 15:41:48

标签: r glm zero gamma

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

我的模特是:

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

1 个答案:

答案 0 :(得分:5)

啊,零 - 必须爱他们。

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

http://seananderson.ca/2014/05/18/gamma-hurdle.html ...但是搜索“零膨胀伽玛”或“tweedie模型”也可能会产生一些信息和/或学术上的东西。

在理想的世界中,您的分析工具应该适合您的系统和您的预期推论。零膨胀的世界非常甜蜜,但是以单独过程的假设为条件。因此,当然,要回答的一个重要问题是,在你的研究环境中,什么是“意味着什么”,只有你能够回答这个问题 - 它们是不是真的很小的数字,或者是真正的零。一些令人困惑的过程的结果,比如你的同事泄漏了漂白剂(或者对你的研究不感兴趣的东西),或者真正的有趣的零点。

另一个想法:在交叉验证上提出同样的问题,你可能会得到一个更加统计上更明智的答案。祝你好运!