时间序列分析这件小事(六)--非平稳时间序列与差分

来源:互联网 发布:递推算法求韩信点兵 编辑:程序博客网 时间:2024/04/30 12:32

1.非平稳时间序列

之前我们说明了怎么样的时间序列是序列平稳的,但是世界并不是那么美好,很多时间序列都不是平稳序列,所以这里就要求我们做一些处理了。

首先我们来看一下非平稳时间序列长什么样。在AR模型中,只要自回归系数都绝对值都是小于1的,那么序列就是平稳的,所以这样一个序列,自回归系数等于1,就是不平稳的序列了。

yt = yt-1 + c

c是一个服从正态分布的噪音。

#example 10set.seed(12345)ut = rnorm(50,0,1.5)xt = cumsum(ut)plot(xt,type = 'o');abline(h = 0)
其中,cumsum是一个计算累计数的函数。比如cumsum(c(1,2,3,4,5))=(1,1+2,1+2+3,1+2+3+4.....)=(1,3,6,10......)



这就是对非平稳序列的一个直观的感受了。

2.非平稳序列的平稳方法--差分

非平稳序列往往一次到两次差分之后,就会变成平稳序列。什么是差分呢?就是后一时间点的值减去当前时间点,也就是yt-yt-1。

#example 11x = 1:10diff(x,d=1)diff(x,d=2)

这里,我们对1,2,3,4,5......这个序列做了两次差分,都是后一个数减去前一个数。


值得注意的一点是,每一次差分之后,都会少一个序列值。

#example 12plot(diff(xt,d = 1),type = 'o');abline(h = 0)plot(diff(xt,d = 2),type = 'o');abline(h = 0)
我们用之前的序列试一下水,可以看到,一阶差分和二阶差分后,看上去都平稳了呢!






3.判断序列是否平稳

前面我们用肉眼看了序列的平稳性,但是作为一个时间序列分析者,竟然用眼睛主观判断,这有点不合逻辑。很幸运的是,我们根据单位根过程(有兴趣的读者查找相关资料),可以进行假设检验,譬如DF与ADF检验。

adf检验函数包含在tseries这个包中,使用前我们要先引用它。

#example 13adf.test(xt)adf.test(diff(xt))adf.test(diff(xt,d=2))


大家注意看哦,当没有做差分的时候,p-value是0.47+,而备择假设是stationary,也就是平稳时间序列,所以零假设就是非平稳时间序列。p-value>0.05的时候,在95%的置信度下,我们是不能拒绝原假设的,所以我们不能说xt原序列是时序平稳的,但是对于一阶差分和二阶差分就是可以的了。

1 0
原创粉丝点击