预测
EViews提供两种预测方式,一种是动态预测(Dynamic forecast),一种是静态预测(Static forecast)。本教程主要介绍计量方法在EViews中的实现,所以,原理我就不展开讲,你若感兴趣可查看EViews的说明手册。简单来讲,动态预测主要用于真实的样本外预测(out-of-sample forecast),而静态预测主要用于伪样本外预测(pseudo out-of-sample forecast),它能帮助我们评估模型的预测精度。
动态预测
假设我们现在的目标是对demo.wf1中的gdp的对数差分进行真实的样本外预测:预测其1997Q1至1997Q4的值,实施预测需要分以下几步走:一、利用命令pagestruct把数据的Range的结束期扩充到1997Q4,否侧,预测值没有地方存;二、利用已有的数据估计一个用于预测的ARMA模型;三、设定要预测的样本期,利用命令forecast进行预测。实施预测的代码如下:
series dlgdp = dlog(gdp)
pagestruct(start=1952q1,end=1997q4) '扩充Range
smpl 1952q1 1996q4 '选定用于估计模型的样本
equation eq1.ls(arma=cls,cov=white) dlgdp c ar(1 to 2) ma(1)
smpl 1997q1 1997q4 '设定要预测的样本期
eq1.forecast(f=na,g) dlgdpf '实施动态预测
forecast后的dlgdpf是用于存放预测值的series对象,可以取其他的名字。可选参数f=na(即fill之意)的含义是除了预测的样本期外(其中放预测值),dlgdpf中的其他时期都设为NA,如果没有这个设定,dlgdp中的其他时期会放入dlgdp的实际值。我个人偏好f=na这个设定。可选参数g(即graph之意)的含义是画出预测值的时间序列图,缺失的话就不画。
静态预测
假设当前有若干个备选的ARMA模型,我们想要挑一个用于预测,此时,我们可以比较它们的预测精度(评价模型预测能力的指标)。常用的衡量预测精度的指标有根均方误差(root mean squared error)、平均绝对误差(mean absolute error)和平均绝对百分比误差(mean absolute percentage error)。这些指标可以通过伪样本外预测计算。以上面的ARMA(2,1)模型为例,要获得三个指标的数值,我们可以这样做:
smpl 1952q1 1979q4 '选定用于估计模型的样本
equation eq1.ls(arma=cls,cov=white) dlgdp c ar(1 to 2) ma(1)
smpl 1980q1 1996q4 '设定要预测的样本期
eq1.fit(e) dlgdpf '实施静态预测
预测的样本期内,fit命令会滚动进行一步向前预测(one-step ahead forecast),由于dlgdp的真实值已知,可以算出所有的一步向前预测误差,进而估计出上述三个(基于一步向前预测的)指标。fit的可选参数e(即evaluation之意)会让EViews报告上述三个指标的估计值,如下图所示:

红框部分即是三个指标的值。fit的可选参数也可加f=na或g,含义与使用forecast命令的情形相同。
动态预测或静态预测也可通过鼠标操作实施,估计完一个模型后,点击equation对象窗口上的forecast按钮会弹出一个对话框,根据提示操作即可。
命令复习
smpl:设定样本pagestruct:改变现有数据的起始期等结构.forecast:实施动态预测.fit:实施静态预测
[注] ( . )命令表示命令可单独使用,也可跟在对象后使用;.命令表示命令只能跟在对象后使用。
练习
- 对demo.wf1中的变量m1,取其对数差分作为一个变量,自选一个ARMA模型实施一遍动态预测和静态预测。
- 版权声明:本作品使用知识共享(Creative Commons)的署名-非商业性使用-禁止演绎 4.0 国际许可协议。非商业转载请注明出处(作者及原文链接),商业转载请联系作者获得授权。

给站长留言