【问题标题】:Robust Linear Regression Results in Python and Stata Do Not AgreePython 和 Stata 中的稳健线性回归结果不同意
【发布时间】:2018-04-02 08:05:14
【问题描述】:

我和我的队友正在做这项涉及对 Fama-French 3 因子模型进行回归的作业。我使用了 python Statsmodels 模块,他们使用了 Stata,我们共享同一组数据。对于普通最小二乘回归,我们得到了相同的答案。但由于某种原因,稳健的回归结果并不一致。

这是来自 Stata 的结果:

以下是 Statsmodels 的结果:

只是想知道这个问题的原因可能是什么?有什么办法解决吗?我还在 Statsmodels 中尝试了不同的方法(HuberT、RamsayE 等),但没有一个与 Stata 的结果相同。任何帮助表示赞赏。

【问题讨论】:

  • 我可以评论您在 Stata 中所做的事情。 regress, robust 仅在一种特定意义上是健壮的:标准错误是 Huber-White-sandwich 标准错误(还有另一个名称存在)。否则,系数与 OLS 产生的系数完全相同,因为省略 robust 选项会显示给您。我没有使用 Statsmodels 的经验,但它甚至没有尝试做同样的事情。您不是第一个对鲁棒的含义缺乏一致性感到困惑的人。同时,Stata 文档对其所做的工作进行了相当详细的介绍。
  • 具有讽刺意味的是,这里的好消息是您似乎并不需要任何花哨的稳健回归。即使是非常不同的 Huber 型鲁棒方法似乎也以类似的结果结束。 (在这两个标题下出现 Huber 的名字是偶然的,并且不会使程序更加相似。)
  • 一般来说,将屏幕截图作为图片发布不如将文本复制粘贴到论坛软件中。

标签: python statistics regression stata statsmodels


【解决方案1】:

相当于Stata的

regress ..., robust

在 statsmodels 中是

OLS(...).fit(cov_type='HC1')

稳健的三明治协方差矩阵的选项在这里 http://www.statsmodels.org/devel/generated/statsmodels.regression.linear_model.RegressionResults.get_robustcov_results.html,但使用是通过 fit 关键字。

对于 Stata 和 statsmodels 之间稳健标准误差的差异,有一个不完整的常见问题解答。 https://github.com/statsmodels/statsmodels/issues/1923

statsmodel.robust 和 RLM 是指异常稳健估计。这是一个 M 估计量,协方差具有原始的 Huber 三明治形式。

这里是 statsmodels.robust 的主页 http://www.statsmodels.org/devel/rlm.html 和 RLM 的文档 http://www.statsmodels.org/devel/generated/statsmodels.robust.robust_linear_model.RLM.html

【讨论】:

  • @Nick Cox,我不是这个意思。 M 估计器的参数协方差是三明治形式的,这就是 AFAIU、Huber 进入 Godambe/Eicker/Huber/White 等稳健协方差矩阵的地方。 (但是,RLM 三明治协方差在 White, AFAIR 方面不是异方差一致的。)异常值部分与此没有直接关系,它只是信息矩阵等式不成立的估计量。
猜你喜欢
  • 2015-02-06
  • 1970-01-01
  • 2015-12-12
  • 2018-01-13
  • 2019-11-26
  • 2022-11-10
  • 2016-08-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多