R语言实现时间序列之8种平稳化方法

R语言实现——8种方法平稳法

选取R语言自带数据集中1959-1997年每月大气co2浓度作为数据,plot(co2),观察图像可以发现这个数据是具有趋势和周期的,并且是方差齐次的,所以可以考虑使用平稳化方法来使之平稳化。

 

 

  1. 差分+季节性差分

S<-diff(co2)%一阶差分 

Plot(S)


diff(S,d,1)%d步差分

当d取12时得到如下图

 

    通过观察时序图看发现没有明显的趋势和周期来,可以初步判断该时间序列为平稳时间序列

  1. 季节差分+差分

s<-diff(co2,12,1)

Plot(s)

plot(diff(s))

    通过观察时序图看发现没有明显的趋势和周期来,可以初步判断该时间序列为平稳时间序列

    结论:通过观察第一种和第二种平稳化方法得到的数据和时序图可以发现两种方法得到的结果是一致的,这是符合数学逻辑上的推理。

3.季节指数+差分

    在该方法下,生成存储矩阵,将数据导入存储矩阵中进行相应的运算。

首先,利用季节指数去掉该时间序列数据的周期性,代码如下:

> data(package='datasets')
> c<-as.matrix(co2)%将数据以矩阵形式表达
> a<-matrix(1,39,12)%将数据导入矩阵中
> for (i in 1:nrow(c))
+ if(i%%12==0)
+ a[i/12,12]<-c[i,1]
> for (i in 1:nrow(c))
+ for (j in 1:11)
+ if (i%%12==j)
+ a[(i+(12-i%%12))/12,j]<-c[i,1]
> b<-matrix(1,39,2)%生成b存储矩阵,存储计算后得到的年平均值和季节指数
> for (i in 1:39)
+ b[i,1]<-mean(a[i,])
> for (i in 1:39)
+ b[i,2]<-b[i,1]/mean(a)
> plot(b[,2])%对季节指数进行画图

> d<-matrix(1,39,12)%对残差进行分析

> for (i in 1:39)+ for (j in 1:12)+ d[i,j]<-a[i,j]-b[i,1]

> plot(d)%画图,观察利用季节指数去除周期的效果

    结果:从图中可以看出,都在0附近波动,说明去除周期性效果较好。

    其次,进行1阶差分运算,去除线性趋势,代码如下:> diff(d)

    结果:差分后,数据在0附近波动,说明去除趋势效果较好

4.差分+季节指数

    该方法与上一方法颠倒顺序,方法相似。首先,进行1阶差分去掉该时间序列数据的趋势,代码如下:

> diff(a)

 

    结果:从图中可以看出,数据在0附近波动,说明差分情况较好。

    其次,对差分后的数据利用季节指数进行运算,去除周期性,代码如下:

> f<-diff(a)
> b1<-matrix(1,39,12)
> for (i in 1:39)
+ b> b1<-matrix(1,39,2)
> for (i in 1:38)
+ b1[i,1]<-mean(f[i,])
> for (i in 1:38)
+ b1[i,2]<-b1[i,1]/mean(f)
>g<-matrix(1,38,12)
> for (i in 1:38)
+ for (j in 1:12)
+ g[i,j]<-f[i,j]-b1[i,1]> plot(g)

    原理与方法3相同,不再赘述。

    结果:从图中可以看出,数据在0附近波动,去除周期性结果较好。

    从方法3和方法4中可以看出,平稳化使用的方法是相同的,都是使用的差分和季节指数,但是,顺序不同,得到的结果有一定的差别。
    其中的难点主要在于用代码实现自动计算季节指数,如果用Excel等工具会简单一些,但不够常规化,故我们在用R语言实现了计算季节指数是比较通用的。

    通过拟合去掉趋势效果不好,故针对本例子暂不考虑拟合法和其他方法结合平稳化。 

感谢合作者(GX T).

  • 6
    点赞
  • 80
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值