智汇华云 ——AIOps之动态阈值:SARIMA模型详解

时间:2019-07-30 来源:www.ican-cintest.com

  

显然,数字(d),(h),(i)具有一定的周期性。所以它不稳定。图(a),(c),(e),(f),(i)具有一定的趋势,并且(i)的方差在增加,因此它不稳定。只有数字(b)和(g)是静止的。可能乍一看,我们看到图(g)感觉是周期性的。实际上,它不是,因为这是蟑螂的代际数量。从长远来看,这不是周期性的,所以这个时间序列是稳定的。

差分差分

我们可以看到图(a)是谷歌股票图表,不稳定。但图(b)是股票价格的日变化,这是稳定的。这是一种将不稳定时间序列转换为静止时间序列的方法,计算连续时间数据点之间的差异,这是差异。

与对数对数方法类似,可以平滑时间序列的方差,并且通过消除时间序列的变化来实现差异,从而平滑时间序列的平均值以实现趋势消除和周期性。

自相关系数自相关

自相关系数是用于确定时间序列的两个矩的值的线性关系。例如,r1是yt和yt-1之间的关系,r2是yt和yt-2之间的关系。

T是时间序列的长度,k是延迟滞后

ACF(自相关函数)图是确定时间序列稳定性的一种非常有效的方法。

如果数据是趋势,那么对于较小的延迟,自相关趋向于更大且更正。随着延迟的增加,ACF将逐渐变小。

如果数据是周期性的,则周期性延迟的自相关将更大。

如果数据是周期性的和趋势性的,您将看到两者的组合。

这张照片是澳大利亚的电力需求图。可以看出,这组数据既是周期性的,也是趋势性的。

绘制ACF图表如下:

可以看出,由于趋势,当延迟变大时,ACF逐渐变小。由于周期性,图像将具有高峰和低谷的感觉。

白噪声whitenoise

时间序列可以称为白噪声,没有任何自相关。

这是白噪声的一个例子,我们绘制其ACF图:

我们期望所有ACF值接近于零,但由于一些随机变化,它们可能不完全等于零。对于白噪声,我们预计95%的ACF杂散在T和T之间是时间序列的长度。通常我们将绘制这些范围,用蓝线表示。如果超过5%的杂散超出此范围,则此时间序列可能不是白噪声。

随机游走模型随机游览

二次差分二阶差分

有时差分数据似乎不稳定,这需要第二个差异才能得到平滑的序列。

周期性差异季节性差异

周期性差异是前一周期中同时数据点和数据点之间的差异。

这里m是循环次数。这也称为“滞后差异”。

单位根测试单元测试

确定是否需要使用单位根测试。我们在这里使用KPSStest。在这个测试中,零假设是数据是静止的,我们需要找到零假设不成立的证据。如果得到一个小的p值,例如0.05,你可以认为零假设不正确且数据不稳定。我们需要区分时间序列。

Backshift符号backshiftnotation

当我们研究时间序列的延迟时,后移符号B非常有用。

在yt上使用B将数据移回一个周期。两个B操作是将数据移回两个周期。

对于每月收集一次的数据,如果我们想要去年同月的数据,则表示为

后向移位符号对于差分过程的表示非常方便。例如,差异可以写为:

第一个差异可以表示为(1-B),然后第二个差异可以表示为:

通常,可以写出d个差分。

当组合差分时,后向移位符号非常有用。例如,周期性差分组合一次性差异可写为:

#FormatImgID_15#

AR模型AutoRegressive

在自回归模型中,我们使用过去变量的线性组合来预测。自回归表明这是其自身变量的回归。

p阶AR模型可以写成:

这是白噪声。我们称之为AR(p)模型,即p阶自回归模型。

下图显示了AR(1)模型和AR(2)模型:

对于AR(1)模型:

我们通常将AR模型限制为仅平滑数据,因此我们对参数有一些限制:

对于p>2,参数限制非常复杂,我们可以使用python包来获取它。

MA模型MovingAverage

与AR模型中使用的过去预测变量不同,MA模型使用过去的预测误差。

这是白噪声。我们称之为MA(q)模型,q阶移动平均模型。

下图显示了MA(1)模型和MA(2)模型:

我们可以将任意静态AR(p)模型编写为MA()模型。例如,我们可以将AR(1)模型编写为:

这是一个MA()模型。

如果我们对MA模型添加一些限制,我们可以说MA模型是可逆的,我们可以将任何MA(q)模型编写为AR()模型。

可逆性限制和平稳性限制类似:

对于q>2,参数限制非常复杂,我们可以使用python包来获取它。

ARIMA模型AutoRegressiveIntegratedMovingAverage

如果我们将AR和MA模型结合起来并进行区分,我们就可以得到ARIMA模型。该模型可以写成:

它是一个差分序列,右边的预测器包含延迟yt和延迟误差。我们称之为ARIMA(p,d,q)模型:

p自回归订单

差异时间

移动平均订单

有一些特殊的ARIMA模型如下:

白噪声ARIMA(0,0,0)

随机游走ARIMA(0,1,0)

随机游走ARIMA(0,1,0),偏移量为常数

自回归ARIMA(p,0,0)

移动平均线ARIMA(0,0,q)

使用后移符号,我们可以将ARIMA模型编写为:

常数c在长期预测中非常重要:

1.如果c=0且d=0,则长期预测值将倾向于0

2.如果c=0且d=1,则长期预测值往往是非零常数

直线

4.如果c0和d=0,则长期预测值将倾向于数据的平均值

直线

6.如果c0和d=2,则长期预测值将变为二次抛物线

部分自相关系数partialautocorrelation

自相关系数测量yt和yt-k之间的关系。如果yt与yt-1相关,那么yt-1和yt-2肯定是相关的。但在这种情况下,yt和yt-2也可能是相关的,因为它们都与yt-1相关,而不是因为yt-2中的新信息可用于预测yt。

为了解决这个问题,我们可以使用部分自相关系数。这是为了在消除延迟1,2,3,k-1的影响之后测量yt和yt-k之间的关系。

如果ACF和PACF图之间的差异满足以下形式,则数据可能是ARIMA(p,d,0)模型:

1. ACF呈指数衰减或正弦

2.在PACF中,延迟p有一个显着的刺激,但不会落后于

如果差异满足以下形式后ACF和PACF映射,则数据可能是ARIMA(0,d,q)模型:

3.PACF呈指数衰减或正弦

4.在ACF中,延迟q的地方存在明显的刺激,但没有

最大似然估计maximumlikelihoodestimation

在估计模型时,我们使用最大似然估计。已知随机样本满足一定的概率分布,但具体参数不清楚。参数估计是通过几次实验观察结果,并使用该结果推导出参数的近似值。对于ARIMA模型,MLE最小化

来得到。对于p,d,q的给定组合,我们可以使用python来最大化loglikelihood以找到适当的p,d,q。

信息标准信息标准

选择参数时,Akaike信息准则(AIC)非常有用,可以写成:

其中L是数据的可能性,如果c=0,则k=0;如果c0,k=1。

修订后的Achic信息准则(AICc)可以写成:

贝叶斯信息准则(BIC)可以写成:

最小化AIC,AICc或BIC可以获得更好的模型,我们更愿意选择AIC。

Pmdarima原则

Pmdarima是一个python包,它解决了ARIMA和SARIMA模型,使用Hyndman-Khandakar算法的变体,结合单位根测试来最小化AICc和MLE。

用于自动ARIMA模型拟合的Hyndman-Khandakar算法

重用KPSS检测来确定差异的数量

在差异之后,AICc被最小化以选择p和q的值。该算法使用阶梯式搜索来遍历模型空间,而不是考虑p和q的所有组合

适合四个初始模型:

1.ARIMA(0,d,0)

2.ARIMA(2,d,2)

3.ARIMA(1,d,0)

4.ARIMA(0,d,1)

常数项将被视为删除非d=2。如果是d1,则适合其他型号:

ARIMA(0,d,0)没有常数项

步骤a中的最佳模型(最小AICc值)将设置为当前模型

微调当前模型:

1.对于p或/和q

2.添加/删除常数c

新的最优模型成为当前模型

重复步骤c,直到没有较小的AICc

SARIMA模型SeasonalAutoRegressiveIntegratedMovingAverage

ARIMA模型的缺点是它不考虑周期性。加入定期术语可以获得SARIMA模型:

ARIMA(P,d,Q)(P,d,Q)米

非周期性部分周期部分

m是每年的观测数。 P,D,Q用作周期参数,p,d,q用作非周期性参数。

模型的周期性和非周期性部分非常相似,但包括周期性的后移。例如,可以为季度数据(m=4)编写ARIMA(1,1,1)(1,1,1)4:

PAC模型和ACF图中的周期性延迟可以在AR模型的周期性部分或MA模型中看到。

例如,SARIMA(0,0,0)(0,0,1)12模型具有以下特征:

ACF有一个延迟12的刺激,但没有其他明显的刺激

2. PACF的周期性延迟具有指数衰减,例如延迟为12,24,36

同样,SARIMA(0,0,0)(1,0,0)12模型具有以下特征:

3. ACF的循环延迟具有指数衰减

4. PACF延迟12次刺激

另外,根据简约原则parsimonyprinciple,它是更好的。

以下示例是对模型拟合过程的一个很好的解释:

示例:欧洲季度零售指数

这个例子是1996年至2011年的欧洲零售指数,我们将其纳入SARIMA预测模型。

这组数据显然不稳定并且具有一定的周期性,因此我们首先进行周期性差异,如下所示:

这仍然看起来不稳定,让我们做出另一个不同,如下所示:

ACF图中的延迟1的明显杂散示出了非周期性MA(1)部分,并且ACF图中的延迟4的明显杂散指示周期性MA(1)的一部分。因此,我们从SARIMA(0,1,1)(0,1,1)4模型开始,得到拟合模型的残差,如下所示:

ACF和PACF在延迟2中具有显着的杂散,并且延迟3中的杂散不小,因此模型应该具有额外的非周期性部分。 SARIMA(0,1,2)(0,1,1)4模型的AICc为74.36,SARIMA(0,1,3)(0,1,1)4模型的AICc为68.53。其他AR参数没有较小的AICc值。因此,我们选择SARIMA(0,1,3)(0,1,1)4并绘制模型的残差:

所有的马刺都在合理的范围内,残差看起来像白噪声。 Ljung-Box测试还表明残差没有自相关。

然后我们可以使用该模型进行预测:

该图显示了预测值以及80%和95%置信区间。

指标动态阈值原理

我们已经看到了SARIMA模型,可以预测时间序列数据。对于动态阈值,我们首先获取历史数据,处理数据,并需要填写缺失的数据。然后我们执行SARIMA模型拟合,在获得最优模型后,我们预测未来指标趋势并通过95%置信区间生成阈值区间。如果指标超过此间隔,我们认为该指标异常并提醒用户。每天,我们重复上述操作以使模型更准确地拟合,从而使动态阈值函数变得更好。

参考源Internet的一部分