3

我正在尝试自动化通常在 python 的 statsmodels 中的 Eviews 中执行的回归。不幸的是,在这种情况下无法给出可重现的示例,但该模型是一个带有 ARMA 错误的多元回归模型。观察的数量是一万个,我使用了大约 50 个自变量(实际上是 5 个有 10 个滞后的变量。模型本身很好,所以把它放在一边。)。

在 Eviews(时间序列的商业计量经济学包)中,模型将在大约 20 秒后收敛,并使用 BFGS 作为优化方法进行了 17 次迭代。然而,使用 statsmodels,即使观察次数少得多,收敛也需要很长时间,并且检索 beta 标准误差需要更长的时间。我尝试过提供起始值、不同的优化方法和容差级别,但相比之下 python 仍然非常慢。

我期待性能会相似,因为 statsmodels 似乎能够使用 Eviews 使用的相同优化方法 (BFGS)。Eviews 的快速收敛似乎取决于在优化中选择“Marquardt”作为“步进法”。如果改为选择“线搜索”,模型需要很长时间才能收敛。难道 statsmodels 使用的是后者?

我的问题确实是这样:我是否应该简单地放弃 scipy(我相信 statsmodels 依赖)优化器,因为不能期望它具有与商业计量经济学软件几乎相同的性能?或者期望类似的性能是否合理,因此我应该尝试其他“优化优化”的方法?

顺便说一句,我已经开始查看这个 pyeviews,但它的文档很少。有经验的人吗?

我浪费了很多时间试图让这个东西工作,所以任何指导都将非常感激。

更新:使用我的 Eviews 和 python 版本,pyeviews 每当尝试将超过 500 行或其他内容推送到 Eviews 时都会引发错误。似乎是一个错误。我已经在 Github 上发布了。

比约恩

4

0 回答 0