Python和Stata中的鲁棒线性回归结果不一致

4
我的组员和我正在做一个涉及在Fama-French 3因子模型上运行回归的作业。我使用了Python的Statsmodels模块,他们使用的是Stata,我们共享同一组数据。对于普通最小二乘回归,我们得到了相同的答案。但是由于某种原因,鲁棒回归的结果并不一致。
以下是Stata的结果: enter image description here 以下是Statsmodels的结果: enter image description here 想知道这个问题的原因是什么?有什么解决办法吗?我还尝试了Statsmodels中的不同方法(如HuberT、RamsayE等),但它们都没有与Stata的结果相同。感谢任何帮助。

1
我可以对你在Stata中所做的进行评论。 regress,robust只在特定意义上是健壮的:标准误差是Huber-White-sandwich标准误差(还有其他名称)。 否则,系数与OLS产生的完全相同,因为省略robust选项将向您显示。 我没有使用Statsmodels的经验,但它甚至没有尝试做同样的事情。 你不是第一个被“健壮”一词缺乏一致性所困惑的人;同时,Stata文档详细介绍了它正在做什么。 - Nick Cox
1
具有讽刺意味的是,好消息是您似乎并不需要任何高级的稳健回归。即使是非常不同的Huber类型的稳健方法,最终似乎也会得出类似的结果。(在这两个标题下都出现了Huber的名字,这是巧合,并不能使这些程序变得相似。) - Nick Cox
1
一般来说,将屏幕截图作为图像发布并不如将文本复制并粘贴到论坛软件中那样有用。 - Nick Cox
1个回答

12

Stata中的

regress ..., robust

在statsmodels中的等效操作为

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

健壮的三明治协方差矩阵选项在此处http://www.statsmodels.org/devel/generated/statsmodels.regression.linear_model.RegressionResults.get_robustcov_results.html,但使用是通过适应关键字进行的。

有一个关于Stata和statsmodels之间健壮标准误差差异的不完整FAQ答案。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-estimators参数的协方差具有三明治形式,这就是Huber进入Godambe / Eicker / Huber / White等鲁棒协方差矩阵的地方,据我所知。(然而,RLM三明治协方差在White方面不是异方差一致的,据我所记得。)异常值部分与此直接无关,它只是一个估计量,其中信息矩阵平等不成立。 - Josef

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接