主要内容

模拟美国经济

这个例子说明了使用矢量误差修正(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的工作流万博1manbetx[13]使用相同的宏观经济时间序列数据。

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

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

获得经济数据

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

使用的响应系列包括:

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

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

弗雷德= Example_USEconData;

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

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

例如,FRED报告2012年1月1日的第一季度GDP和2012年3月1日的M3联邦基金。当同步到一个共同的季度末周期时,这两个系列都与2012年3月31日,即2012年第一季度的最后一天相关联。对于任何给定年份YYYY,第一季度、第二季度、第三季度和第四季度的数据分别对应于YYYYYY年3月31日、YYYY年6月30日和2012年6月30日分别为p-YYYY和12月31日YYYY。

转换原始数据

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

数据=弗雷德;%指定日期和原始数据数据。国内生产总值= 100 *日志(FRED.GDP);%国内生产总值(产出)数据。GDPDEF = 100 *日志(FRED.GDPDEF);GDP隐含价格平减指数数据。COE = 100 *日志(FRED.COE);%员工薪酬(工资)Data.hoans=100*log(FRED.hoans);%所有人工作时间(小时)数据。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.Time,[Data.PCEC Data.GPDI])衰退地块标题(消费与投资的) ylabel ('对数(x100)') h = legend(“PCEC”“GPDI”“位置”“最佳”);h.Box =“关闭”;次要情节(2,2,3)情节(数据。时间,(数据。(COE Data.HOANBS])的工资和小时的) ylabel ('对数(x100)') h = legend(“卓越中心”“霍恩布斯”“位置”“最佳”);h.Box =“关闭”;次要情节(2,2,4)情节(数据。时间,数据。FEDFUNDS)recessionplot标题(“联邦基金”) ylabel (“百分比”

概述估算方法

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

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

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

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

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

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

  • 确定滞后长度(P)的模型。无论你是否喜欢VEC(P-1)形式的差异δ{Y} \ _t美元或风险值(P)的水平形式$Y\u 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₁美元),而时间趋势($d_0$)仅限于协整关系:

$ $ & # 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\u t$

第二种型号是约翰森H1模型,其中模型常数也是不受限制的,但协整关系不包含时间趋势:

$ $ & # 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模型通过约束排除了协整关系中的时间趋势$d_0$=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),使用Johansen假设检验函数jcitest,它在默认情况下实现Johansen的跟踪测试。

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

P = 2;% VEC(P-1)模型数量滞后Y = Data.Variables;%从时间表中提取所有数据,以方便使用[h,pValue,stat,cValue,mleHstar]=jcitest(Y,“滞后”p - 1,“模型”“H *”);[h, pValue,统计,cValue mleH1] = jcitest (Y,“滞后”p - 1,“模型”“标题”);
************************结果总结(检验1)数据:Y有效样本量:238模型:H* lag: 1统计量:trace显著性水平:0.05 r h stat cValue pValue eigVal  ---------------------------------------- 1 0 1 266.1410 150.5530 0.0010 0.3470 164.7259 117.7103 0.0010 105.0660 0.2217 - 2 1 3 0 61.7326 63.8766 0.0748 88.8042 0.0028 0.1665 0.1323 17.0919 4 0 27.9494 42.9154 0.6336 0.0446 5 0 6 0 7.9062 12.5174 0.2927 0.0327 25.8723 0.4470 0.0379  ************************ 结果Summary (Test 1) Data: Y Effective sample size: 238 Model: H1 Lags: 1 Statistic: trace Significance level: 0.05 r h stat cValue pValue eigVal ---------------------------------------- 0 1 261.9245 125.6176 0.0010 0.3460 1 1 160.8737 95.7541 0.0010 0.2212 2 1 101.3621 69.8187 0.0010 0.1661 3 1 58.1247 47.8564 0.0045 0.1323 4 0 24.3440 29.7976 0.1866 0.0446 5 0 13.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函数。下面的测试确定您是否可以对趋势系数施加零限制(排除限制)$d_0$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 = [zeros(1,size(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美元)估计的收敛速度与样本量成正比$T$.因此,将第一步得到的协整关系作为第二步的预测因子并不影响第二步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模型支持的个体约束类型的特殊情况。万博1manbetx

“=结果(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函数还支持万博1manbetx广义Pesaran和Shin的冲动反应[10],但名义GDP的结果大致相似。

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

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

地平线= 40;VAR = varm(配合);IRF = armairf (VAR。基于“增大化现实”技术,{},“InnovCov”VAR.Covariance,“NumObs”,地平线);h=数字;iSeries=1;列1与GDP系列相关我= 1:Mdl。NumSeries subplot(Mdl.NumSeries,1,i) plot(IRF(:,i,iSeries)) title(“GDP的脉冲响应”+ Data.Properties.VariableNames (i))结束screen=get(h,“家长”);集(h,“位置”,[h.Position(1) screen.MonitorPositions(4)*0.1 h.Position(3) screen.MonitorPositions(4)*0.8];

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

计算样本外预测和评估预测精度

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

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

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

  3. 对1957年第1季度- 1977年第1季度的模型进行重新估计,将下一个季度的数据添加到样本中,从而增加可供估计的样本量。

  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:numforecast获得当前预测原点的季度末日期。quarterlyDates = timerange(Y.Time(1), T,“关闭”);估算VEC模型。拟合=估计(toFit, Y{季度日期,:},“模型”“标题”);%在预测期内的每个季度预测模型。将当前原点(T)的预测存储为三维数组,其中%第1页存储了第1系列(GDP)的所有预测,第2页%存储第二系列(GDPDEF)的所有预测,以此类推%存储约定方便了从时间表访问数据%下面创建的预测。yForecast(t,:,:) = forecast(Fit, horizon, Y{quarterlyDates,:});更新预测来源,包括下个季度的数据。T = dateshift (T)“结束”“季”“下一个”);结束

计算预测视界中所有预测的共同预测起始日期,以及每个预测适用的具体季度日期。然后,创建一个时间表,它的公共时间戳(沿着每一行)是每个季度预测来源的日期。在每个预测原点,存储第1、2、3和4个季度的7个系列的预测,以及每个预测适用的季度日期。时间表是这样安排的,以便于获得对特定经济系列的预测。

originDates = dateshift (T0,“结束”“季”(0: (numForecasts-1)));forecastDates = NaT (numForecasts,地平线);i = 1:horizon (:,i) = dateshift(originDates, i)“结束”“季”,我);结束预测=时间表(forecastDates,“RowTimes”originDates,“VariableNames”, {“次”});(Y. properties . variablenames {i}) = yForecast(:,:,i);结束

使用刚刚获得的迭代预测,通过绘制预测和预测期(提前四个季度)的真实报告值,评估实际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”)持有情节(Forecast.Times (: 4), realGDP,“b”)标题(实际GDP与预测:未来4个季度) ylabel (“亿美元”)衰退曲线图h=图例(“预测”“实际”“位置”“最佳”);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。

地平线= 12;T = datetime(2007、12、31);%危机前的预测来源(2007年12月31日=(2007年12月31日)三元组)拟合=估计(toFit, Y{时间范围(Y),T,“关闭”):},“模型”“标题”);[yForecast, yMSE] = forecast(Fit, horizon, Y{timerange(Y. time (1),T,))“关闭”):});σ= 0(地平线,1);预测标准误差i=1:horizon sigma(i)=sqrt(yMSE{i}(1,1)-2*yMSE{i}(1,2)+yMSE{i}(2,2));结束预测日期=日期偏移(T,“结束”“季”,1:地平线);图形图(预测日期,(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=图例(“预测+1\sigma”“预测”“预测σ1 \”“实际”“位置”“最佳”);h.Box =“关闭”

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

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

T=日期时间(2009,6,30);%危机后的预测来源(2009年6月30日=(2009,6,30)三元组)拟合=估计(toFit, Y{时间范围(Y),T,“关闭”):},“模型”“标题”);[yForecast, yMSE] = forecast(Fit, horizon, Y{timerange(Y. time (1),T,))“关闭”):});σ= 0(地平线,1);预测标准误差i=1:horizon sigma(i)=sqrt(yMSE{i}(1,1)-2*yMSE{i}(1,2)+yMSE{i}(2,2));结束预测日期=日期偏移(T,“结束”“季”,1:地平线);图形图(预测日期,(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\sigma”“预测”“预测σ1 \”“实际”“位置”“最佳”);h.Box =“关闭”

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

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

T=日期偏移(数据时间(结束),“结束”“季”地平线);拟合=估计(toFit, Y{时间范围(Y),T,“关闭”):},“模型”“标题”);[yForecast, yMSE] = forecast(Fit, horizon, Y{timerange(Y. time (1),T,))“关闭”):});σ= 0(地平线,1);预测标准误差i=1:horizon sigma(i)=sqrt(yMSE{i}(1,1)-2*yMSE{i}(1,2)+yMSE{i}(2,2));结束预测日期=日期偏移(T,“结束”“季”,1:地平线);图形图(预测日期,(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\sigma”“预测”“预测σ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日)Y1=Y(时间范围Y.时间(1),T1,“关闭”):);大通货膨胀数据[Fit1,~,~,E1] =估计(toFit, Y1。变量,“模型”“标题”);T2 = datetime(1984、3、31);%《大节制》第一季(1984年3月31日=(1984年3月31日)三胞胎Y2 = Y (timerange (T2, Y.Time(结束),“关闭”):);%大缓和数据(toFit, Y2。变量,“模型”“标题”);

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

为了更好地比较下面得到的过滤响应和上面得到的大缓和的拟合结果,使用大缓和子样本的第一个P观测值初始化过滤器。换句话说,尽管从大通货膨胀过滤器中推断出的残差是通过从大稳定时期获得的拟合模型得出的,但您使用大稳定时期开始时的数据初始化过滤器。

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

将大缓和期间报告的实际GDP数据与通过适用于大缓和的模型过滤大通胀冲击所获得的数据进行比较。

图表(YY.Time,Y2.GDP-Y2.GDPDEF,“b”)持有情节(YY。时间,YY.GDP - YY.GDPDEF,“r”)标题(“实际GDP分样本比较”) ylabel (“亿美元”)衰退曲线图h=图例(“报告的大缓和数据”“过滤掉巨大的通胀残余”“位置”“最佳”);h.Box =“关闭”

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

过滤只是通过适合大缓和时期的模型过滤从大通货膨胀中获得的残差,但在更广泛的历史模拟、过滤和预测框架中只代表一种选择。

例如,虽然到目前为止的分析主要关注GDP,但有趣的是,该分析还提供了其他系列的合理准确表示,短期利率(联邦基金)可能除外。

在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.GDP=100*log(CBO.GDP);%国内生产总值(产出)YF。GDPDEF = 100 *日志(CBO.GDPDEF);GDP隐含价格平减指数YF。COE = 100 *日志(CBO.COE);%员工薪酬(工资)

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

YF (end-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 (end-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)条件期望计算。

前舱舱=时间范围(Y.时间(结束),CBO.时间(结束),“openleft”); YF=YF(前舱,:);yForecast=预测(Fit2,大小(YF,1),Y.变量,“。”, YF.Variables);yForecast = array2timetable (yForecast,“RowTimes”、YF。时间,“VariableNames”, Y.Properties.VariableNames);

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

yForecast (end-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.Time,yForecast.GDP-yForecast.GDPDEF,“r”)标题(“实际GDP预测与条件预测”) ylabel (数十亿美元的) h = legend(“国会预算办公室实际GDP预测”“实际GDP条件预测”“位置”“最佳”);h.Box =“关闭”

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

使用模拟函数。

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=排列(挤压(YY(20,:,:),[21]);图形直方图(YY(:,1)-YY(:,2),“归一化”“pdf”)包含(“实际GDP(10亿美元)”)标题(“未来五年实际GDP密度”

工具书类

[1]国会预算办公室,预算和经济数据,10年经济预测,https://www.cbo.gov/about/s manbetx 845products/budget-economic-data#4

[2]德尔内格罗,施弗海德,斯梅茨,F.和伍尔特,R.论新凯恩斯模型的适用性商业与经济统计杂志.Vol. 25, No. 2, 2007, pp. 123-162。

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

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

[5]Juselius, K。协整VAR模型.牛津:牛津大学出版社,2006。

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

[7]Lütkepohl, Helmut和Markus Krätzig,编辑。应用时间序列计量经济学.第一版,剑桥大学出版社,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]皮萨兰,H. H.和Y. Shin。"线性多元模型中的广义脉冲响应分析"经济上的字母。1998年第58卷,第17-29页。

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

[12]史密茨,F.和伍尔特,R.“比较美国和欧元区商业周期的冲击和摩擦:贝叶斯DSGE方法”。欧洲中央银行,工作文件系列.391号,2004年。

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

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