预测变量均具有偏态分布时的逻辑回归诊断

机器算法验证 回归 物流 偏度
2022-04-18 07:54:48

我将逻辑回归模型 Y ~ X1...X10 拟合到 10,000 个观察值,我的目标是估计每个协变量对 Y 的影响。

我的第一个问题是决定将哪些转换应用于预测变量。它们都具有非常偏斜的分布,并且在某些情况下具有很少 (<6) 的值。我在下面包含了一个典型的直方图。将它们作为因子或以其他方式应用一些功率转换是否有意义?

我在诊断模型时遇到了一些麻烦。拟合度相当差——分类率只有65%,偏差为:

Null deviance: 13568  on 9999  degrees of freedom
Residual deviance: 13143  on 9989  degrees of freedom

下面显示的诊断图似乎表明:

  1. 有一些非常高的杠杆,高残差点影响模型的拟合。我认为这些分布尾部的点并不代表其余数据。转换数据会解决这个问题吗?
  2. 残差肯定不是正态分布的。模型未能捕捉到一个趋势。我应该如何找到这种趋势?
  3. 偏差残差绝对不是正态分布的。

我想我的主要问题是如何找到合适的数据转换,以及解释数据中剩余方差的最佳下一步。

预测变量的典型分布。

回归诊断

1个回答

预测变量的分布在回归中几乎无关紧要,因为您以它们的值为条件。除非唯一值很少并且其中一些没有很好地填充,否则不需要更改为因子。

但是对于非常偏斜的预测变量,该模型可能更适合转换。我倾向于使用x13因为这些允许零,不像log(x). 然后,当样本量允许时,我在回归拆分中扩展转换后的变量以使它们充分拟合,例如

require(rms)
cuber <- function(x) x^(1/3)
f <- lrm(y ~ rcs(cuber(x1), 4) + rcs(cuber(x2), 4) + rcs(x3, 5) + sex)

rcs表示“受限三次样条”(自然样条),变量或变换变量后面的数字是节点数(比样条中非线性项的数量多两个)。当您使分布更加对称时(此处使用立方根),它通常需要更少的结来获得良好的拟合。

AIC 可以帮助选择节数k如果您强制所有变量具有相同的结数。以下,k=0与初始变换后的线性度相同。

for(k in c(0, 3:7)) {
  f <- lrm(y ~ rcs(cuber(x1),k) + rcs(cuber(x2),k) + rcs(x3, k) + sex)
  print(AIC(f))
}