在线性回归中,什么时候适合使用自变量的对数而不是实际值?

机器算法验证 回归 分布 数据转换 对数 常问问题
2022-02-13 11:32:02

我是在为有问题的自变量寻找一个表现更好的分布,还是为了减少异常值的影响,或者其他什么?

4个回答

我总是犹豫跳入一个有这么多优秀响应的线程,但令我震惊的是,很少有答案提供任何理由更喜欢对数而不是其他一些“压缩”数据的转换,例如根或倒数。

在开始之前,让我们以更一般的方式概括现有答案中的智慧。 当以下任何一种情况适用时,将指示因变量的一些非线性重新表达:

  • 残差呈偏态分布。变换的目的是获得近似对称分布的残差(当然,大约为零)。

  • 残差的分布随着因变量的值(“异方差”)而系统地变化。转换的目的是消除传播的系统性变化,实现近似的“同方差性”。

  • 使关系线性化。

  • 当科学理论表明。例如,化学通常建议将浓度表示为对数(给出活动甚至众所周知的 pH 值)。

  • 当一个更模糊的统计理论表明,残差反映了不会累加的“随机误差”。

  • 简化模型。例如,有时对数可以简化“交互”项的数量和复杂性。

(这些指示可能相互冲突;在这种情况下,需要判断。)

那么,什么时候特别指出对数而不是其他一些转换?

  • 残差具有“强烈”的正偏态分布。在他关于 EDA 的书中,John Tukey 提供了基于残差的秩统计来估计变换(在 Box-Cox 或幂变换族中)的定量方法。这真的归结为这样一个事实,如果取对数使残差对称,它可能是重新表达的正确形式;否则,需要一些其他的重新表达。

  • 当残差的 SD 与拟合值(而不是拟合值的某些幂)成正比时。

  • 当关系接近指数时。

  • 当残差被认为反映了乘法累积误差时。

  • 您确实需要一个模型,其中解释变量的边际变化根据因变量的乘法(百分比)变化来解释。

最后,使用 re-expression 的一些原因:

  • 使异常值看起来不像异常值。离群值是不适合数据的一些简约、相对简单的描述的数据。更改描述以使异常值看起来更好通常是对优先级的错误颠倒:首先获得对数据的科学有效、统计上良好的描述,然后探索任何异常值。不要让偶尔的异常值决定如何描述其余数据!

  • 因为软件自动做到了。(说够了!)

  • 因为所有数据都是正面的。(正性通常意味着正偏度,但并非必须如此。此外,其他转换可以更好地工作。例如,根通常最适合计数数据。)

  • 使“坏”数据(可能是低质量的)看起来表现良好。

  • 为了能够绘制数据。(如果需要进行转换才能绘制数据,则可能出于已经提到的一个或多个充分理由而需要它。如果转换的唯一原因确实是为了绘图,请继续进行 - 但只是为了绘制数据。保留未转换的数据以供分析。)

我总是告诉学生通过取自然对数来转换变量有三个原因。记录变量的原因将决定您是否要记录自变量、依赖变量或两者。为了清楚起见,我说的是取自然对数。

首先,正如其他海报所指出的那样,提高模型拟合度。例如,如果您的残差不是正态分布的,那么采用偏态变量的对数可以通过改变尺度并使变量更“正态”分布来改善拟合。例如,收益被截断为零,并且经常表现出正偏差。如果变量有负偏斜,您可以在取对数之前先反转变量。我在这里特别考虑作为连续变量输入的李克特量表。虽然这通常适用于因变量,但您偶尔会遇到由自变量引起的残差(例如异方差)问题,有时可以通过取该变量的对数来纠正该问题。例如,当运行一个模型来解释对一组讲师和班级协变量的讲师评估时,变量“班级规模”(即讲座中的学生人数)具有导致异方差性的异常值,因为讲师评估的方差在较大时较小队列比较小的队列。记录学生变量会有所帮助,尽管在此示例中计算稳健标准误差或使用加权最小二乘法可能会使解释更容易。

在模型中记录一个或多个变量的第二个原因是为了解释。我称之为方便的原因。如果你同时记录你的因变量(Y)和自变量(X),你的回归系数()将是弹性的,解释如下:X增加1%将导致其他条件不变 % Y 增加(平均)。仅记录回归“方程”的一侧将导致如下所述的替代解释:β β

Y 和 X——X 增加一个单位将导致 Y 的增加/减少β

Log Y 和 Log X——X 增加 1% 将导致Y 增加/减少β

Log Y 和 X——X 增加一个单位将导致Y 增加/减少β100

Y 和 Log X——X 增加 1% 将导致Y 增加/减少β/100

最后,这样做可能有理论上的理由。例如,我们想要估计的一些模型是乘法的,因此是非线性的。取对数可以通过线性回归来估计这些模型。很好的例子包括经济学中的 Cobb-Douglas 生产函数和教育中的 Mincer 方程。Cobb-Douglas 生产函数解释了输入如何转换为输出:

Y=ALαKβ

在哪里

Y是某个实体(例如公司、农场等)的总产量或产出。

A是全要素生产率(不是由投入引起的产出变化,例如技术变化或天气)

L是劳动投入

K是资本投入

α &是输出弹性。β

取这个的对数使得函数很容易使用 OLS 线性回归来估计,如下所示:

log(Y)=log(A)+αlog(L)+βlog(K)

有关 whuber 关于更喜欢对数而不是其他一些变换(例如根或倒数)的理由的更多信息,但重点是与其他变换相比,对数变换产生的回归系数的独特可解释性,请参阅:

奥利弗·N·基恩。对数转换是特殊的。1995年医学统计;14(8):811-819。DOI:10.1002/sim.4780140810(可疑合法性的 PDF 可在https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.530.9640&rep=rep1&type=pdf获得)。

如果将变量x记录 到底数b,则可以将回归系数(和 CI)解释为因变量y 每增加bx的变化。(因此,以 2 为底的对数通常很有用,因为它们对应于 x 每翻倍 y 的变化或者如果x 在多个数量级上变化,则以 10 为底对数,这种情况很少见)。其他变换,例如平方根,没有这样简单的解释。

如果您记录变量y(不是原始问题,而是之前的几个答案已经解决的问题),那么我发现 Tim Cole 的 'sympercents' 想法对于呈现结果很有吸引力(我什至在一篇论文中使用过它们),尽管他们似乎并没有那么广泛地流行:

蒂姆·J·科尔。Sympercents:100 log(e) 比例上的对称百分比差异简化了对数转换数据的表示。2000年医学统计19(22):3109-3125。DOI: 10.1002/1097-0258(20001130)19:22<3109::AID-SIM558>3.0.CO;2-F [我很高兴Stat Med停止使用SICI作为 DOI...]

通常采用输入变量的对数来对其进行缩放并更改分布(例如使其呈正态分布)。然而,它不能盲目地去做;进行任何缩放时都需要小心,以确保结果仍然可以解释。

这在大多数介绍性统计文本中都有讨论。您还可以阅读 Andrew Gelman 的论文“通过除以两个标准差来缩放回归输入”,以对此进行讨论。他在“使用回归和多级/分层模型的数据分析”的开头也对此进行了非常好的讨论

记录日志不是处理不良数据/异常值的合适方法。