时序检测详解

/BigData_Mining/article/details/81092750

一、概述

1.时间序列的平稳性

这样的时间序列被称为平稳时间序列。也可以认为,如果一个时间序列无明显的上升或下降趋势,各观察值围绕其均值上下波动,这个均值相对于时间来说是一个常数,那么时间序列为平稳序列(弱平稳(Weak stationarity))。

事实上,有两种关于平稳的定义,还有一种强平稳过程:

强平稳过程(Strict stationarity):对于所有可能的n,所有可能的t1,t2,…,tnt1,t2,…,tn,如果所有可能的Zt1,Zt2,…,ZtnZt1,Zt2,…,Ztn的联合分布与Zt1?k,Zt2?k,…,Ztn?kZt1?k,Zt2?k,…,Ztn?k相同时,称其为强平稳。

两种平稳过程并没有包含关系,弱平稳不一定是强平稳,强平稳也不一定是弱平稳。强平稳是事实上的平稳,而弱平稳是统计量在观测意义上的平稳(均值、方差)。

平稳的基本思想是:时间序列的行为并不随时间改变。平稳性刻画的是时间序列的统计性质关于时间平移的不变性。我们研究时间序列很重要的一个出发点 是希望通过时间序列的历史数据来得到其未来的一些预测,换言之,我们希望时间序列在历史数据上的一些性质,在将来保持不变,这就是时间平移的不变性。反之,如果时间序列不是平稳的,由历史数据得到的统计性质对未来预测毫无意义。

2.时间序列的组成

每个时间序列的主要组成部分:

时序检测去除噪音的方法有两种,移动平均法(MA)和指数平滑,ARIMA采用的就是移动平均MA

1.移动平均法

它的基本原理:对任意奇数个连续的点,将它们最中间的点的值替换为其他点的平均值,假设{xixi}表示数据点,位置i的平滑值为sisi,则有:

si=12k+1∑j=?kkxi+j

si=12k+1∑j=?kkxi+j

这个简单的方法存在很严重的问题,这和图像处理中的均值滤波是类似的(只不过这里是一维的),采用这样简单粗暴的平滑处理会导致数据变“模糊”,当一个尖峰进入平滑窗口时,当前的数据就会被这个尖峰突然扭曲,直到异常值离开平滑窗口。即因为噪音数据,原始数据丢失了细节。在图像处理中,我们采用高斯滤波来解决这一问题,我们的平滑窗口是带权值的,越靠近中心数据的权重越大,越靠近平滑窗口边缘的点权重越小。这里同样适用,我们通过使用加权移动平均法,公式如下:

si=∑j=?kkwjxi+j,其中∑j=?kkwj=1

si=∑j=?kkwjxi+j,其中∑j=?kkwj=1

这里的wjwj是权重因数。使用高斯函数来生成权重因数公式如下:

f(x,σ)=12πσ2√exp(?12(xσ)2)

f(x,σ)=12πσ2exp(?12(xσ)2)

参数σσ决定曲线的宽度,当x大于3.5σσ时函数值为0。因此f(x,1)可以用来生成9点的权重因数,只要取f(x,1)上[-4,-3,-2,-1,0,1,2,3,4]这几个位置的函数值即可。把σσ设为2就能得到15点的权重因数,即x为-7到+7之间的所有整数时的取值,以此类推。

移动平均法存在很多问题:

假设p=1,q=2,且进行了一阶差分后,序列平稳了,那么:

X^t?Xt?1=?1(Xt?1?Xt?2)+θ1εt?1+θ2εt?2

X^t?Xt?1=?1(Xt?1?Xt?2)+θ1εt?1+θ2εt?2

即:

X^t=Xt?1+?1(Xt?1?Xt?2)+θ1εt?1+θ2εt?2

X^t=Xt?1+?1(Xt?1?Xt?2)+θ1εt?1+θ2εt?2

其中,X tX t为预测值。ARIMA(p,d,q)模型可定义为:

(1?∑i=1p?iLi)(1?L)dXt=(1+∑i=1qθiLi)εt

(1?∑i=1p?iLi)(1?L)dXt=(1+∑i=1qθiLi)εt

其中L是滞后算子(Lag operator),d∈Z,d>0。∈Z,d>0。

ARIMA模型运用有一个较为通用的流程,如下所示:

1.根据时间序列的散点图、自相关函数和偏自相关函数图识别其平稳性。

2.对非平稳的时间序列数据进行平稳化处理。直到处理后的自相关函数和偏自相关函数的数值非显著非零。

3.根据所识别出来的特征建立相应的时间序列模型。平稳化处理后,若偏自相关函数是截尾的,而自相关函数是拖尾的,则建立AR模型;若偏自相关函数是拖尾的,而自相关函数是截尾的,则建立MA模型;若偏自相关函数和自相关函数均是拖尾的,则序列适合ARMA模型。

4.参数估计,检验是否具有统计意义。

5.假设检验,判断(诊断)残差序列是否为白噪声序列。

6.利用已通过检验的模型进行预测。

四:判断平稳性

/bi_hu_man_wu/article/details/64918870

五:非平稳序列的平稳化

(1)去除趋势(针对确定趋势)

思路:yt=Tt+xtyt=Tt+xt其中TtTt是趋势xtxt平稳,我们主要找到趋势,去掉便可。通常我们采用拟合趋势,得到趋势的表达式,若去掉后仍不平稳,则是拟合错误。(找寻趋势的部分可参见下面的趋势分析-拟合与平滑)

(2)差分

一步差分Δy=yt?yt?1=(I?B)ytΔy=yt?yt?1=(I?B)yt

s步差分Δsy=(I?Bs)ytΔsy=(I?Bs)yt

比如周数据,可以选择s=7,若一次差分后得到白噪声就没有意义了,这时可以选择分数差分。但差分会使的方差变大。

(3)变换

对于方差变化的序列,可以选择log()变换,去除指数趋势。

一般情况可以考虑box-cox变换。

六:案例

/Fredric_2014/article/details/85699116

/Fredric_2014/article/details/85340339

/weixin_41988628/article/details/83149849

七。讨论与分析

由于良好的统计特性,ARIMA模型是应用最广泛的时间序列模型,各种指数平滑模型都可以用ARIMA模型来实现。即通过Holter-winters建立的模型,用ARIMA同样可以得到。即便ARIMA非常灵活,可以建立各种时间序列模型(AR,MA,ARMA)但是ARIMA也有局限性,最主要的局限在于ARIMA只能建立线性的模型,而现实世界中纯线性模型往往不能令人满意