我正在尝试网格搜索,通过在statsmodels中使用SARIMAX()
方法拟合SARIMAX(p,d,q)x(P,D,Q,s)模型来执行模型选择。我将d
和D
设置为1并将s
设置为7并迭代p
中的{0, 1}
,q
中{0, 1, 2}
的值{}}中的P
,{0, 1}
中的Q
和{0, 1}
中的trend
,共有48次迭代。在模型拟合阶段,如果参数的任何组合导致非平稳或不可逆模型,我将转到下一个参数组合。
我有一套时间序列,每个时间序列代表一个代理人随时间的表现,包括每周季节性的83次(每日)测量。我保留90%的数据用于模型拟合,最后10%用于预测/测试目的。
我发现在网格搜索期间的模型拟合需要很长时间,大约11 分钟,对于几个代理,而相同的48次迭代花费的时间少得多,少于10 秒,其他人。
但是,如果在执行我的网格搜索之前,我对与分析需要很长时间的代理相对应的数据进行对数转换,相同的48次迭代需要大约15 秒!然而,尽管我喜欢加速因子,但与使用原始(即不是对数变换)数据的情况相比,最终预测结果更差。所以,我宁愿将数据保留为原始格式。
我的问题如下:
导致某些时间序列减速的原因是什么?
有没有办法通过赋予{None, 'c'}
或SARIMAX()
某些参数来加速模型拟合?我试过SARIMAX.fit()
,在州空间构建一个较小的模型,将时间从11分钟减少到6分钟,但这仍然太长了。
我很感激任何帮助。