我有一个多索引熊猫数据框,看起来像这样
ID I II III
METRIC a b c d a b c d a b c d
2015-08-01 0 1 2 3 20 21 22 23 40 41 42 43
2015-08-02 4 5 6 7 24 25 26 27 44 45 46 47
2015-08-03 8 9 10 11 28 29 30 31 48 49 50 51
Run Code Online (Sandbox Code Playgroud)
它由日期(2015-08-01、2015-08-02、2015-08-03等)索引,第一级列(I、II、III)是IDs ,第二级列是对应的METRICs (a、b、 …
我正在尝试使用statsmodels中的方法通过拟合SARIMAX(p,d,q)x(P,D,Q,s)模型来进行网格搜索以执行模型选择SARIMAX()。我确实将d和设置D为1和s7,并迭代pin {0, 1},qin {0, 1, 2},Pin {0, 1},Qin {0, 1}和中的值trend in的值{None, 'c'},总共进行了48次迭代。在模型拟合阶段,如果参数的任何组合导致了非平稳或不可逆模型,我将转到下一个参数组合。
我有一组时间序列,每个序列代表一个代理随时间变化的性能,由83个(每日)测量值和一个每周的季节性组成。我保留了90%的数据用于模型拟合,剩下的10%用于预测/测试。
我发现,在网格搜索过程中进行模型拟合需要花费很长时间,大约需要11 分钟,而对于一对代理来说,而相同的48次迭代所花费的时间则要少得多,不到10 秒。
但是,如果在执行网格搜索之前,我对与分析花费很长时间的代理相对应的数据进行了日志转换,则相同的48次迭代大约需要15 秒!但是,尽管我喜欢加速因子,但与使用原始(即未经对数转换的)数据的情况相比,最终的预测结果却较差。因此,我宁愿将数据保留为原始格式。
我的问题如下:在某些时间段内导致这种速度变慢的原因是什么?有没有一种方法可以通过给定SARIMAX()或SARIMAX.fit()某些参数来加快模型拟合的速度?我试过了simple_differencing = True,在状态空间中构造一个较小的模型,将时间从11分钟减少到6分钟,但这仍然太长。
我将不胜感激。