我的一些预测变量的尺度非常不同——我需要在拟合线性回归模型之前对它们进行转换吗?

机器算法验证 回归 多重回归 线性模型
2022-03-22 16:23:30

我想对多维数据集进行线性回归。不同维度在数量级上存在差异。例如,维度1的取值范围一般为[0, 1],维度2的取值范围一般为[0, 1000]。

我是否需要进行任何转换以确保不同维度的数据范围处于相同的比例?如果必须,是否有这种转变的指导?

2个回答

移位/缩放变量不会影响它们与响应的相关性

要了解为什么这是真的,假设之间的相关性是那么之间的相关性为YXρY(Xa)/b

cov(Y,(Xa)/b)SD((Xa)/b)SD(Y)=cov(Y,X/b)SD(X/b)SD(Y)=1bcov(Y,X)1bSD(X)SD(Y)=ρ

这是从相关性的定义和三个事实得出的:

  • cov(Y,X+a)=cov(Y,X)+cov(Y,a)=0=cov(Y,X)

  • cov(Y,aX)=acov(Y,X)

  • SD(aX)=aSD(X)

因此,就模型拟合(例如或拟合值)而言,移动或缩放变量(例如将它们放在相同的尺度上)不会改变模型R2,因为线性回归系数与变量之间的相关性有关。它只会改变回归系数的比例,如果您选择转换预测变量,则在解释输出时应牢记这一点。

编辑:以上假设您正在谈论带有截距的普通回归。与此相关的其他几点(感谢@cardinal):

  • 当您转换变量时,截距可能会发生变化,正如@cardinal 在评论中指出的那样,如果您从模型中省略截距,则当您转换变量时系数会发生变化,尽管我假设您不会这样做,除非您有一个很好的理由(参见例如这个答案)。

  • 如果您以某种方式正则化您的系数(例如 Lasso、岭回归),那么居中/缩放将影响拟合。例如,如果你正在惩罚(岭回归惩罚),那么你无法在标准化后恢复等效拟合,除非所有变量首先处于相同的尺度,即没有恒定的倍数可以恢复相同的惩罚。βi2

关于研究人员何时/为什么要转换预测变量

一个常见的情况(在@Paul 的后续回答中讨论)是研究人员将标准化他们的预测变量,以便所有系数都在相同的范围内。在这种情况下,一旦预测变量的数值大小标准化,点估计的大小可以粗略地了解哪些预测变量的影响最大。

研究人员可能喜欢缩放非常大的变量的另一个原因是回归系数不是在极小的范围内。例如,如果您想查看一个国家的人口规模对犯罪率的影响(想不出更好的例子),您可能希望以百万而不是其原始单位来衡量人口规模,因为系数可能类似于.00000001

所谓的“标准化”是大多数回归方法的常用例程。有两种方法:

  1. 将每个变量映射到 [-1, 1] 边界(MatLab.
  2. 从每个变量中删除均值并除以其标准偏差(MatLab 中的 mapstd),即实际上是“标准化”。如果实际均值偏差未知,则只需采样特征:
    X~ij=Xijμiσi
    或者
    X~ij=XijXi¯std(Xi)
    在哪里E[Xi]=μ,E[Xi2E[Xi]2]=σ2,Xi¯=1Nj=1NXijstd(Xi)=1Nj=1N(Xij2Xi¯2)

由于线性回归对变量范围非常敏感,如果您对相关性没有任何先验知识并期望所有变量都相对重要,我通常建议对所有变量进行归一化。

响应变量也是如此,尽管对它们来说并不重要。

为什么要进行规范化或标准化?主要是为了确定模型中不同变量的相对影响。如果所有变量都在相同的单位中,则可以实现这一点。

希望这可以帮助!