EViews教程



ARIMA模型

ARIMA(Autoregressive Integrated Moving Average)模型是ARMA模型的一个扩展,对单位根时间序列进行预测,选它就对了。利用滞后算子\(L \),ARIMA(p,d,q)模型可以写为:$$B_p(L)[(1-L)^d y_t – \mu]= R_q(L)e_t $$ $$B_p(L) = 1 – \beta_1 L – \cdots – \beta_p L^p$$ $$R_q(L) = 1 + \gamma_1 L + \cdots + \gamma_q L^q$$其中,误差\(e_t\)是一个零期望的白噪声。可以看出,ARIMA(p,d,q)模型的含义就是将序列差分d次后,数据会服从一个平稳的ARMA(p,q)模型。

在前面你已经学过如何用ARMA模型预测demo.wf1中的gdp的对数差分dlgdp,事实上,gdp的对数是一条单位根序列,所以,你看到的实际上就是d等于1的ARIMA模型。

从建模的角度看,使用ARIMA模型和使用ARMA模型几乎无差别。你要对一条单位根时间序列进行预测,无非就是先用单位根检验(见[分析预备]一讲)确定d是多少(对经济、金融时间序列,一般d最大就是1),然后再使用ARMA模型。尽管概念上容易理解,在EViews的使用上一定要注意,请看下面的例子:

series dlgdp = dlog(gdp)
equation eq1.ls(arma=cls,cov=white) dlgdp c ar(1 to 2) ma(1)
series lgdp = log(gdp)
equation eq2.ls(arma=cls,cov=white) d(lgdp) c ar(1 to 2) ma(1)

前两行代码你在前面已经见过,它对平稳的dlgdp建立了一个ARMA(2,1)模型。后两行代码从建模的角度看,与前两行代码是完全等价的。但是但是,eq1是无法被用来预测lgdp的,它只能被用来预测dlgdp,而eq2既可以被用来预测lgdp,也可以被用来预测dlgdp,点击eq2窗口上的Forecast按钮,你会发现你可以选择预测lgdp,也可以选择预测d(lgdp),即lgdp的差分:

事实上,EViews能够理解eq2是一个ARIMA(2,1,1)模型,但是只会把eq1当作一个ARMA(2,1)模型。

估计完ARIMA模型后,仍是使用forecast命令来实施动态预测。EViews默认预测的是原始的序列,如果要预测差分后的序列,需加上可选参数d,请看下面的例子:

pagestruct(start=1952q1,end=1997q4)  '扩充Range
smpl 1997q1 1997q4                   '设定要预测的样本期
eq2.forecast(f=na,g) lgdpf           '对lgdp实施动态预测
eq2.forecast(d,f=na,g) dlgdpf        '对lgdp的差分实施动态预测

进行静态预测也是类似的操作,在这里我不再赘述。但是请注意,上面已经讲过静态预测主要是用来计算预测精度指标的。无论是对原始序列进行静态预测,还是对差分后的序列进行静态预测,对根均方误差和平均绝对误差这两个指标,算出来的数值都是相同的。但是,对平均绝对百分比误差这个指标,两种情况下算出来的值完全不同,哪一个合理?基于平稳序列的静态预测算出来的值合理。所以,请记住这一条:静态预测和平稳序列更配哦。

命令复习
  • .forecast(d):对差分后的序列实施动态预测
  • .fit(d):对差分后的序列实施静态预测

[注] ( . )命令表示命令可单独使用,也可跟在对象后使用;.命令表示命令只能跟在对象后使用。

练习
  1. 对demo.wf1中的变量m1,建立并估计一个ARIMA(p,1,q)模型。基于估计的模型,分别对m1和m1的差分进行静态预测(自行设定要预测的样本期),验证我说的:两种情况下,根均方误差和平均绝对误差的数值相同,但平均绝对百分比误差的数值不同。

读后有收获欢迎打赏站长吃碗兰州拉面😂


点赞    

扫一扫,点右上角⋯分享

预测
季节性



   
   
    给站长留言    
😀😂😅😆😊😍😝🤭🌹🤝😵😭😱😳😣😴
昵称*
验证*:0×5 =