python 时间序列预测 —— SARIMA

Izellah ·
更新时间:2024-09-21
· 864 次阅读

SARIMA(p,d,q)(P,D,Q,s) 季节性自回归移动平均模型,结构参数有七个

AR(p) 自回归模型,即用自己回归自己。基本假设是,当前序列值取决于序列的历史值。p 表示用多少个历史值来回归出预测值。

要确定初始 p,需要查看PACF图并找到最大的显著时滞,在 p 之后其它时滞都不显著。

MA(q) 移动平均模型,是对时间序列的误差进行建模,并假设当前误差取决于带有滞后的误差。可以在ACF图上找到初始值。

结合以上两种方法:AR(p)+MA(q)=ARMA(p,q)AR(p)+MA(q)=ARMA(p,q)AR(p)+MA(q)=ARMA(p,q),就是自回归移动平均模型

剩下的参数:

I(d) 表示积分的阶数为 d,出现积分是因为我们先对时间序列做 d 次微分,使得序列平稳。举个例子,对抛物线微分两次就得到了一个定常(平稳)的加速度,估计出了正确的加速度,积分两次回去,就还原了原时间序列。

现在我们有了 ARIMA 模型,可以对无季节变化的非稳态序列建模。

S(s) 用来建模序列的季节性,s 代表季节的长度

有了季节性,就需要额外三个参数 (P,D,Q)

P 表示季节自回归的阶数,从 PACF 推断。和小 p 不同的是,需要看的是季节长度的倍数上的时滞。比如,如果季节长度为 24,那么就要在 pacf 图上检查 24,48,72 个滞后的强度,如果滞后 48 的序列的 pacf 表现显著,那么 P 等于 2

Q 和 P 的取法类似,不过是通过 ACF 图选择

D 表示季节差分的阶数,一般就是 0 或 1,做了季节差分就是 1

好了,说了半天你也没听懂,接下来我们用 SARIMA 来建模



时间序列 Python

需要 登录 后方可回复, 如果你还没有账号请 注册新账号