在线性回归中,数据高度倾斜,转换不起作用..!

机器算法验证 多重回归 模型选择 异方差 偏度
2022-04-04 10:27:14

我有 9524 个观察值/97 个变量的数据集。

大多数变量是数值型的,还有一些因子变量(是/否或几个级别)

我想用这个数据集执行多元线性回归。

  1. 第一步是对数据进行日志转换,因为数据高度倾斜。(我做了 log(x+1) 因为很多有 0)

这些是对数转换后我的数据的直方图。 在此处输入图像描述

“API05B”将是线性回归的因变量。

还有更多的变量,其中大多数都严重偏斜。(大部分是右边或一些左边)

  1. 无论如何,我试图继续执行回归以查看结果。使用 'regsubsets' - 前向选择,我尝试在这些变量中选择最佳预测变量(或最佳模型)。

在此处输入图像描述 在此处输入图像描述

当显示 BIC 或 Cp(偏差大小)发生显着变化时,我选择了预测变量的数量,其中预测变量的数量为 3。

下面是regsubsets选择的变量的直方图。

在此处输入图像描述

我试图不关心变量的分布,因为没有假设线性回归中的数据分布。

但是,我担心偏度会影响异方差。

  1. 线性模型的诊断 - 异常值/多重共线性/异方差

我用 VIF 去除了异常值/纠正了多重共线性。

这些都没有问题,但是..

我做了 lmtest::bptest / lmtest::coeftest,结果表明存在异方差性。

在此处输入图像描述 在此处输入图像描述

Box-cox 转换也没有奏效。

这是我的最终模型的摘要图。

在此处输入图像描述

我读过几篇关于处理偏态数据或异方差的文章,

他们中的大多数人说对数转换或 box-cox 转换会有所帮助,但它没有用..

他们中的一些人建议不要坚持线性回归,例如尝试稳健的线性回归/零膨胀模型/两部分模型等。

我想解决的问题..

  1. 处理数据的偏度或异方差

    • 需要另一个转变吗?
  2. 预测变量选择

    • regsubsets 还是套索?
    • 先转型?还是先选择预测变量?
  3. 需要其他方法吗?

    • 如果上述方法均无助于解决此问题,是否需要上述其他方法?
  4. 我的过程有什么问题吗?

任何提示或建议将不胜感激!谢谢!

1个回答

问的问题太多了。欢迎您将其分解。许多问题已经在这个论坛中得到了很好的回答。

我只会在这里解决你的第一个问题。

还有更多的变量,其中大多数都严重偏斜。(大部分是右边或一些左边)

看来您可能对线性回归假设有一些误解。线性回归不假设自变量/模型输入是高斯分布的,而是假设残差。

详情可查

为什么为了估计回归线,残差的正态性“根本不重要”?

为什么线性回归对残差有假设,但广义线性模型对响应有假设?

在我提供的第一个链接中,它还解释了残差的正态性并不像您想象的那么重要。

有关功能选择,请参见此处