具有对数转换数据的线性回归 - 大错误

机器算法验证 r 回归 线性模型 回归系数 对数
2022-03-23 11:01:26

我有一组具有非常大的正偏斜的数据,并且已经使用对数进行了转换。我希望使用lmR 中的函数从另一个变量中预测一个变量。由于两个变量都已转换,我很清楚我的回归将输出方程:

ln(y) = b*ln(x) + a, 其中ab是系数。

模型拟合良好,R 平方几乎为 0.6,产生一系列预测的 y 值。

现在,我使用以下等式对变量进行了“反向转换”:

y_predicted = exp(a)*x^b

但是,较大的 x 和 y 的预测值明显低于应有的值。由于我将使用所有 y_predicted 值的平均值和总和与 y_actual 值进行比较,这使得我的模型预测不足 75%。

由于对数标度,对数域中最佳拟合线的小偏差会在反向转换时导致非常大的偏差。

我的问题是如何充分处理这个问题?我可以提出我自己的回归系数,这可以确保最佳拟合线过度预测其中一些较大的值,并使总和更加一致。但是,这将违背首先使用线性模型的观点,从而优化模型。

另外,我不确定这在“统计上”有多有效,因为该方法无法复制,因为系数是由眼睛确定的。

欢迎提出想法!

2个回答

如果你说你的模型是ln(y) = b*ln(x) + a它只是你模型的一部分。您的实际模型包含一个错误项:

lnyi=blnxi+a+εi

并且您假设误差分布是现在让我们对其进行反向转换:εiN(0,σ2)

yi=exp(a)xibexp(εi)

如您所见,您有一个乘法误差项,即具有恒定变化的相对误差。因此,您在较高的拟合值中允许与拟合线有更大的偏差,即您对它们施加的权重较小。这实际上通常是合理的,但是正如您所观察到的,当然会给您更大的残差以获得更高的值。

如果您对此不满意,则不应在 OLS 之后进行转换。一种替代方法是广义线性模型,它对误差进行不同的建模,甚至是非线性回归。

罗兰已经给出了很好的答案。用另一种方式说同样的话——你把一些泥土推到地毯下。然后你清洁了地毯的顶部。灰尘还在!

有几种模型不依赖于残差的正态性。我认为很少使用的是分位数回归。在 R 中有quantreg包。