Python 中的稳健线性回归结果与 Stata 不一致

Robust Linear Regression Results in Python and Stata Do Not Agree

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

这是 Stata 的结果:

这是 Statsmodels 的结果:

只是想知道这个问题的原因是什么?有什么办法解决吗?我还在 Statsmodels 中尝试了不同的方法(HuberT、RamsayE 等),其中 none 的答案与 Stata 的结果相同。感谢任何帮助。

相当于 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