理论教育 系统估计方法及其在宏观经济模型估计中的应用

系统估计方法及其在宏观经济模型估计中的应用

时间:2023-06-13 理论教育 版权反馈
【摘要】:系统估计方法,正是针对单方程方法的问题提出来的,它同时估计全部结构方程,利用了模型系统的全部信息。因此系统估计方法的参数估计量具有良好的统计特性。系统估计方法相当复杂,对求解技术要求较高,借助EViews软件,可以比较容易地实现对宏观经济模型的估计。这三个估计方程现在出现在方程窗口中。这意味着如果返回并重新估计一个或多个方程,模型中的所有方程自动更新。

系统估计方法及其在宏观经济模型估计中的应用

系统估计方法,正是针对单方程方法的问题提出来的,它同时估计全部结构方程,利用了模型系统的全部信息。因此系统估计方法的参数估计量具有良好的统计特性。系统估计方法相当复杂,对求解技术要求较高,借助EViews软件,可以比较容易地实现对宏观经济模型的估计。下面以一个简单的IS-LM宏观经济模型为例,说明实现过程。

宏观经济模型结构:包含三个随机方程,分别是与产出和利率有关的消费、投资方程,与产出、利率和货币供应量有关的货币市场方程。第四个等式是国民核算支出恒等式,它确保国民收入各组成部分相加等于产出总额。

消费方程:cn=c(1) +c(2)∗y+c(3)∗cn(-1)

投资方程:i=c(4)+c(5)∗[y(-1)-y(-2)]+c(6)∗y+c (7)∗r(-4)

货币市场方程:r=c(8)+c(9)∗y+c(10)∗[y-y(-1)] +c(11)∗[m-m(-1)]+c(12)∗[r(-1)+r(-2)]

均衡等式:y=cn+i+g

•cn为实际个人消费

•i为实际私人投资

•g为实际政府支出

•y为实际GDP-净出口

•r为3个月联邦基金利率

•m为实际货币供给 (M1)

•c (i) 是未知参数

该模型与典型的教科书模型不同的是其动态结构,许多变量以滞后或差分形式出现。估计程序如下:

第一步 估计随机方程中的未知系数

为了简单起见,用单方程OLS估计系数[8]。在EViews工作文件中创建三个方程对象 (使用Object/New Object……/Equa-tion),然后进行模型设定。为了不至于混淆,根据其内生变量命名三个方程:

这三个方程的满意估计会提供一个与数据接近的合理拟合。检验各方程是否具有异方差性、序列相关性,并进行修正。

第二步 创建模型

首先,选中要添加到模型中的随机方程,本例有三个方程式,点击鼠标右键,选择Open as Model。EViews将创建一个包含三个等式的未命名模型。按下Name 按钮命名模型对象,输入名称Model1,然后单击OK,将模型永久保存在工作文件中。这三个估计方程现在出现在方程窗口中。每个方程占一行,依次是图标显示对象的类型、名字、方程号,以及包含的变量,见图5-1。

图5-1 创建模型对象

双击任何一个等式会出现一个等式属性对话框。若需要,可进行属性修改。增加这三个方程为联系方程,Proc/Links/Up-date All Links。这意味着如果返回并重新估计一个或多个方程,模型中的所有方程自动更新。

其次,添加恒等式。要完成建模,必须加上国民账户支出恒等式。这个等式不涉及任何估计,因此不需要链接到外部对象,而是将等式作为内联文本添加进来。在方程窗口用鼠标右键点击任何地方,并选择 Insert……。出现标题为 “Model Source Edit” 的对话框,其中包含一个标题 Enter one or more lines的文本框,只需在文本框中输入 “Y=CN+I+G” 恒等式,然后单击OK将其添加到模型中,见图5-2。

图5-2 添加内联文本方程

恒等式方程出现在模型窗口中,其外观与其他方程略有不同,这表明新方程是一个内联文本方程而不是一个链接。现在模型设定已经完成了。接下来,可以进行模型的求解。

第三步 求静态解

要求解模型,只需点击模型窗口按钮栏中Solve按钮,出现模型求解对话框,见图5-3。这个对话框有很多选项,现在只考虑基本设置。作为建模的一个练习,检查模型内生变量一阶超前预测的能力。

图5-3 模型求解对话框

在Dynamics动态框中选择Static solution来完成模拟。注意为避免初始化解用到数据中缺损的值,考虑到有滞后内生变量,在 “Solution sample” 对话框,样本时间范围的起始时间要适当滞后原始样本数据的起始时间 (1960 Q1),这里设置为1961 Q1到1999 Q4,允许在样本前有几个时间点以进行变量滞后。现在单击OK启动计算,求解模型。模型窗口将切换到Solution Mes-sages视图,见图5-4。

图5-4 静态解输出视图

EViews求解模型时,内生变量的结果被放置到工作文件的序列中,名字由模型的别名规则确定。由于这些序列是普通的EViews对象,可以使用workfile窗口打开序列并直接进行检验。然而,模型对象提供了一种更方便的方法,通过一个名为Varia-ble View的视图来查看序列结果。

要对于已经解出的模型查看结果,选择View/Variables,或者单击模型窗口按钮栏上的Variables按钮,出现变量观察窗口,见图5-5。

在变量观察窗口中,一个变量占一行。行前的图标指示变量类型 (内生、外生或添加因子)、变量的名称、与该变量关联的等式 (如果有的话),以及对基本序列的标签 (如果可用)的文字描述。变量名可以根据它的状态来着色,指示它是否被跟踪 (蓝色),或者它是否被覆盖 (红色)。在本模型中,CN、I、R和Y都是模型中的内生变量,而G和M是外生变量。例如,要看模型中某一内生变量的实际值和拟合值的图表,选择四个变量 (按住ctrl键并单击变量名称),然后使用Proc/Make Graph……进入对话框,见图5-6。

图5-5 变量观察窗口

图5-6 查看结果对话框

对话框有很多选项,保留大多数设置的默认值,只需确保选中Actuals和Active复选框,将样本区间设置为 “1960 1999”,然后单击OK。

图5-7 一步超前预测图示

图5-7给出一步超前预测,模型运行得相当好,处理投资能力预测在样本的后半部分显示误差较大。

第四步 求动态解

评估模型的另一种方法是检验模型预测未来多期时的表现。这种预测称为动态预测。返回到模型窗口,再次单击 “Solve”按钮。在模型解对话框中的Dynamics部分中选择Dynamic solu-tion,将求解样本设置为 “1985 1999”。点击OK求解模型。检查结果,使用Proc/Make Graph……,图5-8显示的为内生变量实际和基准解。

图5-8 动态解输出图示

第五步 预测

当对模型拟合历史数据的性能感到满意,就可以使用模型来预测内生变量的未来值。进行预测首先是确定预测期间外生变量的值。这要基于我们对将要发生的事情的最佳猜测,通常是构建几种不同的路径,然后比较结果。

1.填写外生变量数据

在模型中,必须为政府支出 (G) 和实际货币供应 (M) 这两个外生变量提供未来的值。这里尝试遵循历史数据的趋势构建几条路径。

图5-9 政府支出G的历史序列

从G的历史序列 (图5-9) 来看,G的增长率自1960年以来一直相当稳定,所以G的对数大致遵循线性趋势。在G偏离趋势的地方,偏差似乎遵循一种周期性模式。拟合这种行为的一个简单模型,是将G的对数回归到一个常数和一个时间趋势,用AR (4) 误差结构模拟周期性偏差。即下列等式,用EQG命名储存在workfile中:

log (g)=6.252335363+0.004716422189∗@trend+[ar (1)=1.169491542,ar(2)=0.1986105964,ar(3)=0.239913126,ar(4)=-0.2453607091](www.daowen.com)

用这个方程生成G的一组未来值,用以执行G从2000 Q1到2005 Q4的动态预测,将结果保存回G序列。

图5-10显示实际货币供应量M的历史路径与G有很大的不同,表现为稳定期后跟着加速增长。现在,假设实际货币供应停留在其最后一次观察到的历史值。

图5-10 实际货币供应量M的历史路径

用 EViews序列命令填写这个路径。以下几行将历史值填满M序列从2000 Q1到最后一个样本观察:

smpl 2000 q1@last

series m=m (-1)

smpl@all

这样就设置好了预测期外生变量的值。

2.生成内生变量预测

返回到模型窗口,点击Solve,选择Dynamic Solution,将预测样本设置为2000 Q1 to 2005 Q4,然后点击OK。出现解信息弹窗,表明模型已经成功求解。

检查图表中的结果,再次使用变量观察 Proc/Make Graph……,在Model variables部分选择Endogenous variables,然后设置样本区间1995 Q1 to 2005 Q4 (这样包括5年的历史数据)。只显示基准结果,取消对Actuals框的检查,然后点击OK以生成图表。在1999 Q4中添加一条线,将历史和实际结果分开后,得到了一个显示结果的图表:

图5-11 内生变量预测值

在结果中可观察到奇怪的行为。在预测期开始的时候,投资、GDP和利率都出现了大幅下降。接下来约有一年的振荡期,在预测期间逐渐消失。这不是一个特别令人信服的预测。在外生变量或内生变量的历史路径中,不可能导致这种急剧下降,这表明问题可能出在方程的残差。投资等式是最有可能的,因为它在历史数据的末尾附近有一个巨大的、持续的正残差 (见图5-12)。在求解模型的时候,这个残差在预测期被设定为零,这可能是预测开始时投资突然下降的原因。

3.使用添加因子模拟等式残差

解决这个问题的一种方法是改变投资等式的设定。最简单的修改是在等式中添加一个自回归成分,以减少持续性误差。一个更好的方法是尝试修改等式中的变量,以使等式为20世纪90年代投资的急剧增加提供一些解释。

图5-12 投资方程残差序列

解决这个问题的另一种方法是不改变等式,但在等式中添加一个因子以便于模拟残差的路径。为了加入添加因子,切换到模型的方程视图,双击投资方程EQI,选择Add factors选项卡。在Factor type下,选择Equation intercept (residual shift)。弹幕出现询问是否要创建添加因子系列,添入I_A(如果在工作文件中还不存在这个系列I_A),单击OK创建这个序列。返回到变量视图时,应该看到一个新的变量I_A已经被添加到模型中的变量列表中。

使用添加因子,可以指定在预测期投资方程残差的路径,在方程对象下通过检查Actual/Fitted/Residual Graph视图,可以看到,在历史数据的末尾,残差值围绕在大约160 的值附近徘徊。假设在整个预测周期内残差都存在,可以用几个简单的EViews命令设置添加因子:

smpl 2000 q1@last

i_a=160

smpl@all

添加因子完成后,可以遵循与前面所遵循的完全相同的程序,对模型重新求解,得到新的结果图形。

包括添加因子的模型的解更合理,见图5-13。以前预测第一期的突然下降已经消除了。振荡仍然还有,但已大大削弱。

第六步 进行随机模拟

上述的求解和预测,是基于假设随机方程的设定是正确的。但在实践中,方程中估计的一些系数,不是一成不变的。怎样在拟合的结果中反映这种系数的变化?可以利用随机模拟将这些特征纳入EViews模型中。到目前为止,预测是针对内生变量在某一观测的点估计。一旦给模型增加了不确定性,模型的预测是每个变量在每一观测点结果的一个分布,需要用适当的统计量描述这些分布。

图5-13 包含添加因子的预测结果

如果是线性模型 (如本例),误差是正态的,那么内生变量将遵循正态分布,每个分布的均值和标准差就足以完全描述分布。在这种情况下,均值实际上就是模型的确定性解。如果模型是非线性的,那么内生变量的分布就不一定是正态的。这时,分布的分位数可能比前一、二阶矩更有用,因为这时的分布可能有与正态情况截然不同的尾部。对于非线性模型,分布的均值不能作为模型的确定性解。

EViews可以很容易地计算出描述不确定环境中内生变量分布的统计量。为了模拟分布,模型对象 (model object) 使用蒙特卡罗方法,用伪随机数替代未知误差多次重复求解模型。该方法仅提供近似结果。然而,随着重复次数的增加,期望结果会接近它们的真实值。

就本例这一简单的宏观经济模型,使用一个随机模拟,通过在预测中添加误差上下界来显示预测结果的不确定性。在模型窗口,单击 “Solve” 按钮。出现模型解对话框,仿真类型选择Stochastic,并为 “2000 2005” 样本期选择Dynamic。在对话框右侧的 Solution scenarios&output 框中,确保 Active 部分的Std.Dev.Checkbox是检查状态。点击OK开始模拟。状态消息栏将显示模拟的进度。仿真完成后选择Proc/Make Graph……显示结果。如前所述,设置 Model variables 为 Endogenous varia-bles,并将样本设置为 “1995 2005”。此外,在Solution Series框中选择Mean±2 standard deviations,检查Actuals 和 Active情景框,并将后者设置为Baseline,点击OK以生成图5-14。

结果输出图中的误差界限表明,大部分的不确定性可能是由于投资方程中的残差较大,在随机模拟中产生较大的投资和利率变异。

第七步 使用情景做假设变换

模拟时需要考虑的另一个问题是,如果外生变量发生了变化会怎样影响模型的解。一种方法是直接编辑外生变量序列使其包含新的值,然后求解模型,重写结果。这种方法的问题在于,管理数据和比较不同的结果比较麻烦。

EViews提供了一种更好的方法,使用情景模拟。可以通过覆盖模型中外生变量的一个子集,赋予它们新的值,同时其余变量使用存储在实际序列中的值。当求解一个情景时,内生变量的值被分配到workfile序列中,用一个情景扩展设定,很容易地将模型的多组解保留在同一个工作文件中。

图5-14 随机模拟结果

创建一个情景,先从模型对象菜单选择View/Scenarios……。在Scenario Specification对话框将出现一个情景列表。使用此对话框选择哪一个情景是当前激活状态,或者创建、重命名、复制和删除情景。模型中始终存在两种专门情景:Actuals 和 Base-line。这两个情景是专门的,因为它们不能包含任何被覆盖变量。这两种情景的不同之处在于,“Actuals” 情景将其解值直接写入与内生变量同名的 workfile 序列中,而 “Baseline” 情景则将其解值写入到workfile序列中,用附加了 “_0” 的扩展名

要给模型添加新情景,只需单击 “Create New Scenario” 的按钮。创建使用默认名称 “Scenario 1” 的新情景。情景一旦创建,就可以通过重写某一外生变量来修改基于baseline设定的情景。要为序列M添加一个覆盖,首先要确定 “情景1” 处于激活状态 (在Scenario Specification对话框中突出显示),见图5-15,然后单击Overrides 选项卡并在对话框中输入 “M”。点击OK以接受更改。

图5-15 选择情景对话框

接着,退出Scenario Specification对话框,点击View/Varia-bles回到模型的变量窗口,单击变量M,用鼠标右键来调用变量的属性Properties对话框,然后在Scenario 框,点击复选框Use override series in scenario。将会出现一个消息,询问是否创建新的序列。点击Yes以创建序列,然后点击OK返回到变量窗口。

在变量窗口中,变量 “M” 现在以红色出现,表明它在激活情景中被覆盖。这意味着,在使用 “情景1” 求解模型时,变量M将被绑定到序列M_1,而不是M序列。(可以使用别名Aliasing选项卡来更改 “_1” 的扩展名。还要注意的是,如何产生覆盖,仍然需要通过复制 M 的值来在工作文件中创建系列M_1。)

在之前对M的预测中,假设在预测期,实际货币供应将保持不变。对于另一种情形,假设实际货币供应在预测期开始时急剧收缩,并在预测期保持这个较低的值。可以使用一些简单的命令来设置新值:

smpl 2000 q1 2005 q4

series m_1=900

smpl@all

同前,点击Solve按钮求解模型。将Simulation type还原为确定性,“Scenario 1” 是激活情景 (active scenario),“Baseline”是比较情景 (alternate scenario),选中 Solve for Alternate along with Active。将求解样本设置为 “2002 2005”。点击 OK 求解。求解完成,使用 Proc/Make Graph……显示结果。首先,设置Model variables选择到显示Endogenous variables。其次,将Solu-tion series列表框设置为Deterministic solutions。最后,检查Ac-tive and Compare求解方案复选框,确保激活情景设置为 “Sce-nario 1”,比较场景设置为 “Baseline”。将样本设置为1995 Q1-2005Q4,然后单击OK,显示出图5-16。

图5-16 货币供应减少的影响效应

模拟结果表明,货币供应量的减少导致了利率的大幅上升,这使得投资减少,收入和消费也出现了小幅下降。总得来说,在这个模型中,货币供给变化对实体经济的预测影响相对较小。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈