在本文中,我将介绍ARMA,ARIMA(Box-Jenkins),SARIMA和ARIMAX模型如何用于预测给定的时间序列数据。
使用后移运算符计算滞后差异
我们可以使用backshift运算符来执行计算。例如,后轴运算符可用于计算的时间序列值的滞后差异ÿy经由yi−Bk(yi),∀i∈k+1,…,tyi−Bk(yi),∀i∈k+1,…,t其中kk表示的差异滞后。对于k=1k=1,我们获得普通的成对差异,而对于k=2k=2我们获得相对于前任先前的成对差异。让我们考虑R中的一个例子。
使用R,我们可以使用diff
函数计算滞后差异。函数的第二个参数表示所需的滞后kk,默认设置为k=1k=1。例如:
## y is: 1,3,5,10,20
## By is: 2,2,5,10
## B^3y is: 9,17
自相关函数
要计算自相关,我们可以使用以下R函数:
## [1] 0.9944627
## [1] 0.9819805
数据的高度自相关表明数据具有明确的时间趋势。
部分自相关
由于观察到较大滞后的自相关可以是较低滞后的相关结果,因此通常值得考虑部分自相关函数(pACF)。pACF的想法是计算部分相关性,这种相关性决定了对变量的最近观察的相关性。pACF定义为:
φkk:=Corr(yt,yt−k|yt−1,⋯,yt−k+1)k=0,1,2,⋯φkk:=Corr(yt,yt−k|yt−1,⋯,yt−k+1)k=0,1,2,⋯
使用pACF可以识别是否存在实际滞后的自相关或这些自相关是否是由其他测量引起的。
计算和绘制ACF和pACF的最简单方法是分别使用acf
和pacf
函数:
在ACF可视化中,ACF或pACF被绘制为滞后的函数。指示的水平蓝色虚线表示自相关显着的水平。
分解时间序列数据
- StSt
- TtTt
- ϵtϵt
执行分解的方式取决于时间序列数据是加法还是乘法。
加法和乘法时间序列数据
加法模型假设数据可以分解为
yt = St + Tt + ϵt.yt = St + Tt + ϵt.
另一方面,乘法模型假设数据可以被分解为
- 添加剂:每个时期的季节效应放大器相似。
- 乘法:季节性趋势随时间序列的变化而变化。
AirPassengers
数据集提供了乘法时间序列的示例。
log(StTtϵt)=log(St)+log(Tt)+log(ϵt)log(StTtϵt)=log(St)+log(Tt)+log(ϵt)AirPassengers
数据集:
正如我们所看到的,采用对数已经使季节性成分的幅度沿时间均衡。请注意,总体增长趋势没有改变。
在R中分解时间序列数据
要分解R中的时间序列数据,我们可以使用该decompose
函数。请注意,我们应该通过type
参数提供时间序列是加法的还是乘法的。
示例1:AirPassengers数据集
对于AirPassengers
数据集,我们指定数据是乘法的并获得以下分解:
分解表明,多年来航空公司乘客总数在增加。此外,我们已经观察到的季节性影响已被清楚地捕捉到。
示例2:EuStockMarkets数据集
让我们考虑可以为EuStockMarkets
数据集找到的分解: