在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
原文链接:http://tecdat.cn/?p=5919
在本文中,我将介绍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,我们可以使用
自相关函数
要计算自相关,我们可以使用以下R函数:
数据的高度自相关表明数据具有明确的时间趋势。 部分自相关 由于观察到较大滞后的自相关可以是较低滞后的相关结果,因此通常值得考虑部分自相关函数(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可视化中,ACF或pACF被绘制为滞后的函数。指示的水平蓝色虚线表示自相关显着的水平。 分解时间序列数据
执行分解的方式取决于时间序列数据是加法还是乘法。 加法和乘法时间序列数据 加法模型假设数据可以分解为
yt = St + Tt + ϵt.yt = St + Tt + ϵt.
另一方面,乘法模型假设数据可以被分解为
log(StTtϵt)=log(St)+log(Tt)+log(ϵt)log(StTtϵt)=log(St)+log(Tt)+log(ϵt)
正如我们所看到的,采用对数已经使季节性成分的幅度沿时间均衡。请注意,总体增长趋势没有改变。 在R中分解时间序列数据 要分解R中的时间序列数据,我们可以使用该 示例1:AirPassengers数据集 对于
分解表明,多年来航空公司乘客总数在增加。此外,我们已经观察到的季节性影响已被清楚地捕捉到。 示例2:EuStockMarkets数据集 让我们考虑可以为
该图显示了1992年至1998年的DAX数据中的以下内容:
固定与非固定过程生成时间序列数据的过程可以是静止的也可以是非静止的。 例如,数据
左图显示了一个静止过程,其中数据在所有测量中表现相似。右图显示了一个非平稳过程,其中平均值随着时间的推移而增加。 介绍了与时间序列数据分析相关的最重要概念后,我们现在可以开始研究预测模型。 ARMA模型ARMA代表自回归移动平均线。ARMA模型仅适用于固定过程,并具有两个参数:
ARMA模型可以指定为
ÿ^Ť= c + εŤ+ Σi = 1pφ一世ÿt - 我- Σj = 1qθĴεt - j。y^t=c+ϵt+∑i=1pϕiyt−i−∑j=1qθjϵt−j.
使用以下变量:
使用backshift运算符制定ARMA模型使用backshift运算符,我们可以通过以下方式制定ARMA模型:
( 1 - Σi = 1pφ一世乙一世)yŤ= ( 1 - Σj = 1qθĴ乙Ĵ)εĴ(1−∑i=1pϕiBi)yt=(1−∑j=1qθjBj)ϵj
ϕp(B)=1−∑pi=1ϕiBiϕp(B)=1−∑i=1pϕiBiθq(B)=1−∑qj=1θjBjθq(B)=1−∑j=1qθjBj
ϕp(B)yt=θq(B)ϵt.ϕp(B)yt=θq(B)ϵt.
ARIMA模型dd 总之,ARIMA模型具有以下三个参数:
在ARIMA模型中,通过将替换差异,将结果转换为差异ytyt
(1−B)dyt.(1−B)dyt.
然后通过指定模型
ϕp(B)(1−B)dyt=θq(B)ϵt.ϕp(B)(1−B)dyt=θq(B)ϵt.
d=0d=0(1−B)0yt=yt(1−B)0yt=ytdd
(1−B)1yt(1−B)2yt=yt−yt−1=(1−2B+B2)yt=yt−2yt−1+yt−2(1−B)1yt=yt−yt−1(1−B)2yt=(1−2B+B2)yt=yt−2yt−1+yt−2
在下文中,让我们考虑ARIMA模型的三个参数的解释。 ppp∈N0p∈N0d=0d=0Byt=yt−1Byt=yt−1ϕ1ϕ1yt−1yt−1yt−2yt−2ϕ1ϕ1ϕ2ϕ2 p=1p=1d=0d=0q=0q=0
y^t=μϵt+ϕ1yt−1y^t=μϵt+ϕ1yt−1
自回归的影响 我们可以使用该
第一个例子表明,对于ARIMA(1,0,0)过程,订单1的pACF非常高,而对于ARIMA(2,0,0)过程,订单1和订单2自相关都很重要。因此,可以根据pACF显着的最大滞后来选择AR项的顺序。 ddARIMA(0,1,0)模型简化为随机游走模型
y^t=μ+ϵt+yt−1.y^t=μ+ϵt+yt−1.
差异的影响 以下示例演示了差异对
虽然第一个图表显示数据显然是非静止的,但第二个图表明差异时间序列是相当静止的。
其中当前估计值取决于先前测量值的残差。 移动平均线的影响可以通过绘制自回归函数来研究移动平均线的影响:
请注意,对于自回归图,我们需要注意第一个x轴位置表示滞后为0(即标识向量)。在第一个图中,只有第一个滞后的自相关是显着的,而第二个图表明前两个滞后的自相关是显着的。为了找到MA术语的数量,适用与AR术语类似的规则:MA术语的顺序对应于自相关显着的最大滞后。 在AR和MA术语之间进行选择为了确定哪个更合适,AR或MA术语,我们需要考虑ACF(自相关函数)和PACF(部分ACF)。使用这些图我们可以区分两个签名:
AR和MA术语的影响 AR和MA术语的组合导致以下时间序列数据:
SARIMA模型
ARIMAX模型
R中的预测
SARIMA模型用于固定过程我们将使用包中的
d=0d=0 为了验证是否存在任何季节性趋势,我们将分解数据:
没有整体趋势,这是固定过程的典型趋势。但是,数据存在强烈的季节性因素。因此,我们肯定希望包含对季节性影响进行建模的参数。 季节性模型 (P,D,Q)S(P,D,Q)SD=0D=0
P=2P=2Q=0Q=0 非季节性模型 ppqq
我们可以使用包中的 我们现在可以使用该模型来预测未来Nino 3.4地区的气温如何变化。有两种方法可以从预测模型中获得预测。第一种方法依赖于
如果我们不需要自定义绘图,我们可以使用以下
用于非平稳数据的ARIMA模型为了演示ARIMA模型对非平稳数据的使用,我们将使用包中的
d=1d=1
现在,数据似乎是静止的。
p=0p=0q=1q=1 我们现在可以预测未来几年平均陆地 - 海洋温度偏差将如何变化:
该模型表明,未来几年平均陆地 - 海洋温度偏差将进一步增加。 关于空气质量数据集的ARIMAX为了展示ARIMAX模型的使用,我们将使用臭氧数据集 。 让我们加载臭氧数据集并将其划分为测试和训练集。请注意,我们已确保训练和测试数据包含连续的时间测量。 由于数据集未指示相对时间点,我们将手动创建此类注释: 为此,我们将在臭氧数据集中创建一个新列,该列反映了相对时间点: 现在我们有了时间维度,我们可以绘制臭氧水平的纵向行为:
时间序列数据似乎是固定的。让我们考虑ACF和pACF图,看看我们应该考虑哪些AR和MA术语
自相关图非常不清楚,这表明数据中实际上没有时间趋势。因此,我们会选择ARIMA(0,0,0)模型。由于具有参数(0,0,0)的ARIMAX模型没有传统线性回归模型的优势,我们可以得出结论,臭氧数据的时间趋势不足以改善臭氧水平的预测。让我们验证一下:
我们可以看到具有负二项式可能性的线性模型优于ARIMAX模型。 关于空气质量数据集的ARIMAX要在更合适的数据集上演示ARIMAX模型,让我们 该
测量结果是从1951-03-18到1953-07-11的四周观测。 我们将模拟缺点,冰淇淋消费作为时间序列,并使用收入,价格和平均值作为外生变量。在开始建模之前,我们将从数据框中创建一个时间序列对象。 我们现在调查数据: 全部评论
专题导读
热门推荐
热门话题
阅读排行榜
|
请发表评论