如何解释 GLM 中与拟泊松族拟合的“NA”系数?

How do I interpret `NA` coefficients from a GLM fit with the quasipoisson family?

我正在使用这样的拟泊松族在 R 中拟合模型:

model <- glm(y ~ 0 + log_a + log_b + log_c + log_d + log_gm_a + 
   log_gm_b + log_gm_c + log_gm_d, family = quasipoisson(link = 'log'))

glm 查找前五个系数的值。它说其他人是 NA。有趣的是,如果我对公式中的变量重新排序,glm 总能找到公式中最先出现的五个变量的系数。

数据充足(行数是参数数的很多倍)

我应该如何解释那些 NA 系数?

我正在实施的模型的作者坚持认为 NAs 暗示找到的系数为 0,但 NA 系数变量仍然作为模型的控制。我怀疑发生了其他事情。

我的猜测是作者(他说“NA 暗示找到的系数为 0,但 NA 系数变量仍然作为对模型的控制”)是错误的(尽管很难达到 100 % 肯定没有完整的上下文)。

问题几乎可以肯定是您有一些多重共线性预测变量。不同变量返回 dropped/have NA 系数的原因是 R 部分使用顺序来确定要删除哪些变量(就拟合模型结果而言,这无关紧要 - 所有顶级结果(预测、拟合优度等)相同。

OP 在评论中说:

The relationship between log_a and log_gm_a is that this is a multiplicative fixed-effects model. So log_a is the log of predictor a. log_gm_a is the log of the geometric mean of a. So each of the log_gm terms is constant across all observations.

这是诊断问题所需的关键信息。因为截距被排除在这个模型之外(公式包含0+,模型矩阵中有一个常量列是可以的,但是多个常量列很麻烦;除了第一个(以公式指定的任何顺序)将被丢弃。稍微深入一点:请求的模型是

Y = b1*C1 + b2*C2 + b3*C3 + [additional terms]

其中 C1C2C3 是常量。在“data space”中附加项为 0 的点(即对于 log_a = log_b = log_c = ... = 0 的情况),我们只剩下从三个独立的常数项中预测一个常数值。假设常规模型 (~ 1 + log_a + log_b + log_c) 中的截距为 m。然后 (b1, b2, b3) 的任意组合使和等于零(并且有无限多)将同样适合数据。

我仍然不太了解上下文,但可能值得考虑在模型中添加常数项作为 offsets。或者通过预测变量的几何 means/subtract log-geom-means 来缩放预测变量?


在其他情况下,多重共线性是由无法识别的相互作用项引起的;嵌套变量;尝试包括多个分类变量的所有级别;或在模型中包括某些组成变量的所有级别的比例(例如栖息地类型的比例,比例加起来为 1),例如

  • linear regression "NA" estimate just for last coefficient