负二项式回归的残差诊断

机器算法验证 r 残差 负二项分布 泊松回归
2022-04-10 10:35:53

在 OLS 的残差诊断中,我了解如何评估任何违规行为(例如,残差的正态性和同方差性)。我想知道负二项式回归拟合模型的残差应该检查什么。我该如何在 R 中获取这些残留诊断信息?

1个回答

查看 R 中的DHARMa 包。它使用基于模拟的方法和分位数残差来生成您可能感兴趣的残差类型。它与glm.nbMASS 一起使用。

此处解释了基本思想,并分三个步骤进行:

  • 模拟每个案例的合理反应。您可以使用每个回归系数的分布(系数与标准误差一起)来生成几组系数。您可以将每组系数乘以每个案例的观测预测变量,以获得每个案例的多个模拟响应值。
  • 根据每种情况的多重响应值,生成经验累积密度函数 (cdf)
  • 找到与每种情况下观察到的响应相对应的经验 cdf 值。这是您的残差,范围从 0 到 1。

如果您的模型中没有系统性的错误指定,则经验 cdf 中的所有值都是同样可能的。这些残差的直方图应该均匀分布在 0 和 1 之间。

该软件包包含额外的检查。


编辑:

上述步骤并不完全正确。我的描述与 DHARMa 所做的最大区别在于 DHARMa 使用了simulate()基础 R 中的函数,它忽略了估计回归系数的可变性。Gelman 和 Hill 回归文本建议考虑回归系数的可变性。

我忘记包括的一个关键步骤是:一旦产生了响应,我们应该将它们放在响应量表上。例如,逻辑回归的预测变量是对数,因此应该将它们放在概率尺度上。下一步将是使用预测概率随机生成观察到的分数。继续逻辑回归示例,可以rbinom()在给定预测概率的情况下生成 0-1 结果。

此外,当响应为整数时,例如二进制结果或计数数据模型,DHARMa 在计算经验 cdf 之前将随机噪声添加到模拟响应中。如果模型没有错误指定,此步骤可确保残差在 OLS 中表现得如预期的那样。没有它,如果你的结果是二元结果,你可能会有一堆残差为 1。

对于希望推出自己的实现的任何人来说,DHARMa 中模拟残差函数的代码相对容易理解。