关于非平稳时间序列分析学习有感
通常来说,很多给定的数据并不都是平稳的,比如具有长期趋势,或者长期趋势和季节效应兼有。这些因素影响着序列的变化。这个时间序列分析课程是我和小猪蹄子一起在蹭的课,本次博客的数据来自与小猪蹄子的分享——1952年至1988年的某市农业生产指数。
Step1:获得观察值序列,作出时序图
library(tseries)
library(forecast)
x<-read.csv(file.choose())
ts1<-ts(x$农业,start=1952)
plot(ts1)
这里由于每次上课小猪蹄子都会提醒我装R包,所以在自己的电脑上也养成了每次都library的习惯
观察到该序列有明显的长期趋势,并进行下一步差分。
Step2:进行差分,并计算ACF和PACF(先尝试进行1阶差分线性拟合模型)
par(mfrow=c(2,2))
ts1.diff1<-diff(ts1)
plot(ts1)
plot(ts1.diff1)
acf(ts1.diff1)
pacf(ts1.diff1)
观察ACF和PACF图可以看到,显示出除了延迟1阶的自相关系数显著非零,其他阶数的自相关阶数均在2倍标准差范围之内,显示出很强的短期相关性,所以可以认为1阶差分后序列平稳。综合考虑自相关图和偏自相关图的属性,可以认为自相关系数1阶结尾,偏自相关系数拖尾,所以对原序列拟合ARIMA(0,1,1)模型。(这里是张猪蹄子向我科普的)
Step3:拟合ARIMA(0,1,1)模型
ts1.fit<-arima(ts1,order=c(0,1,1))
ts1.fit
Step4: 残差白噪声检验
for(i in 1:2)print(Box.tset(ts1.fit$residual.lag=6*i))