主要内容

simsmooth

模拟平滑的贝叶斯向量自回归(VAR)模型

描述

simsmooth适合高级应用,如样本外预测条件的后预测分布贝叶斯VAR (p)模型VARX (p)模型预测、缺失值归责,参数估计的缺失值。同时,simsmooth使您能够为样本外预测调整吉布斯采样器。从贝叶斯VAR估计样本外预测(p)模型,看预测

例子

(CoeffDraws,SigmaDraws)= simsmooth (PriorMdl,Y)返回1000个随机系数向量的吸引λ多项式系数和创新协方差矩阵Σσ来自前结合形成的后验分布贝叶斯VAR (p)模型PriorMdl和响应数据Y

抽样程序包括一个贝叶斯数据增加使用卡尔曼滤波器(参见步骤算法)。在抽样,simsmooth取代non-presample缺失值Y表示,由值,估算值。

例子

(CoeffDraws,SigmaDraws)= simsmooth (PriorMdl,Y,名称,值)使用附加选项指定一个或多个参数名称-值对。例如,您可以设置随机从分布的数量或指定presample响应数据。

例子

(CoeffDraws,SigmaDraws,NaNDraws)= simsmooth (___)还返回估算每个画的响应值NaNDraws使用任何输入参数组合在前面的语法。

例子

(CoeffDraws,SigmaDraws,NaNDraws,YMean,YStd)= simsmooth (___)还返回的意思YMean和标准偏差YStd后预测分布增强的数据。

例子

全部折叠

模拟估计得出参数的后验分布,它删除所有行数据,包含至少一个缺失值()。然而,simsmooth使用贝叶斯数据后评估期间增加转嫁non-presample缺失值。

考虑三维VAR(4)模型对美国通货膨胀(影响力),失业率(UNRATE)和联邦基金(FEDFUNDS)率。

( 影响力 t UNRATE t FEDFUNDS t ] = c + j = 1 4 Φ j ( 影响力 t - - - - - - j UNRATE t - - - - - - j FEDFUNDS t - - - - - - j ] + ( ε 1 , t ε 2 , t ε 3 , t ]

对所有 t , ε t 是一系列独立的3 d正常创新0和协方差的意思吗 Σ 。认为疲软的共轭先验分布的参数 ( ( Φ 1 , , Φ 4 , c ] , Σ )

加载和数据预处理

负载美国宏观经济数据集,计算通货膨胀率和失业率稳定和联邦基金利率。

负载Data_USEconModelseriesnames = [“影响力”“UNRATE”“FEDFUNDS”];数据表。影响力=100*[NaN; price2ret(DataTable.CPIAUCSL)]; DataTable.DUNRATE = [NaN; diff(DataTable.UNRATE)]; DataTable.DFEDFUNDS = [NaN; diff(DataTable.FEDFUNDS)]; seriesnames(2:3) =“D”+ seriesnames (2:3);

有几个系列主要值,因为他们的测量没有其他可用的同时测量。因为领导值可能会干扰presample规范,删除所有行包含至少一个主要缺失值。

rmldDataTable = rmmissing(数据表(:,seriesnames));

创建之前模型

创建一个弱共轭先验模型通过指定大系数先验方差。指定响应系列名称。

numseries =元素个数(seriesnames);numlags = 4;PriorMdl = conjugatebvarm (numseries numlags,“SeriesNames”,seriesnames);numcoeffseqn =大小(PriorMdl.V, 1);PriorMdl。V=1e4*eye(numcoeffseqn);

随机数据中的缺失值的地方

说明模拟的缺失值,随机的地方失踪presample时期后的数据值。

rng (1)%的再现性T =大小(rmldDataTable, 1);idxpre = 1: PriorMdl.P;% Presample时期idx = (PriorMdl。P + 1): T;%的评估期nmissing = 20;%模拟最多nmissing缺失值sidx = [randsample (idx nmissing,真的);randsample (1: numseries nmissing,真的)];lsidx = sub2ind (T, numseries, sidx (1:), sidx (2:));MissData = table2array (rmldDataTable);MissData (lsidx) =南;MissDataTable = rmldDataTable;MissDataTable {:,:} = MissData;

模拟参数后

吸引1000从后验分布通过调用参数设置simsmooth估计参数的后验分布,然后后预测分布形式。

[多项式系数,σ]= simsmooth (PriorMdl MissDataTable.Variables);

多项式系数是一个39 -到- 1000矩阵的随机引起了后的系数向量。σ是一个3 -通过- 3 - 1000组随机吸引创新协方差矩阵。

默认情况下,simsmooth初始化VAR模型通过使用第一个四观测数据。

把行多项式系数系数,通过使用获得先验分布的总结总结。在一个表中,显示第一组随机系数与相应的名称。

摘要=总结(PriorMdl,“关闭”);表(多项式系数(:1),“RowNames”Summary.CoeffMap)
ans =39×1表Var1 __________ AR{1}(1,1) 0.22109基于“增大化现实”技术的{1}(1、2)-0.24034基于“增大化现实”技术的{1}(1、3)0.093315基于“增大化现实”技术的{2}(1,1)0.18329基于“增大化现实”技术的{2}(1、2)-0.23178基于“增大化现实”技术的{2}(1、3)-0.026301 AR {3} (1,1) 0.39991 AR {3} (1、2) 0.41141 AR {3} (1、3) 0.054702 AR {4} (1,1) 0.024944 AR {4} (1、2) -0.37372 AR{4}(1、3) -0.0095642常数0.21499 AR(1){1}(2, 1) -0.073776基于“增大化现实”技术的{1}(2,2)0.36086基于“增大化现实”技术的{1}⋮0.071088 (2、3)

或者,您可以创建一个吸引的经验模型,和使用总结通过指定任何显示选项来显示模型。

显示汇总后将作为一个方程。

EmpMdl = empiricalbvarm (numseries numlags,“SeriesNames”seriesnames,“CoeffDraws”多项式系数,“SigmaDraws”σ);总结(EmpMdl“方程”)
VAR方程|影响力(1)DUNRATE (1) DFEDFUNDS(1)影响力(2)DUNRATE (2) DFEDFUNDS(2)影响力(3)DUNRATE (3) DFEDFUNDS(3)影响力(4)DUNRATE (4) DFEDFUNDS(4)常数- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -影响力| 0.1447 -0.3685 0.1013 0.2974 -0.0959 0.0360 0.4115 0.2244 0.0474 0.0265 -0.2321 0.0030 0.1095 | (0.0744)(0.1314)(0.0370)(0.0833)(0.1509)(0.0398)(0.0833)(0.1440)(0.0403)(0.0879)(0.1301)(0.0370)(0.0744)DUNRATE | -0.0187 0.4445 0.0314 0.0836 0.2372 0.0489 -0.0407 -0.0548 -0.0064 0.0483 -0.1753 0.0027 -0.0597 | (0.0447) (0.0808) (0.0234) (0.0514) (0.0863) (0.0230) (0.0507) (0.0906) (0.0243) (0.0514) (0.0779) (0.0225) (0.0466) DFEDFUNDS | -0.2046 -1.1927 -0.2524 0.2864 -0.2282 -0.2657 0.2709 -0.6231 0.0289 -0.0404 0.1043 -0.1236 -0.2952 |(0.1530)(0.2931)(0.0816)(0.1832)(0.3123)(0.0857)(0.1736)(0.3105)(0.0900)(0.1866)(0.2880)(0.0758)(0.1684)创新协方差矩阵|影响力DUNRATE DFEDFUNDS - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -影响力| 0.1346 | 0.2842 - -0.0098 (0.0286)(0.0122)(0.0464)DUNRATE | -0.1496 | -0.0098 - 0.1062 (0.0122) (0.0106) (0.0296) DFEDFUNDS | 1.3187 | 0.1346 - -0.1496 (0.0464) (0.0296) (0.1422)

考虑的3 d VAR(4)模型模拟参数后验分布存在缺失值

负载美国宏观经济数据集,计算通货膨胀率和失业率稳定和联邦基金利率。

负载Data_USEconModelseriesnames = [“影响力”“UNRATE”“FEDFUNDS”];数据表。影响力=100*[NaN; price2ret(DataTable.CPIAUCSL)]; DataTable.DUNRATE = [NaN; diff(DataTable.UNRATE)]; DataTable.DFEDFUNDS = [NaN; diff(DataTable.FEDFUNDS)]; seriesnames(2:3) =“D”+ seriesnames (2:3);

删除所有行包含主要缺失值。

rmldDataTable = rmmissing(数据表(:,seriesnames));

创建一个弱共轭先验模型。指定响应系列名称。

numseries =元素个数(seriesnames);numlags = 4;PriorMdl = conjugatebvarm (numseries numlags,“SeriesNames”,seriesnames);numcoeffseqn =大小(PriorMdl.V, 1);PriorMdl。V=1e4*eye(numcoeffseqn);

随机的地方失踪presample时期后的数据值。

rng (1)%的再现性T =大小(rmldDataTable, 1);idxpre = 1: PriorMdl.P;% Presample时期idx = (PriorMdl。P + 1): T;%的评估期nmissing = 20;%模拟最多nmissing缺失值sidx = [randsample (idx nmissing,真的);randsample (1: numseries nmissing,真的)];lsidx = sub2ind (T, numseries, sidx (1:), sidx (2:));MissData = table2array (rmldDataTable);MissData (lsidx) =南;MissDataTable = rmldDataTable;MissDataTable {:,:} = MissData;

吸引1000从后验分布通过调用参数设置simsmooth。返回值,仿真平滑背景为失踪的观察。

[~,~,NaNDraws] = simsmooth (PriorMdl MissDataTable.Variables);

NaNDraws19 - - 1000矩阵的随机响应向量来自后预测分布。元素对应于数据中的缺失值列搜索命令。例如,NaNDraws (3,1)是第一个随机画第三个缺失值的估算响应数据。找到相应的值的数据。

[idxi, idxj] =找到(ismissing (MissDataTable), 3);responsename = seriesnames (idxj(结束)
responsename = "影响力"
observationtime = MissDataTable.Time (idxi(结束)
observationtime =datetime第三季度- 65

情节的经验分布的估算值在第三季度- 65年通货膨胀率。

标题:直方图(NaNDraws (3)) (“第三季度- 65年通货膨胀率经验分布”)

图包含一个坐标轴对象。坐标轴对象与标题第三季度- 65年通货膨胀率经验分布包含一个直方图类型的对象。

考虑的3 d VAR(4)模型模拟参数后验分布存在缺失值

美国宏观经济数据集加载。计算通货膨胀率,稳定失业率和联邦基金利率,和删除缺失值(数据只包括主要缺失值)。

负载Data_USEconModelseriesnames = [“影响力”“UNRATE”“FEDFUNDS”];数据表。影响力=100*[NaN; price2ret(DataTable.CPIAUCSL)]; DataTable.DUNRATE = [NaN; diff(DataTable.UNRATE)]; DataTable.DFEDFUNDS = [NaN; diff(DataTable.FEDFUNDS)]; seriesnames(2:3) =“D”+ seriesnames (2:3);rmDataTable = rmmissing(数据表);

创建一个弱共轭先验模型。指定响应系列名称。

numseries =元素个数(seriesnames);numlags = 4;PriorMdl = conjugatebvarm (numseries numlags,“SeriesNames”,seriesnames);numcoeffseqn =大小(PriorMdl.V, 1);PriorMdl。V=1e4*eye(numcoeffseqn);

模拟5000系数和创新协方差矩阵的后验分布。指定一个老化1000和稀释5倍。

rng (1);%的再现性[多项式系数,σ]= simsmooth (PriorMdl rmDataTable {:, seriesnames},“NumDraws”,5000,“燃烧”,1000,“薄”5);

多项式系数是39 -到- 5000系数矩阵,然后呢σ是一个3 -通过- 3 - 5000创新协方差矩阵的数组。这两个多项式系数σ是随机的后验分布。

考虑的3 d VAR(4)模型模拟参数后验分布存在缺失值。在这种情况下,假设semiconjugate之前模型。

美国宏观经济数据集加载。计算通货膨胀率,稳定失业率和联邦基金利率,和删除缺失值(数据只包括主要缺失值)。

负载Data_USEconModelseriesnames = [“影响力”“UNRATE”“FEDFUNDS”];数据表。影响力=100*[NaN; price2ret(DataTable.CPIAUCSL)]; DataTable.DUNRATE = [NaN; diff(DataTable.UNRATE)]; DataTable.DFEDFUNDS = [NaN; diff(DataTable.FEDFUNDS)]; seriesnames(2:3) =“D”+ seriesnames (2:3);rmDataTable = rmmissing(数据表);

创建一个semiconjugate先验模型。指定响应系列名称。

numseries =元素个数(seriesnames);numlags = 4;PriorMdl = bayesvarm (numseries numlags,“ModelType”,“semiconjugate”,“SeriesNames”,seriesnames);

获得值系数,开始考虑从VAR模型系数安装前30的观察。

定义索引,分区数据集分成四组:

  • 长度p= 4初始化期间的动态的组件模型

  • n 0 = 30观测的VAR估计系数初始值

  • 长度p= 4初始化期间动态组件的贝叶斯VAR模型

  • 剩下的 n 1 观察评估后

T =大小(rmDataTable);n0 = 30;idxpre0 = 1: PriorMdl.P;idxest0 = (idxpre0(结束)+ 1):(idxpre0(结束)+ 1 + n0);idxpre1 = (idxest0(结束)+ 1 - PriorMdl.P): idxest0(结束);idxest1 = (idxest0(结束)+ 1):T;n1 =元素个数(idxest1);

获得初始值的拟合系数VAR模型对第一个34的观察。使用前四presample观测。

Mdl0 = varm (PriorMdl.NumSeries PriorMdl.P);EstMdl0 =估计(Mdl0 rmDataTable {idxest0, seriesnames},“Y0”rmDataTable {idxpre0 seriesnames});

估计返回一个包含AR系数估计的模型对象在一个向量矩阵形式和常量。贝叶斯VAR功能需要初始向量系数值。格式最初的系数值。

(EstMdl0 Coeff0 =。一个R{:} EstMdl0.Constant].'; Coeff0 = Coeff0(:);

模拟1000系数和创新协方差矩阵的后验分布。指定的评估后的观察。初始化VAR模型通过指定最后四观察在前面presample估计样本,并指定初始系数向量来初始化后样品。

rng (1);%的再现性[多项式系数,σ]= simsmooth (PriorMdl rmDataTable {idxest1, seriesnames},“Y0”rmDataTable {idxpre1 seriesnames},“Coeff0”,Coeff0);

多项式系数是39 - - 1000系数矩阵和σ是一个3 -通过- 3 - 1000创新协方差矩阵的数组。这两个多项式系数σ是随机的后验分布。

考虑的3 d VAR(4)模型模拟参数后验分布存在缺失值

加载和数据预处理

美国宏观经济数据集加载。计算通货膨胀率,稳定失业率和联邦基金利率,和删除缺失值(数据只包括主要缺失值)。

负载Data_USEconModelseriesnames = [“影响力”“UNRATE”“FEDFUNDS”];数据表。影响力=100*[NaN; price2ret(DataTable.CPIAUCSL)]; DataTable.DUNRATE = [NaN; diff(DataTable.UNRATE)]; DataTable.DFEDFUNDS = [NaN; diff(DataTable.FEDFUNDS)]; seriesnames(2:3) =“D”+ seriesnames (2:3);rmDataTable = rmmissing(数据表);

创建之前模型

创建一个弱共轭先验模型。指定响应系列名称。

numseries =元素个数(seriesnames);numlags = 4;PriorMdl = conjugatebvarm (numseries numlags,“SeriesNames”,seriesnames);numcoeffseqn =大小(PriorMdl.V, 1);PriorMdl。V=1e4*eye(numcoeffseqn);

预测反应使用预测

直接预测两年(8个季度)的观察后预测分布。预测估计参数的后验分布,然后后预测分布形式。

rng (1);%的再现性numperiods = 8;YF =预测(PriorMdl、numperiods rmDataTable {:, seriesnames});

YF是一个8-by-3矩阵的预测反应。

画出预测反应。

跳频= rmDataTable.Time(结束)+ calquarters (1:8);j = 1: PriorMdl。NumSeries次要情节(3 1 j)情节(rmDataTable。T我米e(end- - - - - -20:end),rmDataTable{end - 20:end,seriesnames(j)},“r”,[rmDataTable.Time(结束)跳频]、[rmDataTable{结束,seriesnames (j)};YF (:, j)),“b”);传奇(“观察”,“预测”,“位置”,“西北”)标题(seriesnames (j))结束

图包含3轴对象。坐标轴对象1标题包含2对象的类型。这些对象代表观察,预测。坐标轴对象2标题DUNRATE包含2线类型的对象。这些对象代表观察,预测。坐标轴对象3 2标题DFEDFUNDS包含对象类型的线。这些对象代表观察,预测。

预测反应使用simsmooth

配置数据集获取预测simsmooth通过连接一个numperiods——- - - - - -numseries时间表的缺失值的设置。

金融交易税= array2timetable (NaN (numperiods numseries),“RowTimes”跳频,“VariableNames”,seriesnames);frmDataTable = [rmDataTable (:, seriesnames);金融交易税];尾(frmDataTable)
ans =8×3的时间表____时间影响力DUNRATE DFEDFUNDS _____ _____ _____ Q2-09南南南Q3-09南南南Q4-09南南南Q1-10南南南Q2-10南南南Q3-10南南南Q4-10南南南Q1-11南南南

预测使用的VAR模型simsmooth。就像预测,simsmooth估计后验分布,所以它需要先验模型和数据。指定数据包含落后年代。

[~,~,~,YMean] = simsmooth (PriorMdl frmDataTable.Variables);

YMean几乎等于frmDataTable,这些异常:

  • YMean不包括行对应presample时期frmDataTable (1:4,:)

  • 如果frmDataTable (j,k),YMean (j,k)后预测分布的反应k在时间j

建立一个时间表YMean

YMeanTT = array2timetable (YMean,“RowTimes”frmDataTable.Time ((PriorMdl。P + 1):结束),“VariableNames”,seriesnames);

画出预测反应。

j = 1: PriorMdl。NumSeries次要情节(3 1 j)情节(YMeanTT。T我米e((end- - - - - -20- - - - - - numperiods):(end - numperiods)),YMeanTT{(end - 20 - numperiods):(end - numperiods),j},“r”,YMeanTT。T我米e((end- - - - - -numperiods):end),YMeanTT{(end - numperiods):end,j},“b”);传奇(“观察”,“预测”,“位置”,“西北”)标题(seriesnames (j))结束

图包含3轴对象。坐标轴对象1标题包含2对象的类型。这些对象代表观察,预测。坐标轴对象2标题DUNRATE包含2线类型的对象。这些对象代表观察,预测。坐标轴对象3 2标题DFEDFUNDS包含对象类型的线。这些对象代表观察,预测。

考虑的3 d VAR(4)模型模拟参数后验分布存在缺失值

美国宏观经济数据集加载。计算通货膨胀率,稳定失业率和联邦基金利率,和删除缺失值(数据只包括主要缺失值)。

负载Data_USEconModelseriesnames = [“影响力”“UNRATE”“FEDFUNDS”];数据表。影响力=100*[NaN; price2ret(DataTable.CPIAUCSL)]; DataTable.DUNRATE = [NaN; diff(DataTable.UNRATE)]; DataTable.DFEDFUNDS = [NaN; diff(DataTable.FEDFUNDS)]; seriesnames(2:3) =“D”+ seriesnames (2:3);rmDataTable = rmmissing(数据表);

创建一个弱共轭先验模型。指定响应系列名称。

numseries =元素个数(seriesnames);numlags = 4;PriorMdl = conjugatebvarm (numseries numlags,“SeriesNames”,seriesnames);numcoeffseqn =大小(PriorMdl.V, 1);PriorMdl。V=1e4*eye(numcoeffseqn);

条件预测响应值时已知或假设预测地平线,和未知值预测条件的已知值。假设失业率变化(DUNRATE通过两年的预测地平线)仍然保持在百分之一。

配置数据集获取预测simsmooth通过连接一个numperiods——- - - - - -numseries时间表的缺失值的设置。失业率的变化,将缺失的值替换为一个向量的。

rng (1);%的再现性numperiods = 8;跳频= rmDataTable.Time(结束)+ calquarters (1:8);金融交易税= array2timetable (NaN (numperiods numseries),“RowTimes”跳频,“VariableNames”,seriesnames);frmDataTable = [rmDataTable (:, seriesnames);金融交易税];frmDataTable。DUNRATE((end- - - - - -numperiods+1):end) = ones(numperiods,1); tail(frmDataTable)
ans =8×3的时间表____时间影响力DUNRATE DFEDFUNDS _____ _____ _____ Q2-09南南Q3-09南1南Q4-09南南Q1-10南1南Q2-10南南Q3-10南1南Q4-10南1南Q1-11南南

获得预期通货膨胀率和联邦基金利率变化系列,鉴于失业率的变化是一个用于整个地平线。

[~,~,~,YMean] = simsmooth (PriorMdl frmDataTable.Variables);

YMean几乎等于frmDataTable,这些异常:

  • YMean不包括行对应presample时期frmDataTable (1:4,:)

  • 如果frmDataTable (j,k),YMean (j,k)后预测分布的反应k在时间j

建立一个时间表YMean

YMeanTT = array2timetable (YMean,“RowTimes”frmDataTable.Time ((PriorMdl。P + 1):结束),“VariableNames”,seriesnames);

画出预测反应。

j = 1: PriorMdl。NumSeries次要情节(3 1 j)情节(YMeanTT。T我米e((end- - - - - -20- - - - - - numperiods):(end - numperiods)),YMeanTT{(end - 20 - numperiods):(end - numperiods),j},“r”,YMeanTT。T我米e((end- - - - - -numperiods):end),YMeanTT{(end - numperiods):end,j},“b”);传奇(“观察”,“预测”,“位置”,“西北”)标题(seriesnames (j))结束

图包含3轴对象。坐标轴对象1标题包含2对象的类型。这些对象代表观察,预测。坐标轴对象2标题DUNRATE包含2线类型的对象。这些对象代表观察,预测。坐标轴对象3 2标题DFEDFUNDS包含对象类型的线。这些对象代表观察,预测。

考虑到二维VARX(1)模型对美国实际国内生产总值(RGDP)和投资(全球教育运动)利率对个人消费(PCEC外生)率:

( RGDP t 全球教育运动 t ] = c + Φ ( RGDP t - - - - - - 1 全球教育运动 t - - - - - - 1 ] + PCEC t β + ε t

对所有 t , ε t 是一系列独立的二维正常创新0和协方差的意思吗 Σ 。假设先验分布如下:

  • ( Φ c β ] | Σ Ν 4 × 2 ( Μ , V , Σ ) ,M是一个4×2的矩阵方法和矩阵 V 是一个4×4 among-coefficient尺度矩阵。同样, vec ( ( Φ c β ] ) | Σ Ν 8 ( vec ( Μ ) , Σ V )

  • Σ n v e r 年代 e W 年代 h 一个 r t ( Ω , ν ) , Ω是2×2矩阵规模和在哪里 ν 的自由度。

美国宏观经济数据集加载。计算实际国内生产总值,投资和个人消费系列。删除所有缺失的值产生的系列。

负载Data_USEconModel数据表。RGDP=数据表。GDP./DataTable.GDPDEF; seriesnames = [“PCEC”;“RGDP”;“全球教育运动”];率= varfun (@price2ret DataTable,“数据源”,seriesnames);率= rmmissing(率);rates.Properties。V一个r我一个bleNames = seriesnames;

创建一个二维VARX共轭先验模型(1)模型参数。

numseries = 2;numlags = 1;numpredictors = 1;PriorMdl = conjugatebvarm (numseries numlags,“NumPredictors”numpredictors,“SeriesNames”seriesnames(2:结束));

创建索引,分区数据集到估计和预测样本。指定一个预测地平线的两年。

T =大小(利率,1);numperiods = 8;idx = 1: (T - numperiods);%包括presampleidxf = (T - numperiods + 1): T;idxtot = [idx idxf];

仿真平滑预测冠之缺失值。因此,创建一个数据集,其中包含缺失值的响应预测地平线。

missingrates =利率;missingrates {idxf PriorMdl。SeriesNames} =南(numperiods PriorMdl.NumSeries);

预测反应预测地平线。指定外生presample观察和预测数据。返回后预测分布的标准偏差。

rng (1)%的再现性[~,~,~,YMean YStd] = simsmooth (PriorMdl, missingrates {:, PriorMdl.SeriesNames},“X”seriesnames missingrates {: (1)});

建立一个时间表YMean

YMeanTT = array2timetable (YMean,“RowTimes”rates.Time ((PriorMdl。P + 1):结束),“VariableNames”,PriorMdl.SeriesNames);

画出预测反应。

j = 1: PriorMdl。NumSeries次要情节(PriorMdl.NumSeries 1 j)情节(利率。T我米e((end- - - - - -20):end),rates{(end - 20):end,PriorMdl.SeriesNames(j)},“r”,YMeanTT。T我米e((end- - - - - -numperiods):end),YMeanTT{(end - numperiods):end,PriorMdl.SeriesNames(j)},“b”);传奇(“观察”,“预测”,“位置”,“西北”)标题(PriorMdl.SeriesNames (j))结束

图包含2轴对象。坐标轴对象1标题RGDP包含2线类型的对象。这些对象代表观察,预测。坐标轴对象与标题2 GCE包含2线类型的对象。这些对象代表观察,预测。

输入参数

全部折叠

贝叶斯VAR模型之前,这个表中指定为一个模型对象。

模型对象 描述
conjugatebvarm 依赖,matrix-normal-inverse-Wishart共轭模型返回的bayesvarm,conjugatebvarm,或估计
semiconjugatebvarm 独立,normal-inverse-Wishart semiconjugate之前返回的模型bayesvarmsemiconjugatebvarm
diffusebvarm 扩散先验模型返回的bayesvarmdiffusebvarm
normalbvarm 正常共轭模型与一个固定的创新协方差矩阵,返回的bayesvarm,normalbvarm,或估计

观察到的多元反应级数simsmooth适合的模型,指定为一个numobs——- - - - - -numseries数字矩阵。

numobs是样本容量。numseries响应变量的数量(PriorMdl.NumSeries)。

行对应于观测,最后一行包含最新的观测。列对应单个响应变量。

Y表明失踪的观察。simsmooth取代non-presample缺失值的归责(见NaNDraws)作为抽样过程的一部分。

Y代表presample响应系列的延续Y0

提示

  • 获得numperiods样本外预测,连接numperiods——- - - - - -numseries矩阵的年代的末尾Ysimsmooth回报的预测和标准差在相应的元素YMeanYStd,分别。例如:

    numperiods = 8;Y = [Y;南(numperiods PriorMdl.NumSeries)];

  • 获得预测条件在观察(或假设)值预测地平线,连接numperiods——- - - - - -numseries矩阵的年代和观察到的或假设的值的Y。例如,在二维系统中,获得反应变量1的领先一步预测,考虑到响应变量2是0.5,通过指定

    Y = [Y;(南0.5)];

数据类型:

名称-值参数

指定可选的逗号分隔条名称,值参数。的名字参数名称和吗价值相应的价值。的名字必须出现在引号。您可以指定几个名称和值对参数在任何顺序Name1, Value1,…,的家

例子:Y0, Y0, X, X指定presample响应数据Y0初始化后的VAR模型模拟和预测数据X为外生回归组件。

Presample响应数据初始化的VAR模型模拟,指定为逗号分隔组成的“Y0”和一个numpreobs——- - - - - -numseries数字矩阵。numpreobs是presample观测的数量。

行对应presample观察,最后一行包含最新的观测。Y0必须至少有PriorMdl.P行。如果你提供更多不必要的行,simsmooth使用了最新的PriorMdl.P观察。

列必须对应反应级数Y

默认情况下,simsmooth使用Y (1: PriorMdl.P,:)作为presample观测,然后估计后使用Y (PriorMdl。P + 1):end,:)。这一行动减少了有效的样本大小。输出的行数YMeanYStd大小(Y, 1) - PriorMdl.P。如果Y0包含至少一个,simsmooth一个错误的问题。

数据类型:

外生回归预测数据组件模型中,指定为逗号分隔组成的“X”和一个numobs——- - - - - -PriorMdl.NumPredictors数字矩阵。

行对应于观测,最后一行包含最新的观测。simsmooth不使用回归组件presample时期。X必须至少尽可能多的观察后,观察使用presample时期。

  • 如果您指定Y0,然后X必须至少有numobs行(见Y)。

  • 否则,X必须至少有numobs- - - - - -PriorMdl.P观察为presample删除账户。

在这两种情况下,如果你行供应超过必要的,simsmooth只使用了最新的观测。

列对应个人预测变量。所有预测变量存在于每个响应方程的回归组件。

如果X包含至少一个,simsmooth一个错误的问题。

数据类型:

随机从分布数量、指定为逗号分隔组成的“NumDraws”和一个正整数。

例子:e7 NumDraws, 1

数据类型:

即将删除从样品开始减少瞬态效应,指定为逗号分隔组成的“燃烧”和一个负的标量。有关如何simsmooth减少了完整的样品,看到的算法

提示

帮助你指定适当的老化周期大小:

  1. 确定的程度样本通过指定的瞬态行为“燃烧”,0

  2. 模拟几千观察使用simsmooth

  3. 画跟踪情节。

例子:“燃烧”,0

数据类型:

调整样本量乘数,指定为逗号分隔组成的“薄”和一个正整数。

实际的样本大小燃烧+NumDraws*薄。丢弃老化后,simsmooth丢弃每- - - - - -1吸引,然后保留下画。更多的细节simsmooth减少了完整的样品,看到的算法

提示

减少潜在的大样本序列相关,或降低了存储的内存消耗PriorMdl,指定一个较大的值

例子:“薄”,5

数据类型:

VAR模型的初始值系数对吉布斯采样器,指定为逗号分隔组成的“Coeff0”和一个数字列向量(Mdl.NumSeries *k)———NumDraws元素,k= Mdl.NumSeries * Mdl。P + Mdl。我ncludeIntercept + Mdl.IncludeTrend + Mdl.NumPredictors系数的数量在一个响应方程。对结构的细节Coeff0,看到输出结果CoeffDraws

默认情况下,Coeff0是多元最小二乘估计。

提示

  • 指定Coeff0:

    1. 设置单独的变量的初始值每个系数矩阵和向量。

    2. 横向连接所有系数意味着在这个顺序:

      C o e f f = ( Φ 1 Φ 2 Φ p c δ Β ]

    3. Vectorize系数均值矩阵的转置。

      Coeff0 =多项式系数。”;Coeff0 = Coeff0 (:);

  • 一个良好的实践是运行simsmooth多次与不同的参数值。每次运行验证估计收敛于相同的值。

数据类型:

起始值创新协方差矩阵的吉布斯采样器,指定为逗号分隔组成的“Sigma0”和一个PriorMdl.NumSeries——- - - - - -PriorMdl.NumSeries正定矩阵数值。默认情况下,Sigma0从多元最小二乘剩余均方误差。行和列对应于创新命令响应的方程变量Mdl.SeriesNames

提示

一个良好的实践是运行simsmooth多次与不同的参数值。每次运行验证估计收敛于相同的值。

数据类型:

输出参数

全部折叠

模拟的VAR模型系数,作为(返回PriorMdl.NumSeries *k)———NumDraws数字矩阵,k= PriorMdl.NumSeries * PriorMdl。P + PriorMdl。我ncludeIntercept + PriorMdl.IncludeTrend + PriorMdl.NumPredictors系数的数量在一个响应方程。

每一列是一个连续的画(向量系数)的后验分布。

为画j,CoeffDraws (1:k,j)对应于所有系数反应变量的方程PriorMdl.SeriesNames (1),多项式系数(k+ 1):(2 *k),j)对应于所有系数反应变量的方程PriorMdl.SeriesNames (2),等等。一组指标对应的方程:

  • 元素1通过PriorMdl.NumSeries对应于响应变量的滞后1 AR系数下令PriorMdl.SeriesNames

  • 元素PriorMdl.NumSeries+1通过2 * PriorMdl.NumSeries对应于响应变量的滞后2 AR系数下令PriorMdl.SeriesNames

  • 一般来说,元素(- 1)* PriorMdl。NumSeries + 1通过* PriorMdl.NumSeries对应的滞后基于“增大化现实”技术的命令的响应变量的回归系数PriorMdl.SeriesNames

  • 如果PriorMdl.IncludeConstant真正的、元素PriorMdl.NumSeries * PriorMdl。P + 1是模型常数。

  • 如果Mdl.IncludeTrend真正的、元素PriorMdl.NumSeries * PriorMdl。P + 2系数是线性时间趋势。

  • 如果PriorMdl.NumPredictors> 0,元素PriorMdl.NumSeries * PriorMdl。P + 3通过k组成的向量外生变量的回归系数。

这个图显示的结构CoeffDraws (:,j)为一个二维VAR(3)模型,该模型包含一个常向量和四个外生因素。

( ϕ 1 , 11 ϕ 1 , 12 ϕ 2 , 11 ϕ 2 , 12 ϕ 3 , 11 ϕ 3 , 12 c 1 β 11 β 12 β 13 β 14 y 1 , t ϕ 1 , 21 ϕ 1 , 22 ϕ 2 , 21 ϕ 2 , 22 ϕ 3 , 21 ϕ 3 , 22 c 2 β 21 β 22 β 23 β 24 y 2 , t ] ,

在哪里

  • ϕ,jk是元素(j,k)的滞后基于“增大化现实”技术系数矩阵。

  • cj在响应变量的方程模型常数j

  • Bju是外生变量的回归系数u在响应变量的方程j

模拟创新协方差矩阵,作为一个返回PriorMdl.NumSeries——- - - - - -PriorMdl.NumSeries——- - - - - -NumDraws正定数值矩阵的数组。

每一页是一个连续的画(协方差)的后验分布。行和列对应于创新命令响应的方程变量PriorMdl.SeriesNames

如果PriorMdl是一个normalbvarm对象,所有的协方差SigmaDraws等于PriorMdl.Covariance

归罪为失踪的响应数据,作为一个返回numNaNs——- - - - - -NumDraws数字矩阵,numNaNs =总和(isNaN (Y))的数量在响应数据。

每一列是一个连续的画(向量响应归罪)后预测分布。

每一行对应一个Ysimsmooth决定行通过使用列的顺序搜索。例如,假设Y是下面的矩阵。

Y =[1南;南2;南5;7 8];
在这里,NaNDraws是一个3×-NumDraws矩阵。为画j,NaNDraws (1,j)包含响应变量的估算值PriorMdl.SeriesNames (1)在时间2,NaNDraws (2j)包含响应变量的估算值PriorMdl.SeriesNames (1)在时间3,NaNDraws (3j)包含响应变量的估算值PriorMdl.SeriesNames (2)在时间1。

增强响应数据,作为一个返回numobs——- - - - - -PriorMdl.NumSeries数字矩阵。YMean等于non-presample部分的响应数据吗Y,但simsmooth替换每个与相应的后预测分布(YMean包含零缺失值)。

标准差后预测分布的估算反应,作为一个返回numobs——- - - - - -PriorMdl.NumSeries数字矩阵。的尺寸YStdYMean对应。

缺失值的响应数据Y,对应于估算值YMean,有一个非零的标准差。常数标准差对应响应数据都是0。

更多关于

全部折叠

贝叶斯向量自回归(VAR)模型

一个贝叶斯VAR模型对待所有系数和创新作为随机变量的协方差矩阵维,固定VARX (p)模型。模型的这个表中描述的三种形式。

模型 方程
简化型VAR (p在差分方程符号

y t = Φ 1 y t 1 + + Φ p y t p + c + δ t + Β x t + ε t

多元回归

y t = Z t λ + ε t

矩阵的回归

y t = Λ z t + ε t

对于每一个时间t= 1,…,T:

  • yt维观测响应向量,=numseries

  • Φ1Φ,…p——- - - - - -1通过AR系数矩阵的滞后p,在那里p=numlags

  • c1的向量模型常数IncludeConstant真正的

  • δ如果1向量的线性时间趋势系数IncludeTrend真正的

  • Β是——- - - - - -r的回归系数矩阵r1观察外源性因素的向量xt,在那里r=NumPredictors。所有预测变量出现在每一个方程。

  • z t = ( y t 1 y t 2 y t p 1 t x t ] , 这是一个1 - (国会议员+r+ 2)向量,Zt——- - - - - -(国会议员+r+ 2)块对角矩阵

    ( z t 0 z 0 z 0 z z t 0 z 0 z 0 z 0 z z t ] ,

    在0z是一个1 - (国会议员+r+ 2)矢量为零。

  • Λ = ( Φ 1 Φ 2 Φ p c δ Β ] ,这是一个(国会议员+r+ 2)——-随机矩阵的系数,(国会议员+r+ 2)1的向量λvec(Λ=)。

  • εt是一个1的随机向量,连续不相关,多元正态创新意思和零向量——- - - - - -协方差矩阵Σ。这个假设意味着数据的可能性

    ( Λ , Σ | y , x ) = t = 1 T f ( y t ; Λ , Σ , z t ) ,

    在哪里f维多元正态密度与的意思ztΛ和协方差Σ评估yt

考虑到数据之前,您征收联合先验分布假设(ΛΣ),这是由分布π(ΛΣ)。在贝叶斯分析,参数的分布的信息更新参数获得的数据的可能性。结果是联合后验分布π(ΛΣ|Y,X,Y0),其中:

  • Y是一个T——- - - - - -包含整个响应矩阵系列{yt},t= 1,…,T

  • X是一个T——- - - - - -矩阵包含整个外生系列{xt},t= 1,…,T

  • Y0是一个p——- - - - - -矩阵presample数据用于初始化的VAR模型估计。

后预测分布

一个后预测分布的后贝叶斯VAR (p)模型π(Yf|Y,X)的分布τ未来最后的观察后响应变量估计样本Yf= (yT+ 1,yT+ 2、…yT+τ)以下,边缘化Λ和Σ:

  • Presample和评估样本响应数据Y

  • 系数Λ

  • 创新协方差矩阵Σ

  • 估计和未来的示例外生数据X

象征性地,

π ( Y f | Y , X ) = π ( Y f | Y , X , Λ , Σ ) π ( Λ , Σ | Y , X ) d Λ d Σ

吉布斯采样器与贝叶斯数据增大

吉布斯采样器与贝叶斯数据增大是一个马尔可夫链蒙特卡罗抽样方法,从参数的后验分布的响应数据观测数据。

考虑这些指标集:

  • = {(,j)|= 1,…,+τ,j= 1,…,+τ},宇宙包含所有索引对(,j)non-presample数据和预测地平线。Y()代表整个non-presample响应数据包括任何占位符(失踪的观察值)和未被注意的值预测地平线。

  • U= {(,j)∈|Y(,j)丢失或未被注意的},相对应的一系列指数对丢失或未被注意的响应数据。Y(U)是一组占位符Y(Uc)是观测数据的集合。

simsmooth失踪的后验分布的模拟响应数据,协方差矩阵系数和创新 π ( Y ( U ) , Λ , Σ | Y ( U c ) , X ) 通过遵循这吉布斯采样器。

  1. 创建一个observation-error-free通过应用指定的VAR(状态空间模型p)结构状态方程。应用Λ初始参数值(0)和Σ(0)(Coeff0Sigma0)。由此产生的模型条件后预测分布π(Y(U)|Λ(0)(0),Y(Uc),X)。

  2. 在迭代j:

    1. 模拟响应数据缺失Y(U)(j)π(Y(U)|Λ(j1)(j1),Y(Uc),X)。为了完成该操作,simsmooth使用模拟平滑状态空间模型(请参阅simsmooth的函数舰导弹模型对象)。simsmooth商店Y(U)(j)在输出NaNDraws

    2. 组合增强数据集Y()(j)=Y(U)(j)Y(Uc)。

    3. 画系数Λ(j)和一个创新Σ协方差矩阵(j)从条件后验贝叶斯VAR模型和增强数据π(ΛΣ|Y()(j),X)。simsmooth商店Λ(j)和Σ(j)在输出CoeffDrawsSigmaDraws,分别。

  3. 后预测的平均值和标准偏差分布π(Y(U)|ΛΣ,Y(Uc),X)的平均值和标准偏差的一系列吸引{Y(U)(j)}。simsmooth存储数据的输出YMeanYStd

去除老化后时期(燃烧)和稀释样品(),simsmooth商店其余的吸引和计算后的统计数据。

提示

  • 蒙特卡罗模拟是可能变更。如果simsmooth使用蒙特卡罗模拟,那么当你叫估计和推断可能有所不同simsmooth在看似同等条件下多次。复制估算结果,设置一个随机数种子通过使用rng在调用之前simsmooth

算法

  • 这个图展示了simsmooth减少了样本使用的值NumDraws,,燃烧。矩形表示连续分布的吸引。simsmooth从样本中删除的白色矩形。剩下的NumDraws黑色的矩形组成样本。

    减少了样本

  • simsmooth不返回默认的起始值生成。

引用

[1]Litterman罗伯特•B。“与贝叶斯向量自回归预测:五年的经验。”商业和经济统计》杂志上4,没有。1(1986年1月):25-38。https://doi.org/10.2307/1391384

介绍了R2020a