python - 回归标准误差聚类和对异方差+序列自相关的鲁棒性
问题描述
如标题所示,我正在尝试在 python 中运行回归,其中标准错误是聚集的,并且对异方差和自相关 (HAC) 具有鲁棒性。我在statsmodels
( sm
) 内工作,但显然对使用其他库 (例如linearmodels
) 持开放态度。
例如,通过 id 进行聚类,代码将是
sm.OLS.from_formula(formula='y ~ x', data=df).fit(cov_type='cluster', cov_kwds={'groups': df['id']}, use_t=True)
对于 HAC 标准错误,代码为
sm.OLS.from_formula(formula='y ~ x', data=df).fit(cov_type='HAC', cov_kwds={'maxlags': max_lags}, use_t=True)
鉴于cov_type
不能两者兼而有之cluster
,HAC
在 statsmodels 中两者兼而有之似乎不可行?这是对的,和/或有没有其他方法可以两者兼得?
解决方案
有两个面板 HAC cov_typeshac-groupsum
和hac-panel
,但我只知道它们用于面板数据,但它们应该适用于集群数据。据我记得,有一些文献表明它们在高度不平衡的数据方面不是很好(例如比较大小差异很大的美国各州的人口数据)。
实现该功能的主要参考资料是 Petersen 的文章,例如
https://www.kellogg.northwestern.edu/faculty/petersen/htm/papers/standarderror.html
与 Petersen 进行一些比较的示例在单元测试中。
当我们有两个(路)集群时,Statsmodels 也有集群稳健标准误差。
这些协方差矩阵的随机行为取决于在大样本中集群的数量、时间段的数量或两者是否变大。
推荐阅读
- java - 通过 .jar 部署 Jetty 服务器。为什么我无法访问索引?
- unit-testing - 将 Generic.List 转换为 System.Threading.Task.Generic.List 时出现问题
- python - 简单的 Travis-CI BUILD 给出“没有设置环境变量”
- java - 使用 Java 在 intelliJ 的新窗口中进行多项目
- docker - 在应用程序远程安装时创建 Docker 映像
- gradle - Crashlytics gradle crashlyticsUploadSymbolsRelease 和 Android 应用程序包
- java - 使用 Java 绑定识别 OpenCV 丢失的 DLL
- java - 与广播接收器检查连接
- regex - 模式匹配后结果数组的 URL 路径的剩余部分
- ruby-on-rails - 有没有更简洁的方法从 Rails ActiveRecord 方法返回数组结果?