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

R语言与时间序列分析 同时被 2 个专栏收录
8 篇文章 4 订阅

童鞋们觉得文章不错,就麻烦点一下下面人工智能的教程链接吧,然后随便翻阅一下

https://www.captainbed.net/qtlyx

 

1.非平稳时间序列

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

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

yt = yt-1 + c

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

 

#example 10
set.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 11
x = 1:10
diff(x,d=1)
diff(x,d=2)

 

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

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

 

#example 12
plot(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 13
adf.test(xt)
adf.test(diff(xt))
adf.test(diff(xt,d=2))

 

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

 

童鞋们觉得文章不错,就麻烦点一下下面人工智能的教程链接吧,然后随便翻阅一下

https://www.captainbed.net/qtlyx

  • 27
    点赞
  • 5
    评论
  • 92
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值