为计数数据确定适当模型的策略

机器算法验证 广义线性模型 泊松分布 计数数据 负二项分布 过度分散
2022-02-03 21:15:28

决定使用哪种模型处理计数数据的适当策略是什么?我已经计算了需要建模为多级模型的数据,并且(在此站点上)向我建议最好的方法是通过错误或 MCMCglmm。但是我仍在尝试学习贝叶斯统计,我认为我应该首先尝试将我的数据拟合为广义线性模型并忽略数据的嵌套结构(这样我才能对预期的结果有一个模糊的概念)。

大约 70% 的数据为 0,方差与均值的比率为 33。因此数据非常分散。

在尝试了许多不同的选项(包括泊松、负二项式、准和零膨胀模型)之后,我发现结果的一致性非常低(从一切都重要到没有重要意义)。

我如何才能根据 0 通货膨胀和过度分散做出明智的决定来选择哪种类型的模型?例如,我怎么能推断出准泊松比负二项式更合适(反之亦然),我怎么知道使用任何一个已经充分(或没有)处理多余的零?同样,如果使用零膨胀模型,我如何评估不再存在过度分散?或者我应该如何在零膨胀泊松和零膨胀负二项式之间做出决定?

4个回答

您始终可以通过查看它们的预测来比较计数模型(最好在保留集上)。J. Scott Long 以图形方式讨论了这一点(根据实际值绘制预测值)。他的教科书在这里有详细描述,但您也可以查看此文档上的 6.4

您可以使用 AIC 或 BIC 比较模型,还有一个称为 Voung 测试的测试,我不太熟悉,但可以将零膨胀模型与非嵌套模型进行比较。这是一篇 Sas 论文,在第10页对其进行了简要描述,以帮助您入门。它也在 R发布中实现

B_Miner 所说的有几件事要补充:

1)您写道,模型从“所有重要”到“不重要”不等,但这不是比较模型的好方法。相反,查看预测值(如 B_miner 建议的那样)和效果大小。

2)如果70%的数据都是0,我无法想象没有0通胀的模型是合适的。

3)即使你不想去贝叶斯,你也可以在 SAS(PROC GLIMMIX 或 NLMIXED)和 R(各种包)中使用 GLMM。忽略嵌套的性质可能会搞砸一切。

4) 一般来说,决定哪种模型最好是一门艺术,而不是一门科学。有统计数据可供使用,但它们是判断的指南。看看你写的,我会说 ZINB 模型看起来不错

我的理解是,当某些项目有理由产生零计数而不是任何其他计数时,应该使用零膨胀分布。换句话说,如果零是由一个单独的过程产生的,而不是由产生其他计数的过程产生的,则应该使用零膨胀分布。如果您对此没有任何理由,考虑到样本中的过度分散,我建议使用负二项分布,因为它准确地表示零的丰度,并且通过自由估计此参数来表示未观察到的异质性。如上所述,Scott Long 的书是一个很好的参考。

绝对同意马特所说的,首先你必须考虑数据的背景......当人口中没有零生成触发器时,拟合 ZI 模型没有任何意义!NB 模型的优点是它们可以在伽马分布的随机变量中显示未观察到的异质性。从技术上讲:过度分散的主要原因是 unobs 异质性和零通货膨胀。我不相信你的身体不好。顺便说一句,要获得拟合优度,您应该始终将偏差与模型的自由度进行比较。如果偏差 D 高于 n-(p+1)(这是 df),那么您应该搜索更好的模型。尽管几乎没有比 ZINB 更好的模型来消除过度分散。

如果你想用 R 安装 ZINB,请获取包pscl并尝试使用命令zeroinfl(<model>, dist=negative)有关详细信息,请参阅?zeroinfl加载所需的包后!