【问题标题】:Python: Capturing high collinearity in statsmodel (regression) for panel dataPython:在面板数据的 statsmodel(回归)中捕获高共线性
【发布时间】:2019-06-13 07:40:49
【问题描述】:

我试图解决一个问题,该问题要求我评估数字广告活动是否成功推动销量增长。

因为我们只有有限的印象数据,所以对于那些是 nan 的,我在印象中填写了 0。

数据是每周一次,如下所示:

然后我做了一个展示次数和数量的散点图:

但是,当我尝试在 statsmodel 中使用印象作为 x 和音量作为 y 进行回归时,它会给我共线性警告,但我只使用印象作为 x 变量。我正在使用的代码如下:

它给了我以下结果:

谁能帮我弄清楚?我的方法错了吗?我真的很困惑,因为我只有一个 x,不应该有任何共线性。我应该担心因为它是面板数据我应该使用其他方法吗?任何建议表示赞赏,非常感谢您!

【问题讨论】:

    标签: python machine-learning time-series regression statsmodels


    【解决方案1】:

    例如见https://stats.stackexchange.com/questions/332428/regression-model-constant-causes-multicollinearity-warning-but-not-in-standardi/332597#332597

    Statsmodels 计算设计矩阵的条件数,因此它对解释变量的缩放很敏感。
    以这种方式计算条件数的主要兴趣是表明实际设计矩阵是否存在可能的数值问题,而不是多重共线性的诊断指标。 Statsmodels 将用户提供的设计矩阵视为给定,不会对设计矩阵进行标准化或变换以提高数值稳定性。

    在这个例子中没有多重共线性,但是Impression的尺度比编码为1的常数大很多。

    而且,回归系数非常小,可以弥补解释变量的大尺度。

    因此,通过重新调整 Impression 变量(例如,使用 100,000 作为 Impression 的单位),可以提高数值稳定性和参数解释。

    【讨论】:

      猜你喜欢
      • 2018-01-08
      • 2015-12-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-23
      • 1970-01-01
      • 2017-03-12
      • 2019-02-03
      相关资源
      最近更新 更多