【发布时间】:2020-08-16 07:16:21
【问题描述】:
原来的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 小时后还没有完成!
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 和 Q。但是第二个要么学的时间太长,要么根本学不会。
我是不是搞错了?
【问题讨论】:
标签: python time-series statsmodels arima