原始的ARMA算法具有以下公式:
在这里您可以看到,ARMA需要p + q + 1个数字进行计算。因此,毫无疑问,这很清楚。
但是谈论SARIMA算法,我无法理解一件事。 SARIMA公式类似于带有exta的ARMA:
其中S是代表季节性的数字。 S是常量。
因此,SARIMA必须计算p + q + P + Q + 1个数字。仅计算P + Q个数字。如果P = 1且Q = 2,则不会太大。
但是,如果我们使用的时间太长,例如每天365天,那么SARIMA就无法停止拟合。看这个模型。第一个需要9秒钟才能适应,而第二个2小时后还没有完成拟合!
和Q。但是第二个要么花太长时间学习,要么根本无法学习。import statsmodels.api as sm model = sm.tsa.statespace.SARIMAX( df.meantemp_box, order=(1, 0, 2), seasonal_order=(1, 1, 1, 7) ).fit() model = sm.tsa.statespace.SARIMAX( df.meantemp_box, order=(1, 0, 2), seasonal_order=(1, 1, 1, 365) ).fit()
而且我听不懂。从数学上讲,这些模型是相同的-它们都采用相同的p,q,P
我做错什么了吗?
原始的ARMA算法具有以下公式:在这里您可以看到,ARMA需要p + q + 1个数字来进行计算。因此,毫无疑问,这很清楚。但是说话...
首先,一个可能的解决方案:如果您使用的是Statsmodels v0.11或开发版本,则在具有长期季节性影响时可以使用以下选项: