对数线性和 GLM(泊松)回归

机器算法验证 回归 广义线性模型 泊松回归 对数线性
2022-03-29 02:38:24

恐怕我在问一个愚蠢的问题……但是……

我想按部门、员工人数、活动等研究公司的支出(我的结果变量)。我收集了我的数据,当我绘制支出时,它看起来很倾斜:

在此处输入图像描述

所以,我认为这是一个很好的对数转换候选者:

在此处输入图像描述

这看起来更正常。

然后,我进行了线性回归:

lm(log(accountingAmount) ~ Pred1 + Pred2 + Pred3, data=df)

我正在考虑运行 GLM 泊松回归,但我的结果并没有真正计数(嗯......我想它可以被视为计数,因为它是美元)并且它的方差远不等于平均值​​,这不符合泊松分布的标准。

我读过不同的帖子(对数线性与泊松对数线性是 GLM还是泊松回归与对数线性模型),但我真的找不到答案。

问题

那么,我的第一种方法(使用lm(log(accountingAmount) ~ Pred1 + Pred2 + Pred3, data=df))是一种好方法吗?基本上,这是进行对数线性回归的“标准方法”吗?

在这种情况下不可能进行 GLM 泊松回归是否正确(因为与平均值相比方差非常高)?

2个回答

术语“对数线性”不是唯一定义的。甚至维基百科似乎也没有达成内部协议。它的对数线性分析条目与列联表中的建模计数有关,而它的对数线性模型条目描述了您的建模方法。我尽量避免使用这个术语,只说正在建模的内容。在您的情况下,它是具有对数转换结果的普通线性回归。

对连续的、严格为正的结果进行对数转换并没有错。如果您得到的线性回归模型的残差表现良好,那么这可能是最简单的方法。一个缺点是您在对数尺度上建模平均值,这不是人们通常认为的平均值。

您是正确的,泊松 GLM 不适合连续的非计数数据,但其他类型的 GLM 可以使用日志链接并且可能适用于您的数据。本页建议使用其他 GLM 方法,例如高斯(可能是逆向的)或带有对数链接的伽玛,它们可能会更好地工作,并且更容易在未转换的平均尺度上给出预测。

y成为您的结果(会计金额)并让x1,x2,x3成为您的三个预测指标(针对一个人)。然后你的方法是建模

logy=β0+β1x1+β2x2+β3x3+ε
取两边的指数给出
y=exp(β0+β1x1+β2x2+β3x3+ε)
的平均值y有条件的x1,x2x3
E(y|x1,x2,x3)=exp(β0+β1x1+β2x2+β3x3)E(exp(ε))
现在想象一下x1被替换为x1+1. 然后
E(y|x1+1,x2,x3)=exp(β1)E(y|x1,x2,x3)
换句话说,预测变量中的单位变化会通过乘法因子改变平均值。

关键是对数变换虽然在确保残差的正态性方面更好,但会改变模型系数的解释。要直接回答您的问题,这是一种完全可以接受的方法,但您应该考虑您真正想要建模的内容。

对于第二个问题:泊松 GLM 有几个扩展可以解释过度分散的数据(其中条件方差大于条件均值)。例如,您可以glm.nb在 R 中使用负二项式 GLM ( ) 或准似然法