
1. 用眼睛
首先一个时间序列,他可能是有趋势的,是不平稳的。所以如果不平稳你要做差分,把趋势的因素抵消掉。这样,如你的图2,用眼睛目测就可以认为是一个平稳的时间序列。
2. ACF,PACF观察是否稳定,并选定模型
当然,目测只是目测,接下来要用ACF和PACF来进一步观察。ACF(自相关系数)和PACF(偏自相关系数) 对于AR(p)模型,PACF会在lag=p时截尾,也就是,PACF图中的值落入宽带区域中。MA(q)模型,ACF会在lag=q时截尾,同理,ACF图中的值落入宽带区域中。这是简单的识别方法。你可以看到你的图中,ACF显然没有迅速的衰减截尾,而PACF在lag=1时他的值就落入宽带区域了。所以选用AR(1)模型,对于粗略的模拟,其实lag=14,15可以不用考虑的,当然,考虑也没啥问题。(举个例子,如果ACF在lag=3衰减入宽带区域,那就定MA(3))
3. 拟合该模型
好了,你拟合了模型,比如我用R软件mod1<-arima(x,order=c(1,0,0))x是你的时间序列名称,order里的第一项和最后一项代表p和q。你自认为模拟好了,那你要检验模拟的好不好,会不会更好。你可以通过AIC来做检验与比较。比如,你还模拟了一个模型叫他,mod2<-arima(x,order=c(1,0,1))比较他们的AICAIC(mod1)AIC(mod2)谁的数值小谁更好。
4. 检验该模型拟合后的时间序列残差是否为白噪声
好了,假设我们认为mod2更好。我们必须进一步检验,你模拟的模型是不是包含了所有的因素,也就是他的除去这个模型,你的时间序列是不是白噪声(white noise),如果不是,那就说明你还没有提出所有的因素。
我们先用简便的方法来看,看这个模型的残差是不是白噪声。
输入 acf(resid(mod2))
然后看显示图
你看见,acf的值在lag=1迅速衰减了(decay)了,所以你可以归结为,他是白噪声了。白噪声在lag=1是必须在宽带区域内,因为他的任意相邻两项没任何关系,所以也不会有什么自相关系数。
5. 进一步用Ljung-Box方法进行检验
原假设H0:自相关系数rho1=rho2=rho3...=0如果检验出来拒绝了原假设(显著有差别),说明rho不等于0不行! 判断标准:p值小于0.05,或者卡方值大于3.84或5.99(主要看你选的a)拒绝原假设;如果检验出来接受原假设,说明剩余白噪声。判断标准:p值大于0.05,或者卡方值小于3.84或5.99(主要看你选的a)接受原假设。具体,输入:m<-floor(sqrt(length(x)))Box.test(resid(x),lag=m,type=c("Ljung-Box"),fitdf=2)自由度为p与q之和m是定义的。你的时间序列n的根号取整。
得出结果,其实你的结果p=0.7是好啊!大于0.05就接受原假设啦。接受原假设就说明你的拟合的模型的残差是白噪声。记住,p值是越大越好(0.05界限),z,t,X方这些检验值都是越小越好(比如1.96;卡方3.84等等)。
补充一点,特征根方程根绝对值全部大于单位圆半径(1)也是一个检验时间序列平稳的标准。
再来用实际数据用R语言操作举个栗子:
我们有一个时间序列的数据 "D1_data.txt"
1.拿到这个时间序列你先目测,上图通过目测可以认为是一个平稳的时间序列。
2.通过ACF和PACF也就是自相关系数和偏自相关系数来判断是否稳定。
由于ACF在lag=1之后便落入置信区间;PACF在lag=3之后落入置信区间。
我们认为改时间序列稳定。
3.模型拟合
选择 ma(1)或者arma(3,1)。
用arima命令来拟合。并用AIC看哪个模型更好,AIC数值越小越好。
ma1优于arma13。
4.看看拟合好的模型的残差是否为白噪声
Ok大功告成!
