ARIMA模型的介绍

2024-05-06 06:14

1. ARIMA模型的介绍

全称为自回归积分滑动平均模型(Autoregressive Integrated Moving Average Model,简记ARIMA),是由博克思(Box)和詹金斯(Jenkins)于70年代初提出一著名时间序列预测方法1,所以又称为box-jenkins模型、博克思-詹金斯法。其中ARIMA(p,d,q)称为差分自回归移动平均模型,AR是自回归, p为自回归项; MA为移动平均,q为移动平均项数,d为时间序列成为平稳时所做的差分次数。所谓ARIMA模型,是指将非平稳时间序列转化为平稳时间序列,然后将因变量仅对它的滞后值以及随机误差项的现值和滞后值进行回归所建立的模型。ARIMA模型根据原序列是否平稳以及回归中所含部分的不同,包括移动平均过程(MA)、自回归过程(AR)、自回归移动平均过程(ARMA)以及ARIMA过程。

ARIMA模型的介绍

2. AR模型的MA模型

MA模型(moving average model)滑动平均模型,模型参量法谱分析方法之一,也是现代谱估中常用的模型。设一个离散线性系统,输入u(n)是一个具有零均值与方差为σ的白噪声序列,输出是x(n),该离散线性系统的输出和输入之间的关系可用如下图3的差分方程来表示。其系统函数为图4。式中X(Z)为输出信号x(n)的Z变换,U(Z)为输入信号u(n)的Z变换,br(r=0,…M)是系数。式①表达的信号模型称为MA模型,又称移动平均模型。按公式的物理意义可以解释为模型表示现在的输出是现在和过去M个输入的加权和。按②式,MA模型是一个全零点模型。用MA模型法求信号谱估计的具体作法是:①选择MA模型,在输入是冲激函数或白噪声情况下,使其输出等于所研究的信号,至少应是对该信号一个好的近似。②利用已知的自相关函数或数据求MA模型的参数。③利用求出的模型参数估计该信号的功率谱。在ARMA参数谱估计中,大多数估计ARMA参数的两步方法都首先估计AR参数,然后在这些AR参数基础上,再估计MA参数,然后可求出ARMA参数的谱估计。所以MA模型参数估计常作为ARMA参数谱估计的过程来计算。

3. ARIMA模型的基本思想

ARIMA模型的基本思想是:将预测对象随时间推移而形成的数据序列视为一个随机序列,用一定的数学模型来近似描述这个序列。这个模型一旦被识别后就可以从时间序列的过去值及现在值来预测未来值。现代统计方法、计量经济模型在某种程度上已经能够帮助企业对未来进行预测。

ARIMA模型的基本思想

4. AR模型的MA模型

MA模型(moving
average
model)滑动平均模型,模型参量法谱分析方法之一,也是现代谱估中常用的模型。
设一个离散线性系统,输入u(n)是一个具有零均值与方差为σ的白噪声序列,输出是x(n),该离散线性系统的输出和输入之间的关系可用如下图3的差分方程来表示。
其系统函数为图4。
式中X(Z)为输出信号x(n)的Z变换,U(Z)为输入信号u(n)的Z变换,br(r=0,…M)是系数。式①表达的信号模型称为MA模型,又称移动平均模型。按公式的物理意义可以解释为模型表示现在的输出是现在和过去M个输入的加权和。按②式,MA模型是一个全零点模型。
用MA模型法求信号谱估计的具体作法是:①选择MA模型,在输入是冲激函数或白噪声情况下,使其输出等于所研究的信号,至少应是对该信号一个好的近似。②利用已知的自相关函数或数据求MA模型的参数。③利用求出的模型参数估计该信号的功率谱。
在ARMA参数谱估计中,大多数估计ARMA参数的两步方法都首先估计AR参数,然后在这些AR参数基础上,再估计MA参数,然后可求出ARMA参数的谱估计。所以MA模型参数估计常作为ARMA参数谱估计的过程来计算。

5. (四)ARIMA模型方法

1.ARIMA模型的基本思想
将预测对象随时间推移而形成的数据序列视为一个随机序列,对其进行差分整合后用自回归加移动平均来拟合,并据其对时间序列的过去值及未来值进行预测的数学方法,即ARIMA模型的基本思想。
ARIMA模型一般表示为ARIMA(p,d,q),其数学表达式为
φp(B)(1-B)dyt=θq(B)εt, (7-9)
式中:φp(B)=1-φ1B-…-φpBp,θq(B)=1-θ1B-…-θqBq;
AR是自回归,p为自回归项,MA为移动平均,q为移动平均项数,d为差分次数;yt是时间序列,B是后移算子,φ1,…,φp为自回归系数,θ1,…,θq为移动回归系数,{εt} 是白噪声序列。
2.ARIMA模型预测基本程序
(1)平稳性识别
以自相关函数和偏自相关函数图等来判定数列是否为平稳型。
(2)对非平稳序列进行平稳化处理
存在增长或下降趋势,需进行差分处理,直到处理后的数据的自相关函数值和偏相关函数值显著地等于零。
(3)根据时间序列模型的识别规则建立相应模型
据序列的自相关和偏相关函数图判定模型的类型及p与q的阶数。
在自相关和偏相关函数图上,函数在某一步之后为零,称为截尾;不能在某一步之后为零,而是按指数衰减或正负相间递减的形式,称为拖尾。
由自相关函数和偏相关函数是截尾还是拖尾及其期次可进行模型判别,标准见表7-8。

表7-8 模型参数的ACF-PACF图判别的标准

(4)假设检验,诊断残差序列是否为白噪声
用χ2检验检测所估计模型的白噪声残差,其残差应是一随机序列,否则进行残差分析,必要时需重新确定模型。
(5)预测分析
利用已通过检验的模型进行预测分析,得到x(t)在t+1期,即1期以后的预测值,记这个预测值为x(t+1),称它为未来第1期的预测值。

(四)ARIMA模型方法

6. AR模型的介绍

AR模型是一种线性预测,即已知N个数据,可由模型推出第N点前面或后面的数据(设推出P点),所以其本质类似于插值,其目的都是为了增加有效数据,只是AR模型是由N点递推,而插值是由两点(或少数几点)去推导多点,所以AR模型要比插值方法效果更好。

7. AR模型的ARMA 模型

ARMA模型(auto regressive moving average model)自回归滑动平均模型,模型参量法高分辨率谱分析方法之一。这种方法是研究平稳随机过程有理谱的典型方法,适用于很大一类实际问题。它比AR模型法与MA模型法有较精确的谱估计及较优良的谱分辨率性能,但其参数估算比较繁琐。设一个离散线性系统,输入u(n)是一个具有零均值与方差为σ的白噪声序列,输出是x(n),该离散线性系统输出和输入之间的关系可用如下图1的差分方程来表示。其系统函数如图2。式中X(Z)为输出信号的Z变换,U(Z)为输入信号的Z变换,以①式表达的信号模型称为ARMA模型或称为自回归滑动平均模型。一旦确定了ARMA(P,M)模型的参数,就可得到其功率谱估计。ARMA模型参数估计的方法很多:如果模型的输入序列{u(n)}与输出序列{a(n)}均能被测量时,则可以用最小二乘法估计其模型参数,这种估计是线性估计,模型参数能以足够的精度估计出来;许多谱估计中,仅能得到模型的输出序列{x(n)},这时,参数估计是非线性的,难以求得ARMA模型参数的准确估值。从理论上推出了一些ARMA模型参数的最佳估计方法,但它们存在计算量大和不能保证收敛的缺点。因此工程上提出次最佳方法,即分别估计AR和MA参数,而不像最佳参数估计中那样同时估计AR和MA参数,从而使计算量大大减少。

AR模型的ARMA 模型

8. 理解 AR 和 MA 模型

最近在搞一点预测技术,用过去的数据,预测将来的数据。
  
 比如说,在过去一周中,从周一到周日,武大郎卖的炊饼数是 20,20,20,20,20,20,20,那么下一周他每天能卖出多少?他必须预测出来,不然潘金莲的炊饼做多了,做少了,都要亏钱的。
  
 大朗的炊饼好预测,看起来很简单。但西门大官然的店铺好多,要预测清楚,就不容易了。
  
 我挑了不少方法,最终决定用 XGBoost,因为要考虑刮风下雨,还有大宋国假期这些因素的影响。
  
 在此之前,我还是花了不少时间在 ARIMA 上。 毕竟,炊饼经营,是时序数据,ARIMA 对付稳定的时序数据,那是最擅长的。
  
 研究 ARIMA,少不了要确定 p 和 q,要看 ACF 和 PACF 的截尾和拖尾。但各种各样的网文教程,包括大学教材,都是干巴巴的公式,就是不给个例子。
  
 我甚为怀疑,好多写教材的,自己未必真搞懂了。
  
 越看越晕。后来,看英文资料,才明白过来。老外真是太闲,也有耐心,每一个细节都写的明明白白,仿佛在教小学生。
  
 先说 AR 模型,即自回归模型。即算一个函数,让每一个观察量(就是大郎每天卖的炊饼数)都依赖过去的量。比如上面武大郎的那个 20、20、20,就可以设计出一个函数,即,今天的炊饼量等于昨天的炊饼量。一般的公式为:
  
   
  
 这是 1 阶,即 AR(1) 的公式。 看看,   和    之间相关性是个    。
  
 而 AR(2) 则为:  
  
 举个例子,  ,用 statsmodels.tsa.arima_process 模拟一个符合 AR(1) 的时序数据。画出图来:
                                          
 要注意的是,只有    是我们指定的,而    和    则是 arima_process 随机给出的,   是一个固定值,而   则是每次都随机。
  
 可以猜到,   对      的相关性为 0.9, 而    对   的相关性是   ,对  的相关性,则为   。这种相关性,会一直延续下去,传递下去。所以,自相关 ACF 图为:
                                          
 看,一个漂亮的拖尾,拖的又长又整齐。
  
 那么,这个 AR(1) 的偏自相关应该是什么? 这是一个让初学者晕的概念。
  
 做个比喻吧。 小明、小明爸爸、小明爷爷,列祖列宗,构成一个 AR(1),记住,他们万万不可构成 AR(2)。所以,他们的DNA 就一代代往下传,小明和小明爸爸的自相关性是 1/2, 小明爷爷和小明爸爸的相关性是 1/2,而小明和小明爷爷的相关性是 1/4。
  
 但小明与爷爷的偏自相关呢?太遗憾了,只能是零。 在这里脑袋里要拧个弯,把小明爸爸的影响去除掉,即小明爸爸给小明的那1/2基因去除掉,那小明和爷爷的偏自相关,就是零了。
  
 如果不是零,那就坏了。 
  
 但小明和爸爸,爸爸和爷爷的偏自相关,其实就是他们之间的自相关,都是 1/2。
  
 所以,上面这个    的偏自相关图 PACF 是:
                                          
 看,多么经典的截尾,第一阶截断,如悬崖般。 
  
 如果是 RA(2),那么就会在第二阶截断。但是,上面那个比喻就进入一个非常艰难、难以理解的境地。
  
 我们必须假设,小明的DNA有 1/2 来自爸爸,还有1/4 是直接来自爷爷。打字打到这里,有点受不了。注意,1/4是直接来自,即爷爷既是爷爷,也是爸爸。
  
 好了,就当科幻来看吧。
  
 下面来说 MA,即移动平均模型,第一个注意,此处的“移动平均模型”,不是计算 “移动平均值” 那么简单。
  
 想象一个时间序列,互相之间,毫无关系。举个例子,三体世界,他们的天气每天都是跌宕起伏的,压根没有地球上的四季分明。三体上,第一天是40度,很热,但还能喘气。第二天就是零下200度,全部冻死。 第三天呢? 春暖花开23度,第四天就是3000度炼钢厂,行星成液体。
  
 总之,每一天都是随机数。天与天之间毫无规律,没有关系。
  
 咋办? 怎么预测明天的温度? 怎么决定明天是继续活着,还是赶紧阴干成皮?
  
 没办法,只能搞个大概的移动平均,比如,把过去10 天的天气加总,然后除以 10。
  
 这个三体天气,就是一个纯粹的 MA (10) 模型。
  
 MA 的一般公式是:  
  
 注意观察,   和    没有直接关系了,不是 AR 了,而是通过移动平均    值才产生关系。
  
 举个例子,  ,用 statsmodels.tsa.arima_process 模拟一个符合 MA(1) 的时序数据。画出图来:
                                          
 一样要注意,只有    是指定的,   都是随机值。
  
 所以,可以看到    之间的自相关系数是   ,在此处是 -0.479。而R_{t}   R_{t-2}的自相关系数是 0。(这一段没有理解,why   ?倒是 2阶之后为 0,好理解。有聪明人指点指点。)
  
 所以,此 MA 的 ACF 图是:
                                          
 一个干净利落的截尾,止于 1 阶。
  
 而 PACF 的图,则为:
                                          
 对于为何一个标准的 MA(1) 的偏自相关居然是拖尾的,深思不解。 我的理解,它应该是个飘忽不定的震荡过程。 因为从1阶之后,从自相关角度看,已经没关系,那么偏自相关更应该没有规律的关系才对。
  
 如果偏自相关还有关系,何以自相关居然没关系了?
  
 在时序数据中 ARMA 或者 ARIMA 中,MA 是 AR 过程中剩余下的残差的回归。