恒定项(拦截)的高VIF表示什么?

时间:2020-01-11 12:33:46

标签: python constants rfe

我正在使用RFE技术和statsmodels库在汽车数据集上构建线性回归模型。我的最终模型的p值在5%以内,并且具有较高的F统计量。预测变量的VIF值远低于5,但对于常数项(截距),VIF为8.18。我使用了 add_constant 方法向模型添加常量。以下是我的疑问:

  1. 常数的高方差表示什么?
  2. 在计算VIF时应该忽略常数项吗?

这些是我的结果:

This is the summary of my final model

VIF results for the model

我是机器学习的新手,也是第一次在此网站上发布问题。请让我知道是否需要更多信息来回答我的问题。

1 个答案:

答案 0 :(得分:3)

最好在stats.stackexchange上询问统计问题。但是,我只是针对statsmodels进行了此操作,例如https://github.com/statsmodels/statsmodels/issues/2376

首先,您的模型和数据中没有多重共线性问题。 p值低,置信区间很窄,因此模型中的参数应该是一个很好的估计。 vif为8并不大。

常量中的vif越大,说明(斜率)解释变量也具有较大的常量分量。一个例子就是变量的均值大而方差很小。在设计矩阵的常数和秩不足时具有完美共线性的一个示例是伪变量陷阱,当我们没有在伪编码中删除类别变量的级别之一并且虚拟变量的总和为1时,因此复制一个常数

在vif计算中包括常数的目的是通过用户提供的设计矩阵exog发现此类问题。如果我们对已贬低或标准化的解释变量计算vif,则不会显示该结果。

在统计和计量经济学中,关于多重共线性度量是应该包含常数还是仅适用于表现不佳的解释变量,争论一直很久。

我目前正在准备对statsmodels进行扩展,使用户可以选择使用常量和不常量来计算两个版本。 在某些情况下,重新参数化,降低精度和缩放比例可以提高数值精度和预测。因此,我们希望有一些措施可以检查用户提供的实际设计矩阵,还可以检查数据的标准化版本,以查看降低和缩小比例是否可以提高数值精度。