主要内容

模拟美国经济

这个例子说明了使用矢量误差修正(VEC)模型作为Smets-Wouters动态随机一般均衡(DSGE)宏观经济模型的线性替代品,并将Smets-Wouters的许多技术应用于描述美国经济。

此外,该示例突出了Econometrics Toolbox™中发现的多时间序列分析的许多更显著的特性,包括估计、蒙特卡罗模拟、滤波、预测和脉冲响应功能。该示例还说明了如何使用约翰森协整检验套件确定协整等级,以及在估计期间施加参数约束。

Smets-Wouters模型([11],[12],[13])是一个以DSGE模型形式存在的非线性方程组。DSGE模型试图用微观经济学原理衍生的宏观经济模型来解释总体经济行为,如增长、商业周期、货币和财政政策效应。

DSGE模型是动态的;他们研究经济如何随时间变化。DSGE模型也是随机的;它们解释了随机冲击的影响,包括技术变化和价格波动。

由于DSGE模型从约束决策的微观经济原理出发,而不是依赖于历史相关性,因此更难以求解和分析。然而,由于它们也是基于经济行动者的偏好,DSGE模型为评估政策变化的影响提供了一个自然的基准。

相比之下,传统的宏观经济预测模型使用历史数据估计不同经济部门变量之间的关系,通常更容易实施、分析和解释。

这个例子实现了一个传统的线性预测模型。这样做的目的不是复制最初的Smets-Wouters DSGE模型的结果,也不是解释它的结果。相反,这个示例说明了如何使用Econometrics工具箱的特性来支持类似于Smets和Wouters的工作流金宝app[13]使用相同的宏观经济时间序列数据。

本例使用协整向量自回归(VAR)模型,也称为向量误差修正(VEC)模型,这两种模型都由计量经济学工具箱中的各种函数支持。这一描述性宏观经济模型为研究各种冲击对美国经济的影响提供了一个很好的起点,特别是在2008年财政危机前后。本例使用Johansen协整检验,并说明计量经济学工金宝app具箱中VAR和VEC多元时间序列模型的估计、模拟、过滤和预测功能。按照Smets和Wouters的风格,本例模拟了相同的7个响应序列:产出(GDP)、价格(GDP平减指数)、工资、工作时间、利率(联邦基金)、消费和投资。

此外,为了突出对季度经济时间序列数据的操纵和管理,本示例使用时间表datetime数据类型。

获得经济数据

该文件Data_USEconVECModel.mat载列两种时间表内的适当经济系列:弗雷德国会预算办公室弗雷德包含模型适合的样本,并来自美联储经济数据库(FRED)[14]1957年第一季度(1957年3月31日)至2016年第四季度(2016年12月31日)。国会预算办公室来自国会预算办公室[1]并包含对FRED系列的一个子集的10年经济预测。国会预算办公室位于预测范围内;此示例使用其中的观测值进行条件预测,并模拟最新FRED数据之外的情况。

使用的响应系列是:

弗雷德系列描述  ------------ ---------------------------------------------------------------------------- 国内生产总值占国内生产总值(GDP)(季度)数十亿美元,占国内生产总值(GDP) GDPDEF内含平减物价指数(季度)指数2009 = 100,COE支付薪酬的员工(数十亿美元,(季度)HOANBS所有人的非农业务部门时间(指数2009 = 100,季度)联邦基金有效联邦基金利率(年化,百分比,月)PCEC个人消费支出(十亿美元,季度)GPDI私人国内投资总额(十亿美元,季度)
负载数据使用ConvecModel

如果您有Datafeed Toolbox™许可证,那么您可以直接从FRED加载、同步和合并最新的经济数据,以更好地理解更全面的工作流。要直接从FRED下载最新的数据,Datafeed Toolbox的用户可以运行以下命令:

弗雷德= Example_USEconData;

FRED在每个周期开始时返回所有数据。除联邦基金外,FRED在每个季度初按季节调整后的季度报告。联邦基金每月在每月初报告。由于模型中包含GDP隐含价格平减指数,因此本例始终使用名义级数。

为了与Smets和Wouters保持一致,本示例使用季末报告约定将FRED数据以季度为周期同步。

例如,FRED报告2012:2012年1月1日的第一季度GDP和2012年3月1日的M3联邦基金。当同步到一个共同的季度末周期时,这两个系列都与2012年3月31日(2012年第一季度的最后一天)相关联。对于任何给定年YYYY, Q1、Q2、Q3和Q4的数据分别对应于31-Mar-YYYY、30- june -YYYY、30-Sep-YYYY和31-Dec-YYYY。

变换原始数据

根据FRED的原始数据,将系列转换为Smets和Wouters[13]其中的利率(联邦基金)不变,其余呈指数增长的数列则表示为相应报告值的对数的100倍。为简单起见,对原始数据和转换后的数据保持相同的系列名称。

数据=弗雷德;%指定日期和原始数据数据。国内生产总值= 100 *日志(FRED.GDP);% %(输出)数据。GDPDEF = 100 *日志(FRED.GDPDEF);GDP隐含价格平减指数数据。COE = 100 *日志(FRED.COE);%员工薪酬(工资)数据。HOANBS = 100 *日志(FRED.HOANBS);%所有人工作时间(小时)数据。PCEC = 100*log(FRED.PCEC);%个人消费支出(消费)数据。GPDI = 100 *日志(FRED.GPDI);国内私人投资总额(投资)

显示模型数据

为了检查模型中的数据,绘制每个系列和叠加阴影带,以确定由国家经济研究局(NBER)确定的经济衰退时期。[9].这个recessionplot函数绘制衰退,本例在适当的地方将衰退包含在图形结果中。recessionplot任意将每月中旬设定为衰退的开始或结束日期。

图次要情节(2 2 1)情节(数据。时间,(数据。经济衰退图标题(“GDP &价格平减指数”) ylabel (“对数(x100)”) h = legend(“国内生产总值”,“GDPDEF”,“位置”,“最好的”);h.Box =“关闭”;次要情节(2,2,2);(数据。时间,[Data.PCEC Data.GPDI]) recessionplot title(“消费与投资”) ylabel (“对数(x100)”) h = legend(“PCEC”,“GPDI”,“位置”,“最好的”);h.Box =“关闭”;次要情节(2,2,3)情节(数据。时间,(数据。(COE Data.HOANBS])“工资和工时”) ylabel (“对数(x100)”) h = legend(“科”,“HOANBS”,“位置”,“最好的”);h.Box =“关闭”;子地块(2,2,4)图(Data.Time,Data.FEDFUNDS)衰退图标题(“联邦基金”) ylabel (“百分比”)

概述评估方法

适当的VEC模型规范可以结合个人经验和对数据的熟悉程度、特别分析、行业最佳实践、法规要求和统计严密性。此外,模型规范可以应用于样本内指标,如AIC/BIC信息标准和样本外预测绩效。尽管许多研究人员经常以迭代的方式包含所有这些指标的元素,但在这里这样做超出了示例的范围。

鉴于斯米茨和伍特[13]强调样本外预测性能,本例不评估样本内拟合优度测量。然而,计量经济学工具箱支持这样的评估(例如,见金宝appaicbic).

为了理解本例中的规范方法,观察VEC模型估计分为两个步骤是很有用的:

  1. 估计协整关系。这通常被称为约翰森一步.对于非平稳时间序列Y_t美元这个协整排(R)为其中独立线性组合的个数Y_t美元是平稳的,并且可以被松散地解释为长期平衡关系的数量Y_t美元.换句话说,虽然分量级数Y_t美元可以单独是非平稳的,它们的各种线性组合是平稳的。平稳独立线性组合的个数为协整秩,对应的平稳线性组合为协整关系。

  2. 使用第一步的协整关系作为预测因子,估计差异中的VAR模型。因为预测因素的加入给VAR模型增加了一个回归成分,这通常被称为VARX一步

指定适当的VEC或协整VAR模型的工作流是:

  • 确定滞后长度(P)无论您是否喜欢不同的VEC(P-1)形式δ{Y} \ _t美元或VAR(P)形式的水平Y_t美元,P表示初始化模型所需的前样例响应的数量。

  • 确定协整等级(R).

  • 确定一个协整模型,最好地捕捉数据的确定性条款。

总的来说,该序列确定协整关系,并对应于两步估计方法的第一步。

对VARX模型的参数施加额外的结构:

  • 估计一个不受限制的VARX模型作为基线模型。

  • 确定并对VARX模型的参数施加适当的约束,包括常数、回归系数和自回归系数。

估计VEC模型

首先指定滞后长度(P(P-1)模型。本示例采用了一种简单的方法,并采用了Johansen的指导[4]第4页,犹斯利乌斯[5], p . 72。假设P= 2时滞足以描述各级数之间的动态相互作用。

低滞后阶数的好处是模型简单。特别地,一个无约束VEC模型的每一个额外延迟都需要估计额外的7*7 = 49个参数,因此低延迟阶可以减轻过度参数化的影响。

估计协整关系

一个特别重要的步骤是同时确定所有级数的协整秩,这样做需要一个协整模型。因为数据清楚地显示了时间趋势,检验数据可以用包含线性时间趋势的两种约翰森参数形式中的任何一种来描述的可能性。

这两种形式中比较普遍的是约翰森式H*模型,其中总常数的一个分量出现在(c_0美元)和外面(c₁美元),而时间趋势(数美元)仅限于协整关系:

$ $ & # xA; \δY} {_t = (B”Y_ {t - 1} + c_0 + d_0t) + c₁+ \ sum_ {i = 1} ^ {p - 1} \ Gamma_i \三角洲{Y} _ {t -我}+ \ varepsilon_t& # xA; = (c_0 + c₁)+ (B”Y_ {t - 1} + d_0t) + \ sum_ {i = 1} ^ {p - 1} \ Gamma_i \三角洲{Y} _ {t -我}+ \ varepsilon_t强生# xA; $ $

由于该常数的一个分量出现在协整关系的内外,因此总常数($c = A c_0 + c_1$)是不受限制的,H*模型变成:

$ $ & # xA; \δY} {_t = c + A (B ' Y_ {t - 1} + d_0t) + \ sum_ {i = 1} ^ {p - 1} \ Gamma_i \三角洲{Y} _ {t -我}+ \ varepsilon_t强生# xA; $ $

重要的是要注意VEC模型是以不同的方式表达的δ{Y} \ _t美元,则无限制常数(美元加元)表示相应水平的线性趋势Y_t美元

第二种模式是JohansenH1模型,其中模型常数也不受限制,但协整关系不包含时间趋势:

$ $ & # xA; \δY} {_t = A (B”Y_ {t - 1} + c_0) + c₁+ \ sum_ {i = 1} ^ {p - 1} \ Gamma_i \三角洲{Y} _ {t -我}+ \ varepsilon_t& # xA; = (c_0 + c₁)+ B”Y_ {t - 1} + \ sum_ {i = 1} ^ {p - 1} \ Gamma_i \三角洲{Y} _ {t -我}+ \ varepsilon_t强生# xA; $ $

H1模型强调了该常数的不受限制性质:

$ $ & # xA; \δY} {_t = c + A B ' Y_ {t - 1} + \ sum_ {i = 1} ^ {p - 1} \ Gamma_i \三角洲{Y} _ {t -我}+ \ varepsilon_t强生# xA; $ $

注意,H1模型是H*模型的限制性参数化,因为H1模型施加了额外的参数R对H*模型参数的限制,否则不受限制。具体来说,H1模型通过约束排除了协整关系中的时间趋势数美元= 0。当协整关系沿共同的线性趋势漂移,且线性趋势序列的趋势斜率相同时,就会出现这种情况。

在这两种模型中,响应都是

$ $ & # xA; \ textbf {Y} _t左= \[开始\{数组}{c} & # xA; GDP_t \ \ & # xA; GDPDEF_t \ \ & # xA; COE_t \ \ & # xA; HOANBS_t \ \ & # xA; FEDFUNDS_t \ \ & # xA; PCEC_t \ \ & # xA; GPDI_t \ \ & # xA;数组{}\ \端)& # xA; $ $

与创新

$ $ & # xA; \ varepsilon_t \ sim N(0 \ω)强生# xA; $ $

以确定协整等级(R),使用约翰森假设检验函数jcitest,它在默认情况下实现Johansen的跟踪测试。

jcitest返回逻辑决策指示符(H)中,H= 1 (true)表示拒绝协整秩为零(R)支持替代方案和H= 0 (false)表示拒绝null失败。后续输出是被检验的每个协整秩的VEC模型参数的p值、检验统计量、临界值和最大似然估计。默认情况下,MATLAB®以表格形式显示测试结果。

P=2;%VEC(P-1)模型的数量滞后Y = Data.Variables;%为方便起见,从时间表中提取所有数据[h, pValue,统计,cValue mleHstar] = jcitest (Y,“滞后”,P-1,“模型”,“H *”);[h, pValue,统计,cValue mleH1] = jcitest (Y,“滞后”,P-1,“模型”,“标题”);
************************结果摘要(测试1)数据:Y有效样本量:238模型:H*滞后:1统计:跟踪显著性水平:0.05 r H统计值Cvalues Pvalues eigVal-------------------------------------------------------0 1 266.1410 150.5530 0.0010 0.3470 1 164.7259 117.7103 0.0010 0.2217 2 105.0660 88.8042 0.0028 0.1665 3 0 61.7326 63.8766 0.0748 0.0748 0.1323 0.9442.9154 0.6336 0.0446 017.0919 25.8723 0.4470 0.0379 6 0 7.9062 12.5174 0.2927 0.0327*******************************结果汇总(测试1)数据:Y有效样本量:238模型:H1滞后:1统计:跟踪显著性水平:0.05 r h统计值Cvalues Pvalues eigVal-----------------------------------------------------------------0 1 261.9245 125.6176 0.0010.3460 1 160.8737 95.7541 0.0010.2212 101.3621 69.8187 0.0010.1661 1 58.1247 47.8564 0.0045 0.1323 4 0 24.3440 29.7976 0.1866 0.0446 013.4866 15.4948 0.0982 0.0340 6 1 5.2631 3.8415 0.0219 0.0219

H*测试结果表示拒绝测试失败R= 3在5%显著性水平上的协整排名,而在10%显著性水平上的协整排名则不R= 4将无法拒绝(参见第5列中的p-value)。相比之下,H1测试强烈拒绝失败R= 4在5%水平上的协整排名。因此,它似乎R= 4协整关系是合理的。

使用R=4作为协整等级,通过使用两种基于似然比的测试方法,确定两个模型中哪一个更好地描述了数据。

第一种方法使用lratiotest函数,其中H*模型为不受限制模型,H1模型为受限制模型R限制。得到的检验统计量是渐近的美元\ x ^ 2美元(r)看见[8]p、 342。

使用lratiotest,从返回的估计H*和H1模型中提取对数似然值jcitest对协整排R= 4,然后进行似然比检验。

r=4;%协整秩uLogL = mleHstar.r4.rLL;r = 4时无限制H*模型的LoglikelihoodrLogL=mleH1.r4.rLL;% r = 4受限H1模型的Loglikelihood[h,pValue,stat,cValue]=lratiotest(uLogL,rLogL,r)
h =逻辑0 pValue = 0.9618 stat = 0.6111 cValue = 9.4877

该测试未能拒绝受限制的H1模型。

第二种方法也进行似然比检验,但使用jcontest以下测试确定是否可以对趋势系数施加零限制(排除限制)数美元H*模型。具体来说,检验排除了协整关系中的时间趋势,对整个经济系统施加了约束。本质上,它决定了受限协整向量是否在平稳性的空间由协整矩阵张成,看[6]175 - 178页。

H*模型将线性时间趋势限制为协整关系,你可以通过在协整矩阵中添加额外的行来估计一个。通过将H*模型重写为:

$ $ & # xA; \δY} {_t =左c + A \[开始\{数组}{c} B \ d0数组{}\ \端]& # xA;左\[开始\{数组}{c} Y_ {t - 1} \ \ t \结束数组{}\]+ \ sum_ {i = 1} ^ {p - 1} \ Gamma_i \三角洲{Y} _ {t -我}+左\ varepsilon_t = c + \[开始\ B{数组}{c} \ \数的数组{}\ \端]“左\[开始\{数组}{c} Y_ {t - 1} \ \ t \结束数组{}\]+ \ sum_ {i = 1} ^ {p - 1}\ Gamma_i \三角洲{Y} _ {t -我}+ \ varepsilon_t强生# xA; $ $

现在,格式化约束矩阵(R),这样

$ $ & # xA; R '左\ [\ B开始{数组}{c} \ \ d0的\{数组}\]= \左右结束[\ 0开始{数组}{c} \ \ 0 \ 0 \ \ 0 \ \ 1 \结束数组{}\]左\[开始\ B{数组}{c} \ \数的数组{}\ \端)= 0 & # xA; $ $

并使用jcontest

R=[零(1,大小(Y,2))1];%约束矩阵[h, pValue,统计,cValue] = jcontest (Y, r,“BCon”R“模型”,“H *”,“滞后”,P-1)
h =逻辑0 pValue = 0.9618 stat = 0.6111 cValue = 9.4877

这个jcontestlratiotest结果是一致的,即决策没有拒绝受限H1模型。

综上所述,假设检验结果表明协整秩为4,模型具有H1 Johansen参数形式。协整关系的估计是完整的。

在差异中估计VARX模型

可以将VEC(1)模型表示为VARX(1)模型,其中协整关系是预测因子,$X_t = B'Y_{t - 1}$,及调整矩阵(一个美元)为对应的回归系数:

$ $ & # xA; \δY} {_t = c + A (B ' Y_ {t - 1}) + \ Gamma_1 \三角洲{Y} _ {t - 1} + & # xA; \ varepsilon_t = c + \ Gamma_1 \三角洲{Y} _ {t - 1} + AX_t + \ varepsilon_t强生# xA; $ $

为了确定对VARX模型参数的约束,重要的是要理解Johansen协整参数(B美元)估计的收敛速度与样本量成正比元新台币.因此,将第一步得到的协整关系作为第二步的预测因子并不影响第二步VARX参数的分布。相反,第二步的VARX参数是渐近正态分布的,并以通常的速率收敛$ \ sqrt {T} $,所以你可以解释他们T以通常的方式进行统计。

当您处理季度经济数据时,您应该关注相对于可供估计的样本大小的模型的过度参数化。这是使用低延迟长度的部分原因。

估计基线模型使用估计函数。返回参数估计的标准误差,以便进行计算T统计,并使用它们进一步限制初步估计基线VEC(1)模型。

[Mdl,se] = vecm(size(Y,2),r,P-1), Y,“模型”,“标题”);

由于VARX参数估计误差是渐近正态分布的,通过排除(设置为零)所有具有a的VARX参数,可以减轻过度参数化的影响,并改善样本外预测性能T绝对值小于2的统计量。

创建一个具有与基线模型相同参数形式的VEC模型Mdl,但对第二步的VARX参数施加排除约束,其中包括常量(美元加元)、短期矩阵(\ Gamma_1美元)及调整矩阵(一个美元).有些引用引用排除约束为子集限制,这是VEC和VAR模型支持的个体约束类型的特殊情况。金宝app

“=结果(Mdl。NumSeries Mdl。排名,Mdl。P - 1);toFit.Constant (abs (Mdl。Constant ./ se.Constant) < 2) = 0;toFit.ShortRun {1} (abs (Mdl。ff: = cross (ff); ff: = cross (ff);toFit.Adjustment (abs (Mdl。/ se.Adjustment) < 2) = 0;

拟合受限H1模型,然后绘制最终模型的协整关系,以供参考。

(toFit, Y,“模型”,“标题”);B =[健康。协整;健康。CointegrationConstant ';Fit.CointegrationTrend ');图绘制(数据。时间,[Y ones(size(Y,1),1) (-(Fit.P - 1):(size(Y,1) - Fit.P))'] * B) recessionplot title(“协整关系”)

该图表明,协整关系基本上是平稳的,尽管波动和突变时期似乎集中在经济衰退周围。

脉冲响应分析

当经济条件发生变化时,特别是在响应政策决定时,您可以使用脉冲响应分析来评估系统的敏感性。

使用以下公式计算名义GDP对每个经济变量的一个标准偏差冲击的脉冲响应函数(IRF)armairf函数。默认情况下,armairf显示了正交化残差协方差矩阵通过其乔里斯基分解正交化的脉冲响应。这个armairf函数还支持金宝app广义Pesaran和Shin的脉冲响应[10],但名义GDP的结果大致相似。

这个armairf函数返回三维数组中的IRF。每一页(第三维度)都记录了在给定的预测范围内,特定变量对系统中所有变量的一个标准偏差冲击的响应。具体来说,元素T,J,K响应是可变的吗K在时间T在预测范围内,对创新的冲击是可变的J在时间为0。列和页对应于数据中的响应变量T= 0, 1,…跳频,在那里跳频为预测的地平线长度。

将拟合的VEC模型转换为其协整VAR表示varm转换函数。然后,计算40个季度(10年)的内部收益率。

地平线= 40;VAR = varm(配合);IRF = armairf (VAR。基于“增大化现实”技术,{},“InnovCov”VAR.Covariance,“NumObs”地平线);h =图;iSeries = 1;列1与GDP系列相关对于i=1:Mdl.NumSeries子地块(Mdl.NumSeries,1,i)绘图(IRF(:,i,iSeries))标题(“GDP的脉冲响应”+ Data.Properties.VariableNames (i))终止屏幕=得到(h,“父”);集(h,“位置”,[h.位置(1)屏幕。监视器位置(4)*0.1 h.位置(3)屏幕。监视器位置(4)*0.8]);

虽然前面的图显示了10年的脉冲响应,但每个响应实际上都接近一个表明单位根的稳定状态渐近水平,并表明这些冲击是持久的,对名义GDP有永久性影响。

计算样本外预测并评估预测准确性

为了检验模型的准确性,迭代计算样本外预测。做一个类似于Smets和Wouters建议的实验[13],第21-22页:

  1. 估计初始20年样本期1957年第1季度至1976年第4季度的VEC模型

  2. 预测未来1、2、3和4个季度的数据。

  3. 重新估计1957:Q1-1977:Q1期间的模型,将下一季度的数据添加到样本中,从而增加可用于估计的样本量。

  4. 重复步骤2和步骤3,积累一个时间序列的预测,直到样本结束。

Y =数据;%直接按照时间表工作T0 = datetime(1976、12、31);%初始化预测原点(1976年12月31日=(1976,12,31)三元组)T = T0;地平线= 4;季度预测范围(4 = 1年)numForecasts =元素个数(Y.Time (timerange (T, Y.Time(结束),“关闭”))) -层;yForecast = nan(numForecasts, horizon, Mdl.NumSeries); / /预测未来对于t = 1: numForecasts%获得当前预测原点的季度末日期。%quarterlyDates=时间范围(Y.时间(1),T,“关闭”);%%估计VEC模型。%拟合=估计(toFit, Y{季度日期,:},“模型”,“标题”);%在每个季度对模型进行预测。%将当前原点(T)的预测存储为三维数组,其中%第1页存储了第1系列(GDP)的所有预测,第2页%存储第二系列(GDPDEF)的所有预测,等等。这%存储约定方便了从时间表访问数据%的预测创建如下。%yForecast(t,:,:) = forecast(Fit, horizon, Y{quarterlyDates,:});%更新预测来源,包括下个季度的数据。%T=日期移位(T,“结束”,“季”,“下一个”);终止

计算预测期内所有预测共有的预测起始日期,以及每个预测适用的具体季度日期。然后,创建一个时间表,其公共时间戳(沿每行)是每个季度预测来源的日期。在每个预测来源,存储未来7个系列1、2、3和4个季度的预测,以及每个预测适用的季度日期。时间表的格式是这样的,以便于获取给定经济序列的预测。

originDates = dateshift (T0,“结束”,“季”(0: (numForecasts-1)));forecastDates = NaT (numForecasts,地平线);对于i=1:地平线预测日期(:,i)=日期偏移(原始日期,“结束”,“季”,我);终止预测=时间表(forecastDates,“RowTimes”,原创日期,“VariableNames”, {《泰晤士报》});对于i=1:size(Y,2)预测(Y.Properties.VariableNames{i})=yForecast(:,:,i);终止

使用刚刚获得的迭代预测,通过在预测地平线(4个季度前)绘制其预测和真实报告值,评估实际GDP(名义GDP净GDP价格平减指数)的预测准确性。并绘制相应的预测误差图。

forecastRealGDP = Forecast.GDP(:(,4) - Forecast.GDPDEF(:(,4));realGDP = Y.GDPDEF(Forecast.Times(:,4)) - Y.GDPDEF(Forecast.Times(:,4));figure subplot(2,1,1) plot(Forecast.Times(:,4), forecastRealGDP,“r”)举行绘图(预测时间(:,4),实际GDP,“b”)标题(“实际GDP与预测:提前四个季度”) ylabel (“美元”) recessionplot = legend(“预测”,“实际”,“位置”,“最好的”);h.Box =“关闭”;subplot(2,1,2) plot(Forecast.Times(:,4), forecastRealGDP - realGDP) title(“实际GDP预测误差:4个季度后”) ylabel (“美元”) recessionplot

这些图表表明,在经济衰退期间和之后不久,GDP预测往往高估了真实的GDP。特别是,观察2008年财政危机之后以及2009年上半年出现的巨大的积极错误。

作为参考,尽管在没有对常数、短期和调整参数施加排除约束的情况下,图中没有显示无约束VARX模型的预测误差,但图中的约束结果表明实际GDP预测的均方根误差(RMSE)约减少了25%。

2008年财政危机分析:实际GDP预测

更详细地调查有关2008年财政危机的预测。具体来说,在经济步入衰退的危机前,以及危机之后经济复苏的时候,调查预测的表现。为了完整性,使用最新的数据检查预测行为。

以斯米特和伍特的风格[13],使用12个季度(3年)的预测范围。为了把不止一个单一系列的预测结合起来,考察实际GDP。

使用2007年底,即抵押贷款危机之前的数据,估计和预测未来12个季度的实际GDP。

horizon=12;T=datetime(2007,12,31);%危机前的预测来源(2007年12月31日=(2007年12月31日)三元组)拟合=估计值(toFit,Y{时间范围(Y.Time(1),T,“关闭”):},“模型”,“标题”);[yForecast, yMSE] = forecast(Fit, horizon, Y{timerange(Y. time (1),T,))“关闭”):});σ= 0(地平线,1);预测标准误差对于i = 1:地平线σ(i) = sqrt (yMSE{我}(1,1)- 2 * yMSE{我}(1、2)+ yMSE{我}(2,2));终止forecastDates = dateshift (T)“结束”,“季”1:地平线);图(forecastDates, (yForecast(:,1) - yForecast(:,2)) + sigma,“r”)举行yForecast(: 1) - yForecast(: 2),“r”) plot(forecastDates, (yForecast(:,1) - yForecast(:,2)) - sigma,“r”) plot(forecastDates, Y.GDPDEF(forecastDates),“b”)标题("实际GDP与12-季预测:起源= "+字符串(T)) ylabel (“美元”) recessionplot = legend(“预测+ 1 \σ”,“预测”,“预测σ1 \”,“实际”,“位置”,“最好的”);h.Box =“关闭”

估计的模型未能预测到剧烈的经济衰退。考虑到此次危机的严重程度,未能捕捉到衰退的程度或许并不令人意外。

利用截至2009年中期的数据,估计和预测未来12个季度的实际GDP,而2009年中期正是抵押贷款危机之后。

T = datetime(2009、6、30);%危机后的预测来源(2009年6月30日=(2009,6,30)三元组)拟合=估计值(toFit,Y{时间范围(Y.Time(1),T,“关闭”):},“模型”,“标题”);[yForecast, yMSE] = forecast(Fit, horizon, Y{timerange(Y. time (1),T,))“关闭”):});σ= 0(地平线,1);预测标准误差对于i = 1:地平线σ(i) = sqrt (yMSE{我}(1,1)- 2 * yMSE{我}(1、2)+ yMSE{我}(2,2));终止forecastDates = dateshift (T)“结束”,“季”1:地平线);图(forecastDates, (yForecast(:,1) - yForecast(:,2)) + sigma,“r”)举行yForecast(: 1) - yForecast(: 2),“r”) plot(forecastDates, (yForecast(:,1) - yForecast(:,2)) - sigma,“r”) plot(forecastDates, Y.GDPDEF(forecastDates),“b”)标题("实际GDP与12-季预测:起源= "+字符串(T)) ylabel (“美元”) h = legend(“预测+ 1 \σ”,“预测”,“预测σ1 \”,“实际”,“位置”,“最好的”);h.Box =“关闭”

一旦将衰退数据纳入估算,实际GDP的预测就与真实值相当吻合。不过,在未来2年的预测范围之外,经济复苏的预测仍然过于乐观。

最后,纳入最新的危机后数据。

T = dateshift (Data.Time(结束),“结束”,“季”,-地平线);拟合=估计值(toFit,Y{时间范围(Y.Time(1),T,“关闭”):},“模型”,“标题”);[yForecast, yMSE] = forecast(Fit, horizon, Y{timerange(Y. time (1),T,))“关闭”):});σ= 0(地平线,1);预测标准误差对于i = 1:地平线σ(i) = sqrt (yMSE{我}(1,1)- 2 * yMSE{我}(1、2)+ yMSE{我}(2,2));终止forecastDates = dateshift (T)“结束”,“季”1:地平线);图(forecastDates, (yForecast(:,1) - yForecast(:,2)) + sigma,“r”)举行yForecast(: 1) - yForecast(: 2),“r”) plot(forecastDates, (yForecast(:,1) - yForecast(:,2)) - sigma,“r”) plot(forecastDates, Y.GDPDEF(forecastDates),“b”)标题("实际GDP与12-季预测:起源= "+字符串(T)) ylabel (“美元”) h = legend(“预测+ 1 \σ”,“预测”,“预测σ1 \”,“实际”,“位置”,“最好的”);h.Box =“关闭”

现在经济复苏已经获得了一些动力并趋于稳定,3年的预测与真实值更加接近。

次样本敏感性:大通胀与大缓和

为了检验分析的稳定性和敏感性,比较从两个不同的子样本获得的估计结果。

遵循Smets和Wouters提出的方法[13],第28-29页,通过表演a假设敏感性分析,简称为反事实实验.检验一个模型对一个周期内数据的拟合对另一个周期内模型的冲击的响应。

具体来说,Smets和Wouters确定了结束于1979年第二季度的时期,即保罗·沃尔克(Paul Volker)被任命为美联储理事会主席的时期大通胀从1984年第一季度开始大缓和.“大通胀”和“大缓和”之间的差距显然是一个过渡时期,包括上世纪80年代初的两次衰退。

估计1957年第一季度到1979年第二季度的VEC模型,然后再从1984年第一季度到最近一个有数据的季度。尽管可以对每个子样本重复对整个样本执行的相同的预估计模型评估,但为了简单起见,保留以前使用的相同的VEC模型和子集约束。

T1 = datetime(1979、6、30);上个季度的大通货膨胀(1979年6月30日= 1979年6月30日)日元= Y (timerange (Y.Time (1), T1,“关闭”),:);大通货膨胀数据[Fit1,~,~,E1] =估计(toFit, Y1。变量,“模型”,“标题”);T2 = datetime(1984、3、31);%大缓和第一季度(1984年3月31日=(1984,3,31)三元组)Y2=Y(时间范围T2,Y.时间(结束),“关闭”),:);%大缓和数据(toFit, Y2。变量,“模型”,“标题”);

将从第一个子样本(大通货膨胀)中得到的推断残差通过从最近的子样本(大适度)中得到的模型进行过滤过滤器函数。

为了更好地将下面获得的过滤响应与上面获得的大缓和拟合结果进行比较,请使用大缓和子样本的第一个P观测值初始化过滤器。换句话说,尽管通过大缓和拟合模型从大通货膨胀过滤器推断出的残差,y您可以使用大调整开始时的数据初始化过滤器。

YY=滤波器(Fit2,E1,“Y0”, Y2 {1: Fit2。P:},“规模”Y2=Y2((Fit2.P+1):(大小(E1,1)+Fit2.P),:);%提取相关数据,便于比较YY = array2timetable (YY,“RowTimes”, Y2。时间,“VariableNames”, Y.Properties.VariableNames);

将大缓和时期报告的实际GDP数据与通过拟合大缓和时期的模型过滤大通胀冲击而得到的数据进行比较。

图绘制(YY。时间,Y2。GDP——日元。GDPDEF,“b”)举行情节(YY。时间,YY.GDP - YY.GDPDEF,“r”)标题(“实际GDP分样本比较”) ylabel (“美元”) recessionplot = legend(“报告的大缓和数据”,“过滤掉巨大的通胀残余”,“位置”,“最好的”);h.Box =“关闭”

根据Smets和Wouters的观察,图中显示过滤后的结果比大缓和时期报告的数据更不稳定[13], 30页。

刚刚执行的过滤通过适合于大缓和的模型过滤大通胀的残差,但在更广泛的历史模拟、过滤和预测框架内仅代表一种选择。

例如,尽管到目前为止的分析主要涉及GDP,但有趣的是,该分析还提供了其他系列的合理准确表示,短期利率(FEDFUNDS)可能除外。

在Smets-Wouters模型中,利率是唯一未调整的序列。此外,Smets和Wouters的数据只包括到2004年底,即抵押贷款危机之前的数据。在2004年底,短期利率已经处于低水平,但在2008年底,随着财政危机的发生和衰退的开始,短期利率实际上接近于零。尽管经济复苏了,但利率多年来一直保持在历史低位。

考虑到VAR和VEC模型是真实的、但未知的矢量过程的线性逼近,其依赖是由多元高斯分布捕获的,因此遇到负利率也就不足为奇了。事实上,尽管联邦基金利率从未为负,但其他短期计息账户(尤其是在欧洲)的收益率一直为负。

条件预测与模拟

条件分析与信息技术密切相关压力测试。具体而言,预先指定变量子集的值,通常受到不利条件或极端值的影响,以评估经济危机期间对剩余变量的影响。

在近零利率存在的情况下,对经济时间序列建模的一种方法是执行有条件的预测和模拟使用适合大中庸的模型来捕捉最新数据。

具体来说,该分析纳入了国会预算办公室(CBO)提供的10年经济预测数据[1],公布FRED系列的下列子集的季度预测:

CBO系列描述------------ ----------------------------------------------------------------- GDP国内生产总值(数十亿美元)GDPDEF国内生产总值隐含价格平减指数(指数2009 = 100)COE雇员薪酬(数十亿美元)TB3M 3个月国库券利率(年化,百分比)

虽然3个月期国库券和联邦基金利率不尽相同,但近年来它们几乎无法区分。因此,你可以使用3个月期国库券利率作为联邦基金利率的代理。

要获得有条件的预测,请创建一个时间表,其中CBO预测捕获未知预测所依据的已知数据的未来演变。格式化时间表时,值表示基于已知(非缺失)信息的未知(缺失)预测。

对于FRED系列,除了短期利率外,所有CBO系列都进行了转换。转换系列并将它们存储在一个新的时间表中(YF),它捕获预先知道的序列子集,并用作计算剩余预测的数据。

YF =国会预算办公室;分配日期和原始数据YF。国内生产总值= 100 *日志(CBO.GDP);% %(输出)YF.GDPDEF=100*log(CBO.GDPDEF);GDP隐含价格平减指数YF.COE=100*log(CBO.COE);%员工薪酬(工资)

检查最近4个季度的CBO预测,并观察到工作时间(HOANBS)、消费(PCEC)和投资(GPDI)缺失(nan),因为CBO没有发布这些系列的预测,而GDP、GDP平减指数(GDPDEF)、薪酬(COE)和联邦基金包含CBO预测。

YF(结束-3:结束,:)
ans = 4 x7时间表时间GDP GDPDEF COE HOANBS FEDFUNDS PCEC GPDI  ___________ ______ ______ ______ ______ ________ ____ ____ 31 - 3月- 2027 1023.5 492.1 963.14 2.8南南南30 - 2027年6月- 2.8 1024.4 492.6 964.07南南南30 - 9 - 2027 2.8 1025.4 493.09 964.99南南南31 - 12月- 2027 1026.3 493.59 965.89 2.8南南南

将CBO预测得到的实际GDP预测与VEC模型的条件预测得到的GDP预测进行比较。为了有条件地预测名义GDP,将CBO对名义GDP的预测设为nan,以表明名义GDP信息的缺乏。显示最近4个季度的预测。

YF.GDP(:) =南;YF(结束-3:结束,:)
ans = 4 x7时间表时间GDP GDPDEF COE HOANBS FEDFUNDS PCEC GPDI  ___________ ___ ______ ______ ______ ________ ____ ____ 3月31日- 2.8 492.1 - 963.14 - 2027南南南南30 - 2.8 492.6 - 964.07 2027年6月,南南南南30 - 9月2.8 493.09 - 964.99 - 2027南南南南2027年- 12月31日南493.59 2.8 965.89南南南

提取最新FRED数据日期以外的季度CBO预测,并根据预测对未知序列进行预测。

这个预测函数将VEC模型转换为其等效状态空间表示形式,并使用卡尔曼滤波器导出缺失预测。缺失值成为作为最小均方误差(MMSE)条件期望计算的过滤状态。

forecastQuarters = timerange (Y.Time(结束),CBO.Time(结束),“openleft”);YF = YF (forecastQuarters:);yForecast = forecast(Fit2, size(YF,1), Y.Variables,“。”, YF.Variables);yForecast = array2timetable (yForecast,“RowTimes”、YF。时间,“VariableNames”, Y.Properties.VariableNames);

检查结果,查看缺失的GDP、HOANBS、PCEC和GPDI系列被它们的条件预测填充,而用于条件设置的GDPDEF、COE和联邦基金系列没有变化。

yForecast(结束-3:结束,:)
ans = 4 x7时间表时间GDP GDPDEF COE HOANBS FEDFUNDS PCEC GPDI  ___________ ______ ______ ______ ______ ________ ______ ______ 31日- 3月- 2027 1024.1 492.1 963.14 488.27 2.8 987.67 837.48 30 - 1025年6月- 2027 492.6 964.07 488.69 2.8 988.6 838.42 9月30 - 31 - 2027 1025.9 493.09 964.99 489.05 2.8 989.5 838.98 - 12月- 2027 1026.7 493.59 965.89 489.4 2.8 990.38839.51

将由条件预测得出的实际GDP与由CBO预测得出的实际GDP进行比较。观察他们是否紧密一致。

图绘制(YF。时间,100*log(CBO.GDP(forecastQuarters)) - YF.GDPDEF,“b”)举行情节(YF。时间,yForecast.GDP - yForecast.GDPDEF,“r”)标题(“实际GDP预测与条件预测”) ylabel (数十亿美元的) h = legend(“国会预算办公室实际GDP预测”,“实际GDP有条件预测”,“位置”,“最好的”);h.Box =“关闭”

条件分析不仅仅局限于预测,还可以扩展到模拟。如果有nan和non- nan的模式YF,您可以通过从条件、多元高斯分布中采样来输入未知值。

模拟1000个条件样本路径模拟函数。

rng默认的YY =模拟(Fit2, size(YF,1)),“Y0”Y.Variables,“。”、YF。变量,“NumPaths”, 1000);

例如,绘制实际GDP的前10条样本路径。

数字对于i = 1:10 plot(YF。时间,YY(:,1,i) - YY(:,2,i)) hold终止标题(“实际GDP样本路径”) ylabel (“美元”)

这幅图表明,实际GDP的分布随着时间的变化而显著变化,因此另一个感兴趣的指标是实际GDP的分布。

绘制未来5年(20个季度)实际GDP的经验概率密度函数(PDF)。

YY = permute(squeeze(YY(20,:,:)), [2 1]);图柱状图(YY(:) - YY(:),2),“归一化”,“pdf”)包含(“实际GDP(10亿美元)”)标题(“未来五年实际GDP密度”)

参考文献

[1]国会预算办公室,预算和经济数据,10年经济预测,https://www.cbo.gov/about/下载188bet金宝搏products/budget-economic-data#4

[2]《论新凯恩斯主义模型的拟合》商业与经济统计杂志.Vol. 25, No. 2, 2007, pp. 123-162。

[3]汉密尔顿,詹姆斯D。时间序列分析.普林斯顿:普林斯顿大学出版社,1994。

[4]约翰森,S。协整向量自回归模型中基于似然的推理.牛津大学出版社,1995。

[5]朱塞利乌斯,K。协整VAR模型.牛津:牛津大学出版社,2006。

[6]金博,M。《新货币主义基本模型的定量分析》货币、信贷和银行业杂志,第二部分:流动性、货币政策和金融中介第27卷,第4期,1995年,第1241-1277页。

[7]吕特克波尔、赫尔穆特和马库斯·克拉齐格,编辑。应用时间序列计量经济学.第一版,剑桥大学出版社,2004。https://doi.org/10.1017/CBO9780511606885

[8]Lutkepohl,赫尔穆特。多时间序列分析新介绍.纽约:Springer-Verlag, 2007。

[9]美国国家经济研究局,商业周期扩张和收缩,https://www.nber.org/research/data/us-business-cycle-expansions-and-contractions

[10]线性多元模型中的广义脉冲响应分析经济上的字母。1998年第58卷,第17-29页。

[11]史密茨,F.和伍尔特,R.“欧元区随机动态一般均衡估计模型”。欧洲中央银行,工作文件系列.171号,2002年。

[12]比较美国和欧元区商业周期中的冲击和摩擦:贝叶斯DSGE方法欧洲中央银行,工作文件系列. 第3912004号。

[13]史密茨,F.和伍尔特,R.《美国商业周期中的冲击和摩擦:贝叶斯DSGE方法》欧洲中央银行,工作文件系列.722号,2007年。

[14]美国联邦储备委员会经济数据(FRED),圣路易斯联邦储备银行,https://fred.stlouisfed.org/