1
第十六章 方程预测
本章描述了对一个单方程进行预测或计算拟合值的过程。
这里描述的技术是利用通过回归方法估计得到的方程来进行
预测。
2
§ 16.1 EViews中的方程预测
为说明一个被估计方程的预测过程, 我们从一个简单的
例子开始 。 假设我们有 1947:01— 1995:01年美国国内生产总值
( GDP), 消费 ( CS) 和投资 ( INV), 这些数据包含在工
作区间为 1946:01— 1995:4的工作文件 ( 16_1) 中 。
我们运用 1947:01— 1995:01这段时期的数据,估计 GDP对
常数,CS和 INV的回归,并用 AR(1)修正残差序列相关,用该
模型预测 GDP。估计得到的方程结果由方程对象 eq_gdp给出,
3
注意该估计样本的观测值做了调整,以解释该模型在推导 AR(1)估计时
使用的滞后内生变量的一阶差分。
4
为了对该模型的结果有清楚的认识,选择 View/Actual,Fitted,Residual…,
然后选择 Actual,Fitted,Residual Graph,
- 8 0
- 4 0
0
40
80
1000
2000
3000
4000
5000
6000
50 55 60 65 70 75 80 85 90 95
R e si d u a l A ct u a l F it t e d
该图的上半部分绘出的实际值和拟合值事实上难以区分。但这里的拟合值不
能保存。只有在使用 EViews的预测程序计算因变量的拟合值时才可以保存。
5
一、如何进行预测
为预测该方程的 GDP,在方程的工具栏中按 Forecast按钮,或选择
Procss/ Forecast … 。这时会出现下表,
6
我们应提供如下信息,
1,序列名
预测后的序列名 将所要预测的因变量名填入编辑框中 。 EViews默认
了一个名字, 但可以将它变为任意别的有效序列名 。 这个名字应不同于因
变量名, 因为预测过程会覆盖已给定的序列值 。
S.E.( Optional) 如果需要, 可以为该序列的预测标准差提供一个名
字 。 如果省略该项, 预测标准误差将不被保存 。
GARCH( Optional) 对用 ARCH估计的模型,还可以保存条件方差的
预测值( GARCH项)。见 16章对 GARCH估计的讨论。
7
2,预测方法
可以在如下方法中进行选择,
动态 ( Dynamic) — 从预测样本的第一期开始计算多步预测 。
静态 ( Static) — 利用滞后因变量的实际值而不是预测值计算一步向前
( one-step-ahead) 预测的结果 。
还可以做如下的选项,
结构 ( Structural) — 预测时 EViews将忽略方程中的任何 ARMA项 。 若
不选此项, 在方程中有 ARMA项时, 动态与静态方法都会对残差进行预测 。 但
如果选择了 Structural,所有预测都会忽略残差项而只对模型的结构部分进行预
测 。
样本区间 ( Sample range) — 必须指定用来做预测的样本 。 如果缺选,
EViews将该样本置为工作文件样本 。 如果指定的样本超出估计方程所使用的
样本区间 ( 估计样本 ), 那么会使 EViews产生样本外预测 。
注意:需要提供样本外预测期间的解释变量值 。 对静态预测, 还必须提供
滞后因变量的数值 。
8
3,输出
可以选择以图表或数值,或者二者同时的形式来观察预测值。只有当预测样
本中包含因变量的观测值时,才可以得到预测估计值。
假设在样本区间 1947:01— 1995:01间对 eq_gdp进行动态预测。预测值放在序
列 GDPFD中,EViews将会显示预测曲线和加减两个标准差的带状域以及预测的
估计值。
9
注意:预测值被保存在 GDPFD序列中 。 因为 GDPFD序列是一个标准的
EViews序列, 所以可以利用序列对象的所有标准工具来检验预测结果 。
我们可以通过绘出曲线图来检查实际值与拟合值。这是从 1947:02到
1995:01整个时期上的动态预测。对每个时期,前一个 GDP(-1)的预测值在形成
后期的 GDP预测值时被使用。注意,实际值与拟合值图形的细微差别,
10
要对一个序列进行一步向前预测(静态预测),单击方程工具栏中的
Forecast键,然后选择 Static进行预测。 EViews将显示预测结果为,
11
我们可以比较 GDP的实际值和动态预测拟合值 GDPFD、静态预测拟合值
GDPFS,可以看出一步向前静态预测比动态预测要更为准确,因为对每个时
期,在形成 GDP的预测值时使用的是 GDP(-1)的实际值。
12
§ 16.2 预测基础
EViews将预测结果在 Forecast name项命名并存储 。 我们把该序列称为预
测序列 。
预测样本中指定了 EViews将计算出的拟合值和预测值的结果期间 。 如果
出现不能预测的情况, 将返还缺失值 NA,在有些情况下, 为了防止含有缺失
值的预测, EViews会自动进行缺失值调整 。 值得注意的是预测样本可能与估
计方程所使用的样本观察值发生重叠, 也可能没有重叠 。
对于没有包含在预测样本中的数值,会有两种选择。作为缺省,EViews
将用其因变量的实际值充填,另一种是不选择 Insert actuals for out-of-sample,
预测样本外的数值将都赋予, NA”。于是,这些规则的结果是被预测序列中
的所有数据在预测过程中将被覆盖,被预测序列的已存值将会丢失。
13
一、计算预测值
对预测样本中的每一观察值, EViews利用估计参数, 等式右边的外生变量,
以及滞后内生变量和残差的实际值或估计值来计算因变量的拟合值 。 构造预测
值的方法取决于估计模型和用户设定的环境 。
为说明预测过程, 我们从一个简单的线性回归模型开始, 等式右边不含滞
后内生变量和 ARMA项 。 假设给出如下方程列表, 并做出估计,
y c x z
选择 Forecast,给定预测期间, 然后单击 OK。 对预测期内的每一观察值,
EViews将用估计出的参数和回归因子 x,z的对应值计算 y的拟合值,
ttt zcxccy )3(?)2(?)1(?? ???
对预测期内的所有观测值,应该确保等号右边外生变量的值有效。如果外
生变量预测样本有数据丢失,对应的预测值将为 NA。
14
二, 缺失值调整
预测值被赋值为 NA有两种情况,
1,只要有一个解释变量有缺失值;
2,只要有一个解释变量的样本超出了工作文件的范围, 这还包括在 AR
模型中的隐含误差项 。
在公式中没有动态成分(如没有滞后内生变量或 ARMA误差项)时,被
预测序列中的缺失值并不影响随后的预测值。如果有了动态成分,即使是被
预测序列中的一个缺失值也将会影响到以后所有的预测值。
EViews将对方程中滞后变量的预测样本起始点进行调整, 直到获得有效
的预测值 。 例如, 假设利用下面的方程进行动态预测,y c y(-1) ar(-1),如果
指定工作文件的起点为预测样本的起点, EViews将向后调整 两 个预测样本观
测值, 并且使用滞后变量前面的预测值 。
15
三, 预测误差与方差
假设真实的模型由下式给定,
这里 是独立同分布, 均值为零的随机扰动项, 是未知参数向量 。 下面
我们放松 是独立的限制 。
生成 y的真实模型我们尚不知道,但我们得到了未知参数 的估计值 b。设
误差项均值为零,可以得到 y的预测方程,
?
?
bxy tt ???
该预测的误差为实际值与预测值之差
bxye ttt ???
ttt xy ?? ???
t?
t?
16
1,残差不确定
误差的第一种来源是由残差或新息 (innovation) 的不确定引起的,
因为方程中的新息 在整个预测区间未知, 被设为它们的期望值 。 在残
差期望值为零时, 单个残差值非零;单个误差的方差越大, 预测中的总
体误差越大 。
测量方差的标准方式是回归标准差 ( 在输出方程中用, S.E.of
regression”表示 ) 。 残差不确定通常是预测误差的主要来源 。
在动态预测中,因为滞后因变量和由滞后随机变量构成的 ARMA项
的存在,使得新息不确定性更为复杂。 EViews也将这些值设为它们的期
望值,这与实际值有随机偏差。含有滞后因变量和 ARMA项的预测在后
面详细讨论。
t?
t?
17
2,系数不确定
预测误差的第二个来源是系数的不确定 。 方程中系数 b的估计值是
由随机情况下的真实系数 β 导出的 。 求出的回归方程中估计系数的标
准差是用来衡量估计系数精确度的一个指标 。
系数不确定的影响程度由外生变量决定。因为在计算预测值时,
要用估计系数乘以外生变量 X,外生变量超出它们的均值越多,预测的
不确定性越大。
18
3,预测可变性
预测可变性由预测标准差来衡量。对一个没有滞后因变量或 ARMA项的
单方程,预测标准差由下式计算,
tt xXXxssef o r e c a s t )(1 ????
式中 s为回归标准差 。 标准差可以说明随机误差项和系数的不确定性 。 用最
小二乘法估计的线性回归模型做出的点预测是最优的, 因为在由线性无偏估计
做出的预测中它的预测方差最小 。 此外, 如果随机误差项服从正态分布, 则预
测误差服从 t-分布 。
如果赋给预测标准差一个名字, EViews将在工作文件中计算并保存一个预
测标准差序列 。 可以利用它形成预测的置信区间 。 如果选择 Do graph项输出,
EViews将显示预测值及加减两个标准差的带状图 。 这两个标准差带在 95%的置
信区间内;在做预测时, 因变量实际值有 95%的可能性落在置信区间内 。
19
四, 预测效果评估
假设我们利用 1947:02~ 1995:01的样本数据估计出的 GDP方程,然后分别
进行 1947:02~ 1995:01和 1994:01~ 1995:01关于 GDP的动态预测。如果选中
Forecast evaluation (预测效果评估 ),EViews将显示预测效果评估的统计结果表,
20
注意, 如果预测样本中没有因变量的实际值数据, EViews不能进行预测
效果评估 。 预测效果评估结果可以以两种方式被保存 。 如果打开 Do graph选
项, 预测效果评估结果将与预测图一起显示在屏幕上 。 如果只希望显示预测
效果评估结果, 关掉预测栏中的 Do graph选项 。
假设预测样本为, T 为实际值样本长度,用
和 分别表示 t 期的实际值与预测值。计算出的预测误差统计结果如下所示,
Root Mean Squared Error
均方根误差
Mean Absolute Percentage Error
平均绝对误差
Mean Absolute Percentage Error
平均相对误差
Theil Inequality Coefficient
泰尔不等系数
??
??
?? hT
Tt
tt yyh
1
2)?(
1
1
??
??
?? hT
Tt
tt yyh
1
?11
??
??
?
?
hT
Tt t
tt
y
yy
h 1
?
1
1
??
?
?
??
?
??
?
??
?
?
?
?
?
hT
Tt
t
hT
Tt
t
hT
Tt
tt
y
h
y
h
yy
h
1
2
1
2
1
2
1
1
?
1
1
)?(
1
1
hTTTj ????,,2,1 ? ty
ty?
21
前两个预测误差统计量由因变量规模决定 。 它们应该被作为相对指标来
比较同样的序列在不同模型中的预测结果, 误差越小, 该模型的预测能力越
强 。
后两个统计值是相对量 。 泰尔 (Theil)不等系数总是处于 0和 1之间, 这里 0
表示与真实值完全拟合 。
预测均方差可以分解为,
yyyyttt ssrssyhyhyy ?2?22 )1(2)())/?((/)?( ??????? ??
式中 分别为 和 的平均值和标准差,r为 和 的
相关系数。该比值被定义为,
yyt ssyhy,,,/? ?? y? y y? y
22
Bias Proportion 偏差比
Variance Proportion 方差比
Covariance Proportion 协方差比
? ?
? ??
?
?
?
hyy
yhy
tt
t
2
2
?
)/?(
? ?
? ?? ?
?
hyy
ss
tt
yy
2
2
?
?
? ?
? ?? ?
?
hyy
ssr
tt
yy
2
?
?
12
偏差比表明预测均值与序列实际值的偏差程度;方差比表明预测方差与序
列实际方差的偏离程度;协方差比衡量非系统误差的大小 。
注意:偏差比, 方差比和协方差比之和为 1。
如果预测结果好,那么偏差比和方差比应该较小,协方差比较大。对预测
估计的其余讨论,见 Pindyck与 Rubinfeld( 1991,第 12章)。
23
§ 16.3 含有滞后因变量的预测
在方程等号的右边出现滞后变量时, 预测变得更为复杂 。 例如, 我们可以
在原来的形式后面引入 y的一阶滞后,
y c x z y(-1)
并且单击 Forecast键, 和前面一样在对话框中写入序列名 。 不过我们还面临
着对方程等号右边 y 的滞后值如何进行估计的问题 。 这里提供了两种方法:动
态预测与静态预测 。
一, 动态预测
如果选择动态预测, EViews将从预测样本的起始日期开始, 对 y进行多步预
测 。 对如上只指定一个滞后变量的情况,
24
预测样本的初始值将使用滞后变量 y的实际值。因此,如果 y的实际样本值
是 T个,我们从 T+1开始预测,即 T+1是第一个预测值,EViews将计算
TTTT yczcxccy )4(?)3(?)2(?)1(?? 111 ???? ???
这里 是预测样本开始前一期的滞后内生变量值, 这就是一步向前预测 。
随后的 h个预测值, k = 1,2,…,h,将使用前期 y的预测值,
.?)4(?)3(?)2(?)1(?? 111 kTkTkTkT yczcxccy ??????? ????
这种预测方法显著地不同于静态的一步向前预测 。 在估计方程中, 如果
有 y的其它滞后变量, 需要对如上运算进行修改,
Ty
25
如果在方程中有 y的三阶滞后,
第一个预测值 (T+1期的观察值 )采用三个滞后变量 的实际值 。
第二个观察值 (T+2期的观察值 )采用 的实际值和一阶滞后 的预测值 。
第三个观测值 ( T+3期的观察值 ) 采用的实际值 和一阶滞后, 二阶滞
后 的预测值 。
此后所有观测值都采用三个滞后变量的预测值 。
在动态预测中, 预测样本初始值的选择非常重要 。 动态预测是真正的多步预
测 ( 从第一个预测样本开始 ), 因为它们重复使用滞后因变量的预测值 。 这些预
测可能被解释为利用预测样本开始时的已知信息计算的随后各期的预测值 。
动态预测要求预测样本中外生变量的各个观测值已知, 并且滞后因变量预测
样本的初始值已知 ( 在我们的例子中是 但更一般的是 y的任意阶滞后 ) 。 如
果需要, 可以对预测样本进行调整 。
解释变量如有缺失值, 通过滞后因变量的动态预测, 将使对应期观测值及以
后观测值为 NA。
TTT yyy,,12 ??
TT yy,1? 1??Ty
Ty 1??Ty
2? ?Ty
,Ty
26
二, 静态预测
静态预测对因变量进行一系列的一步向前预测,
EViews采用滞后内生变量的实际值,通过下式对 k =0,1,2,…,h 计算每
一个预测值,
kTkTkTkT yczcxccy ??????? ???? )4(?)3(?)2(?)1(?? 111
静态预测要求外生变量和任何滞后内生变量在预测样本中的观测值可以获得 。
如上, 如果需要, EViews将对预测样本进行调整以解释滞后变量的前期样本 。 如
果没有某期数据, 对应该期的预测值为 NA。 它并不会对以后预测产生影响 。
三, 静态预测与动态预测的对比
这两种方法在多期预测中生成的第一期结果相同。因此,两个预测序列(一
个静态的和一个动态的)在预测样本中的第一个值相同。只有在存在滞后因变量
或 ARMA项时,两种方法以后各期的值才不同。
27
§ 16.4 含有 ARMA误差项的预测
用含有 ARMA项的方程进行预测会更为复杂 。 如果方程中包含 AR或 MA项,
需要了解 EViews是如何利用滞后残差进行预测的 。
一, 结构预测
EViews以默认的方式利用估计出的 ARMA结构预测残差值, 如下所述,
对有些类型的工作, 可能希望 ARMA误差项总为零 。 如果选择 Structural
(ignore ARMA),选择结构预测, EViews在计算预测值时将假设误差总为零 。
如果被估计方程没有 ARMA项, 该选项对预测没有影响 。
二, 含有 AR误差项的预测
对包含 AR误差项的方程, EViews将把该方程的残差预测加到基于解释变
量的结构模型预测中 。
为计算残差的估计,EViews需要滞后残差值的估计或实际值。对预测样本
的第一个观测值,EViews将利用前面的样本数据计算滞后残差。如果前面没有
用来计算滞后残差的样本数据,EViews将调整预测样本,把实际值赋给预测序
列。
28
如果选中 Dynamic,系统对滞后因变量和滞后残差都进行动态预测。如果
选择 Static,这两者都会被置为实际值。例如,考虑如下的 AR(2)模型,
tttt
ttt
uuu
uxy
???
?
???
???
?? 2211
用 来表示拟合残差,并假设用截止到 t = T 期的数据估计模型。
则在 值已知时,t = T+1,T+2,T+3,… 的动态与静态预测值由下式给出,
tx
bxye ttt ???
STATIC DYNAMIC
1??Ty 111 ?? ??? ??? TTT eebx ?? 111 ?? ??? ??? TTT eebx ??
2? ?Ty TTT eebx 2112 ?? ?? ??? ?? TTT eubx 2112 ??? ?? ??? ??
3? ?Ty 12213 ?? ??? ??? TTT eebx ?? 12213 ???? ??? ??? TTT uubx ??
式中 。对其后观测值,动态预测使用的是多步预测得来的
残差值,而静态预测使用的是一步向前预测的残差值。
bxyu ttt /?? ??
29
三, 包含 MA误差项的预测
一般说来, 不需要了解 MA预测的细节, 因为 EViews自动进行预测 。 下面
介绍 MA预测的基本思想 。
利用 MA计算预测值的第一步是求得前期预测样本中随机误差项的拟合值 。
例如, 如果要预测包含一个简单的 MA(q)的从 T+1期开始的 y值,
1111 ?? ???? ??????? qTqTTTy ?????
则需要知道滞后随机误差项 的值。为计算预测前期的随机误差
项,EViews将自动指定估计样本的前 q个随机误差项的初值 。
给定初始值后,EViews将利用向前递归来拟合 MA(q)模型随后的各随机误差项
的值 。
要注意本过程与前面包含 AR项的过程之间的区别。在前面,预测样本是向
前调整且预测值置为实际值。
11,..,,,??? qTTT ???
q??? ????,..,,,,210
Tq ????,,,,,21 ??
30
动态与静态选择有两个基本含义,
1,如果已计算出随机变量的前 q个样本值, 动态预测将其后
的所有随机误差项都置为零 。 静态预测将通过样本值的末尾扩展
向前递归, 允许结构模型和随机误差项的一步向前预测 。
2.在计算静态预测时,EViews使用全部估计样本来回推随
机误差项。对动态的 MA预测,回推过程利用的估计样本初值是预
测期间的起始值或估计样本末端值。
31
前面举的例子都是对因变量进行拟合的例子。一般检验一个模型
的预测效果,采用把样本期间分为两个期间:估计样本期间和检验样
本期间的方法。利用估计样本期间估计模型,然后利用检验样本期间
检验预测效果。例如在上例中估计期间取为 1947年 1季度 -1993年 1季度;
检验(预测)期间取为 1993年 2季度 -1995年 1季度。可以观察预测效果
如何,反复修正模型,改善预测效果。
实际预测时对未来的信息是未知的,需将外生变量外推出来后,
利用模型进行因(内生)变量预测。
32
§ 16.5 带有公式的预测方程
EViews可以估计并预测等式左边是由某个公式定义的变量的方程。在对左
边是公式的方程进行预测时,由三件事情决定预测过程和可以利用的选项,
1.公式是否为线性或非线性;
2.公式中是否包括滞后变量;
3.公式中是否包括估计系数。
一、点预测
EViews可以提供对方程左边的因变量是某个表达式的情况,预测这个表达
式的功能。而且如果公式中的第一个序列,能从表达式求解出来,那么 EViews
还可以提供预测公式中第一个序列的功能。
33
例如,假设估计如下定义的方程,
log(gdp) c log(cs) log(gdp(-1))
当选择 Forecast按钮,预测对话框显示如下,注意该对话框提供了两种预
测序列以供选择:表达式 log(gdp) 与第一个序列 gdp。
34
但是,如果将方程定义为,
x+1/x=c(1)+c(2)*y
EViews就不能求解出第一个序列 X,而只能预测表达式了。预测对话框如下,
35
该对话框只允许预测作为因变量的整个表达式,因为 EViews不能对 X进行
求解。还需要注意这时只能进行静态预测。
如果表达式的第一个序列能被求解,EViews将计算该变量的预测值。在
表达式中包含滞后变量时,会产生重要的影响。例如,考虑如下两个模型,
series Dy = D (y)
eqution eql.ls D(y) c x
eqution eq2.ls Dy c x
第一个方程中一阶差分 D(y)的动态预测在数值上与第二个方程的 Dy相同。
不过,这两个方程的 D(y)的静态预测值并不相同。这是因为第一个方程中
EViews知道因变量 D(y)是 y的一种变形,所以在计算一阶差分 D(y)的静态预测
值时,它使用的是 y的实际滞后变量值。在第二个方程中,EViews简单地把 Dy
当作普通序列,用 c和 x计算静态预测。
36
二、标准差做图
在预测对话框中, 如果选择 Do graph,EViews将做出预测图及加减两个
标准差的带状图 。 当估计的方程左边是一个表达式时, EViews将根据预测哪
一项来画出序列或表达式的标准误差带状图 。
三, 保存的预测标准差
如果在编辑框中写入一个名字,EViews将保存所要预测的序列或表达式
的预测标准差。
37
§ 16.6 非线性和包含 PDL的预测
前面提到过预测误差有两个来源:系数不确定和随机误差项不确定。对线
性模型,预测标准差对系数和随机误差项的不确定都已做出解释。但是,如果
模型是非线性的(或它包含 PDL),那么标准差就会忽略系数不确定。
例如,考虑如下四种模型,
log(y) c x
y=c(1)+c(2)*x
y=exp(c(1)*x)
y c x pdl(z,4,2)
前两个模型的预测标准差将系数和随机误差项的不确定都考虑在内,因为
这两个模型的系数都是线性的。后两个模型的预测标准差只考虑了残差的不确
定。
还有另一种情况需要提醒。假设预测如下模型,
y-c(1)=c(3)+c(2)*x
虽然该模型的参数是线性的,EViews也会忽略系数不确定。对等式左边有系数
的方程,预测标准差只反映残差不确定。
38
§ 16.7 命 令
为了得到静态(一步向前)预测,在命令窗口中输入待估计的方程名,
后面加一点和命令 fit,接着输入拟合序列名 yhat,然后随意输入一个标准
差的文件名 yhat_se,
eq1.fit yhat yhat_se
为得到动态预测,在待估方程名后加一点和命令 forecast,接着是要预
测的序列名 yhf,最后给预测标准差输一个名 yh _se,
eq1.forecast yhf yh _se
在命令和程序参考 (Command and Programming Reference)中,可以查到
预测可用的所有命令和选项。