主要内容

模拟

矢量自回归(VAR)模型的蒙特卡罗模拟

描述

数值数组的条件和无条件模拟

例子

Y=模拟(Mdlnumobs返回数值数组。Y包含一个随机numobs-执行完全指定VAR的无条件模拟的多元响应序列的周期路径(p)模型Mdl

例子

Y=模拟(Mdlnumobs名称=值使用一个或多个名称-值参数指定的其他选项。模拟当所有可选输入数据都是数值数组时,返回数值数组。例如,100年模拟(Mdl NumPaths = 1000, Y0 = PS)返回1000,100个周期的模拟响应路径的数值数组Mdl并指定预采样响应数据的数值数组PS

方法在模拟范围内指定响应数据,以生成条件模拟YF名称-值参数。

例子

YE=模拟(___还返回包含模拟的多元模型创新系列的数值数组E与模拟响应相对应Y,使用前面语法中的任何输入参数组合。

表和时间表的无条件模拟

例子

资源描述=模拟(MdlnumobsPresample =Presample返回表格或时间表资源描述包含随机多元响应和创新变量,是模型中响应序列无条件模拟的结果Mdl模拟使用预样本数据的表格或时间表Presample初始化响应序列。

模拟中的变量Mdl。SeriesNames为了模拟,它选择了所有的变量Presample.选择不同的响应变量资源描述要进行模拟,请使用PresampleResponseVariables名称-值参数。

例子

资源描述=模拟(MdlnumobsPresample =Presample名称=值使用一个或多个名称-值参数指定的其他选项。例如,100年模拟(Mdl Presample = PSTbl PresampleResponseVariables =(“GDP”“CPI”))返回包含100个周期的模拟响应和创新系列的变量时间表Mdl中的数据初始化国内生产总值而且消费者价格指数变量的时间表的预采样数据PSTbl

表格和时间表的条件模拟

例子

资源描述=模拟(Mdlnumobs抽样=抽样ReponseVariables =ResponseVariables返回表格或时间表资源描述包含随机多元响应和创新变量,是模型中响应序列的条件模拟结果Mdl抽样在模拟范围内的响应或预测数据的表或时间表是模拟用于执行条件模拟和ResponseVariables中的响应变量抽样

例子

资源描述=模拟(Mdlnumobs抽样=抽样ReponseVariables =ResponseVariablesPresample =Presample使用表格或时间表中的预样本数据Presample初始化模型。

例子

资源描述=模拟(___名称=值使用由一个或多个名称-值参数指定的其他选项,使用前两种语法中的任何输入参数组合。

例子

全部折叠

用VAR(4)模型拟合消费者价格指数(CPI)和失业率数据。然后,从估计的模型中模拟一个响应向量。

加载Data_USEconModel数据集。

负载Data_USEconModel

把这两个系列分别画在不同的地方。

图绘制(DataTimeTable.Time DataTimeTable.CPIAUCSL);标题(“消费物价指数”) ylabel (“指数”)包含(“日期”

图中包含一个轴对象。标题为Consumer Price Index的axes对象包含一个类型为line的对象。

图绘制(DataTimeTable.Time DataTimeTable.UNRATE);标题(“失业率”) ylabel (“百分比”)包含(“日期”

图中包含一个轴对象。标题为Unemployment Rate的axes对象包含一个类型为line的对象。

通过将CPI转换为一系列增长率来稳定它。通过从失业率序列中删除第一个观测值来同步两个序列。创建一个包含转换变量的新数据集,并且不包含包含至少一个缺失观察值的任何行。

rcpi = price2ret(datatitable . cpiaucsl);unrate = datatitable . unrate(2:结束);dates = datatitable . time(2:结束);数据= array2时间表([rcpi unrate],RowTimes=日期,...VariableNames = [“RCPI”“UNRATE”]);数据= rmmissing(数据);

使用简写语法创建一个默认的VAR(4)模型。

Mdl = varm(2,4);Mdl。SeriesNames = Data.Properties.VariableNames;

使用整个数据集估计模型。

EstMdl =估计(Mdl,Data.Variables);

EstMdl是完全指定的,估计的varm模型对象。

模拟来自估计模型的响应序列路径,其长度等于数据中的路径。

rng (1);%用于再现性nummobs = height(数据);Y =模拟(EstMdl, nummobs);

Y是模拟响应的245 × 2矩阵。第一列和第二列分别是模拟的CPI增长率和失业率。

绘制模拟反应和真实反应。

图绘制(Data.Time Y (: 1));持有情节(Data.Time Data.RCPI)标题(“CPI增长率”);ylabel (“增长率”)包含(“日期”)传说(“模拟”“观察”)举行

图中包含一个轴对象。标题为CPI Growth Rate的axis对象包含2个类型为line的对象。这些对象代表模拟、观察。

图绘制(Data.Time, Y (:, 2));持有情节(Data.Time Data.UNRATE) ylabel (“百分比”)包含(“日期”)标题(“失业率”)传说(“模拟”“观察”)举行

图中包含一个轴对象。标题为Unemployment Rate的坐标轴对象包含2个类型为line的对象。这些对象代表模拟、观察。

说明之间的关系模拟而且过滤器通过估计Johansen丹麦数据集中四个响应序列的四维VAR(2)模型。将拟合的模型和历史数据作为初始值,模拟单路径响应,然后使用相同的预采样响应,通过估计模型筛选随机的高斯扰动集。

加载约翰森的丹麦经济数据。

负载Data_JDanish

变量说明请输入描述

创建默认的4-D VAR(2)模型。

Mdl = varm(4,2);Mdl。SeriesNames = datatitable . properties . variablenames;

使用整个数据集估计VAR(2)模型。

EstMdl =估计(Mdl, datatitable . variables);

的结果时模拟而且过滤器,采取这些行动是很重要的。

  • 设置相同的随机数种子使用rng

  • 属性指定相同的预采样响应数据Y0名称-值参数。

设置默认的随机种子。通过将估计的模型传递给模拟.指定整个数据集作为预示例。

rng (“默认”) YSim =模拟(EstMdl,100,Y0= datatitable . variables);

YSim是模拟响应的100 × 4矩阵。列对应于变量的列数据

设置默认的随机种子。从标准高斯分布模拟4个系列的100个观测值。

rng (“默认”) Z = randn(100,4);

通过估计模型对高斯值进行滤波。指定整个数据集作为预示例。

YFilter = filter(EstMdl,Z,Y0= datatitable . variables);

YFilter是模拟响应的100 × 4矩阵。列对应于数据中变量的列数据.在过滤干扰之前,过滤器尺度Z中模型协方差的下三角Cholesky因子EstMdl。Covariance

比较两者的结果反应过滤器而且模拟

(YSim - YFilter)'*(YSim - YFilter)
ans =4×40 0 0 0 0 0 0 0 0 0 0

结果是相同的。

加载约翰森的丹麦经济数据。删除所有缺失的观察结果。

负载Data_JDanish数据= rmmissing(数据);T = height(数据);

变量说明请输入描述

创建默认的4-D VAR(2)模型。

Mdl = varm(4,2);

使用整个数据集估计VAR(2)模型。

EstMdl =估计(Mdl,数据);

的结果时模拟而且过滤器,采取这些行动是很重要的。

  • 设置相同的随机数种子使用rng

  • 属性指定相同的预采样响应数据Y0名称-值参数。

模拟100条路径T - EstMdl。P,通过将估计模型传递给,得到有效样本量、响应和相应的创新模拟.指定与估计中使用的预样本相同的预样本矩阵(最早的Mdl。P默认情况下是观察)。

rng (“默认”) p = Mdl.P;numobs = T - p;PS =数据(1:p,:);[YSim,ESim] =模拟(EstMdl, nummobs,NumPaths=100,Y0=PS);大小(YSim)
ans =1×353 4 100

YSim而且ESim是分别模拟响应和创新的53 × 4 × 1000数值数组。每一行对应于模拟水平域中的一个周期,每列对应于中的变量EstMdl。SeriesNames,页面是独立的模拟路径。

将每个模拟的响应和创新变量与他们的观察画出来。

图InSample = Data((p+1):end,:);tiledlayout (2, 2)j = 1:numel(estmll . seriesnames) nexttile h1 = plot(挤压(YSim(:,j,:)),Color=[0.8 0.8 0.8]);持有h2 = plot(InSample(:,j),Color=“k”、线宽= 2);持有标题(系列(j))图例([h1(1) h2],[“模拟”“观察”])结束

图中包含4个轴对象。轴对象1的标题(M2) Log Real Money包含101个类型行对象。这些对象代表模拟的、观察到的。标题为(Y) Log Real Income的坐标轴对象2包含101个类型为行的对象。这些对象代表模拟的、观察到的。带有标题(IB)的axis对象3包含101个类型为line的对象。这些对象代表模拟的、观察到的。带有标题(ID)的坐标轴对象4 Bank Deposit Rate包含101个类型行对象。这些对象代表模拟的、观察到的。

E = infer(EstMdl,InSample,Y0=PS);图tiledlayout (2, 2)j = 1:numel(estmll . seriesnames) nexttile h1 = plot(挤压(ESim(:,j,:)),Color=[0.8 0.8 0.8]);持有h2 = plot(E(:,j),Color=“k”、线宽= 2);持有标题(创新:“+ estmll . seriesnames {j}) legend([h1(1) h2],[“模拟”“观察”])结束

图中包含4个轴对象。标题为Innovations的坐标轴对象1:Y1包含101个类型为line的对象。这些对象代表模拟的、观察到的。标题为Innovations的坐标轴对象2:Y2包含101个line类型的对象。这些对象代表模拟的、观察到的。标题为Innovations的坐标轴对象3:Y3包含101个类型为line的对象。这些对象代表模拟的、观察到的。标题为Innovations的轴对象4:Y4包含101个类型为line的对象。这些对象代表模拟的、观察到的。

用VAR(4)模型拟合消费者价格指数(CPI)和失业率数据。然后,对估计的模型进行无条件模拟,并在时间表中返回模拟响应和相应的创新。本例是基于从无条件模拟中返回矩阵中的响应级数

加载和预处理数据

加载Data_USEconModel数据集。计算CPI增长率。由于增长率计算消耗最早的观测值,因此在时间表中包括增长率变量

负载Data_USEconModelDataTimeTable。RCPI = [NaN;price2ret (DataTimeTable.CPIAUCSL)];T = height(DataTimeTable)
T = 249

准备评估时间表

当你计划直接提供时间表进行估算时,你必须确保它具备以下所有特征:

  • 所有选择的响应变量都是数字,不包含任何缺失值。

  • 中的时间戳时间变量是规则的,它们是上升或下降的。

从表中删除所有缺失的值,相对于CPI率(RCPI)和失业率(UNRATE)系列。

Varnames = [“RCPI”“UNRATE”];DTT = rmmissing(DataTimeTable,DataVariables=varnames);T =高度(DTT)
T = 245

rmmissing对象中删除四个初始缺失的观察值DataTimeTable创建子表德勤.的变量RCPI而且UNRATE德勤不要有任何缺失的观察结果。

确定采样时间戳是否具有规则频率并进行排序。

areTimestampsRegular = isregular(DTT,“季度”
areTimestampsRegular =逻辑0
areTimestampsSorted = issorted(DTT.Time)
areTimestampsSorted =逻辑1

areTimestampsRegular = 0的时间戳德勤是不规则的。areTimestampsSorted = 1表示时间戳已排序。本例中的宏观经济序列的时间戳为月底。这种性质导致了一个不规则的测量序列。

通过将所有日期转移到季度的第一天来纠正时间不规律。

dt = dt .时间;Dt =移码(Dt,“开始”“季”);德勤。时间=dt; areTimestampsRegular = isregular(DTT,“季度”
areTimestampsRegular =逻辑1

德勤对于时间是有规律的。

为评估创建模型模板

使用简写语法创建一个默认的VAR(4)模型。指定响应变量名。

Mdl = varm(2,4);Mdl。SeriesNames = varnames;

模型与数据拟合

估计模型。通过整个时间表德勤.默认情况下,估计中的响应变量Mdl。SeriesNames适合模型。或者,您可以使用ResponseVariables名称-值参数。

EstMdl =估计(Mdl,DTT);p = EstMdl。P
P = 4

对估计模型进行无条件仿真

从估计的模型模拟响应和创新路径,并在时间表中作为变量返回模拟的系列。模拟需要输出时间表的信息,例如变量名、模拟范围的采样时间和采样频率。因此,提供一个最早的样品p= 4个数据观测值德勤,从中模拟推断所需的时间表信息。指定的模拟水平nummobs - p

rng (1)%用于再现性PSTbl = DTT(1:p,:);numobs = T - p;Tbl =模拟(EstMdl,T,Presample=PSTbl);大小(台)
ans =1×2245年4
PSTbl
PSTbl =4×15时间表时间COE CPIAUCSL FEDFUNDS GCE GDP GDPDEF GPDI GS10 HOANBS M1SL M2SL PCEC TB3MS UNRATE RCPI  _____ _____ ________ ________ ____ _____ ______ ____ ____ ______ ____ ____ _____ _____ ______ _________ Q1-48 45南南23.5 37.6 260.4 16.111 137.9 55.036 170.5南南1 4 0.0038371 Q2-48 139.6 - 24.15南39.7 174.3 55.007 267.3 16.254 48.1南南南1 3.6 - 0.027284 144.5 - 24.36 Q3-48南41.4 273.9 16.556 50.2 55.398南南南177.2 - 1.09 3.8 - 0.0086581 145.9 - 24.05 Q4-48南南43.5 275.2 16.597 49.154.885南南178.1 1.16 4 -0.012807
头(台)
时间RCPI_Responses RCPI_Innovations UNRATE_Innovations _____ ______________ ________________ ________________ __________________ Q1-49 0.0037294 4.6036 -0.0038547 0.25039 Q2-49 0.0064827 5.0083 0.0070154 0.027504 Q4-49 -0.0073358 5.4981 -0.0045047 0.25199 Q4-49 -0.0057328 5.7007 -0.0065904 0.10593 Q1-50 -0.0060454 5.8687 -0.005022 0.13824 Q2-50 - 0.0064475 5.5787 -0.0034013 -0.26192 Q4-50 -0.0067066 5.4129 -0.0033182 0.11135

资源描述是一个241乘4的模拟反应和创新矩阵。RCPI_Responses是CPI增长率的模拟路径和RCPI_Innovations是对应的创新序列,与失业率相关的变量也相似。的时间戳资源描述的时间戳直接跟踪PSTbl,且采样频率相同。

估计消费者价格指数(CPI),失业率和国内生产总值(GDP)的VAR(4)模型。包括一个线性回归组件,包含当前和过去4个季度的政府消费支出和投资。从估计的模型模拟多条路径。

加载Data_USEconModel数据集。计算实际GDP。

负载Data_USEconModelDataTimeTable。RGDP = datatitable . gdp ./ datatitable . gdpdef *100;

把所有变量画在单独的图上。

图tiledlayout(2,2) nexttile plot(datatitable . time, datatitable . cpiaucsl);ylabel (“指数”)标题(“消费物价指数”) nexttile plot(datatitable . time, datatitable . unrate);ylabel (“百分比”)标题(“失业率”) nexttile plot(datatitable . time, datatitable . rgdp);ylabel (“输出”)标题(“实际本地生产总值”) nexttile plot(datatitable . time, datatitable . gce);ylabel (“数十亿美元”)标题(“政府支出”

图中包含4个轴对象。标题为“消费者价格指数”的Axes对象1包含一个类型为line的对象。标题为“失业率”的坐标轴对象2包含一个类型为line的对象。标题为Real Gross Domestic Product的坐标轴对象3包含一个类型为line的对象。标题为Government expenditure的坐标轴对象4包含一个类型为line的对象。

通过将CPI、GDP和GCE转换为一系列增长率来稳定它们。通过删除第一个观测值,使失业率序列与其他序列同步。

Varnames = [“CPIAUCSL”“RGDP”“全球教育运动”];DTT = varfun(@price2ret,DataTimeTable,InputVariables=varnames);DTT.Properties.VariableNames = varnames;德勤。UNRATE = datatitable .UNRATE(2:end);

使时间基准规则。

dt = dt .时间;Dt =移码(Dt,“开始”“季”);德勤。时间=dt;

将GCE速率级数展开为包括第一个滞后级数到第四个滞后级数的矩阵。

RGCELags = lagmatrix(DTT,1:4,DataVariables=“全球教育运动”);DTT = [DTT RGCELags];DTT = rmmissing(DTT);

创建单独的预样本和估计样本数据集。预示例包含最早的版本p4观察,估计样本包含其余的数据。

P = 4;PS = DTT(1:p,:);InSample = DTT((p+1):end,:);Respnames = [“CPIAUCSL”“UNRATE”“RGDP”];idx = endsWith(InSample.Properties.VariableNames,“全球教育运动”);prednames = InSample.Properties.VariableNames(idx);

使用简写语法创建一个默认的VAR(4)模型。指定响应变量名。

Mdl = varm(3,p);Mdl。SeriesNames = respnames;

用整个样本估计模型。指定GCE及其滞后作为回归组件的外生预测数据。

EstMdl =估计(Mdl,InSample,Presample=PS,PredictorVariables=prednames);

通过进行无条件仿真,从估计的模型中生成100条随机响应和创新路径。指定路径的长度与估计样本周期的长度相同。提供预样品和估计样本数据。

rng (1)%用于再现性Numpaths = 100;nummobs = height(InSample);Tbl =模拟(EstMdl, nummobs,NumPaths= NumPaths,...Presample = PS,抽样=抽样,PredictorVariables = prednames);大小(台)
ans =1×2240年14
头(台)
时间CPIAUCSL RGDP GCE UNRATE Lag1GCE Lag2GCE Lag3GCE Lag4GCE CPIAUCSL_Responses UNRATE_Responses RGDP_Responses CPIAUCSL_Innovations UNRATE_Innovations RGDP_Innovations  _____ __________ __________ __________ ______ __________ __________ __________ __________ __________________ ________________ ______________ ____________________ __________________ ________________ Q1-49 0.00041815 -0.0031645 0.036603 6.2 0.047147 0.04948 0.04193 0.054347 1 x100双1 x100双1 x100 x100双1 x100的两倍双1x100双Q2-49 -0.0071324 0.011385 -0.0021164 6.6 0.036603 0.047147 0.04948 0.04193 1x100 double 1x100 double 1x100 double 1x100 double 1x100 double 1x100 double Q3-49 -0.0059122 -0.010366 -0.012793 6.6 -0.0021164 0.036603 0.047147 0.04948 1x100 double 1x100 double 1x100 double 1x100 double 1x100 double 1x100 double Q4-49 0.0012698 0.040091 -0.021693 6.3 -0.012793 -0.0021164 0.036603 0.047147 1x100 double 1x100 double 1x100 double 1x100 double 1x100 double 1x100 double Q1-50 0.010101 0.029649 0.010905 5.4 -0.021693 -0.012793 -0.0021164 0.036603 1x100 double 1x100 double 1x100 double 1x100 double 1x100 double 1x100 double Q2-50 0.01908 0.03844 -0.0043478 4.4 0.010905 -0.021693 -0.012793 -0.0021164 1x100 double 1x100 double 1x100 double 1x100 double 1x100 double 1x100 double Q3-50 0.025954 0.017994 0.075508 4.3 -0.0043478 0.010905 -0.021693 -0.012793 1x100 double 1x100 double 1x100 double 1x100 double 1x100 double 1x100 double Q4-50 0.035395 0.01197 0.14807 3.4 0.075508 -0.0043478 0.010905 -0.021693 1x100 double 1x100 double 1x100 double 1x100 double 1x100 double 1x100 double

资源描述是一个240 × 14的估计样本数据时间表,模拟响应(表示responseName_Responses)和相应的创新(记为responseName_Innovations).模拟的响应和创新变量是240 × 100的矩阵,其中每行是估计样本中的一个周期,每列是独立生成的单独路径。

对于估计样本中的每一次,计算所有路径之间模拟响应的平均向量。

idx = endsWith(Tbl.Properties.VariableNames,“_Responses”);simrespnames = Tbl.Properties.VariableNames(idx);MeanSim = varfun(@(x)mean(x,2),Tbl,InputVariables=simrespnames);

MeanSim是一个240 × 3的时间表,包含每个时间点模拟响应的平均值。

绘制模拟的反应,它们的平均值和数据。

图tiledlayout (2, 2)j = 1:Mdl。NumSeriesnexttile plot(Tbl.Time,Tbl{:,simrespnames(j)},Color=[0.8,0.8,0.8]) title(Mdl.SeriesNames{j}); holdh1 = plot(Tbl. time,Tbl{:,respnames(j)});h2 = plot(Tbl。时间,MeanSim{:,“Fun_”+ simrespnames (j)});持有结束Hl =传说([h1 h2],“数据”“的意思是”);霍奇金淋巴瘤。Position = [0.6 0.25 hl.Position(3:4)];

图中包含3个轴对象。标题为CPIAUCSL的Axes对象1包含102个类型为line的对象。标题为UNRATE的Axes对象2包含102个类型为line的对象。标题为RGDP的坐标轴对象3包含102个类型为line的对象。这些对象代表数据,均值。

中对VAR模型进行条件模拟响应返回时间表与无条件模拟的创新在该研究中,经济学家假设抽样期结束后(从2009年第二季度到2012年第四季度)的15个季度失业率为6%。

加载和预处理数据

加载Data_USEconModel数据集。计算CPI增长率。由于增长率计算消耗最早的观测值,因此在时间表中包括增长率变量

负载Data_USEconModelDataTimeTable。RCPI = [NaN;price2ret (DataTimeTable.CPIAUCSL)];

准备评估时间表

从表中删除所有缺失的值,相对于CPI率(RCPI)和失业率(UNRATE)系列。

Varnames = [“RCPI”“UNRATE”];DTT = rmmissing(DataTimeTable,DataVariables=varnames);

通过将所有日期转移到季度的第一天来纠正时间不规律。

dt = dt .时间;Dt =移码(Dt,“开始”“季”);德勤。时间=dt;

为评估创建模型模板

使用简写语法创建一个默认的VAR(4)模型。指定响应变量名。

P = 4;Mdl = varm(2,p);Mdl。SeriesNames = varnames;

模型与数据拟合

估计模型。通过整个时间表德勤.默认情况下,估计中的响应变量Mdl。SeriesNames适合模型。或者,您可以使用ResponseVariables名称-值参数。

EstMdl =估计(Mdl,DTT);

准备估计模型的条件模拟

假设经济学家假设失业率在未来15个季度将保持在6%。

创建一个具有以下品质的时间表:

  1. 时间戳相对于估计样本时间戳是规则的,它们的顺序是从2009年第二季度到2012年第四季度。

  2. 的变量RCPI(因此,所有其他变量德勤的15 × 1向量值。

  3. 的变量UNRATE是一个15 × 1向量,其中每个元素都是6。

Numobs = 15;shdt = DTT.Time(end) + calquarters(1:numobs);DTTCondSim = retime(DTT,shdt,“fillwithmissing”);DTTCondSim。UNRATE=在es(numobs,1)*6;

DTTCondSim是一个15乘15的时间表,直接从时间上,从德勤,两个时间表都有相同的变量。所有变量DTTCondSim包含值,除了UNRATE,是由值6组成的向量。

对估计模型进行条件模拟

通过提供条件数据来模拟给定假设的CPI增长率DTTCondSim并指定响应变量名。生成1000条路径。因为模拟范围超出了估计样本数据,所以提供估计样本作为预样本来初始化模型。

rng (1)%用于再现性Tbl =模拟(EstMdl, nummobs,NumPaths=1000,...抽样= DTTCondSim ResponseVariables = EstMdl。SeriesNames,...Presample =德勤,PresampleResponseVariables = EstMdl.SeriesNames);大小(台)
ans =1×215日19
idx = endsWith(Tbl.Properties.VariableNames,[“_Responses”“_Innovations”]);头(资源描述(:,idx))
Q4-09 1x1000双1x1000双1x1000双1x1000双1x1000双1x1000双1x1000双1x1000双1x1000双1x1000双1x1000双1x1000双Q1-10 1x1000双1x1000双1x1000双1x1000双1x1000双1x1000双Q3-10 1x1000双1x1000双1x1000双1x1000双1x1000双1x1000双1x1000双1x1000双1x1000双1x1000双1x1000双1x1000双1x1000双1x1000双1x1000双1x1000双1x1000双1x1000双1x1000双1x1000双1x1000双1x1000双1x1000双1x1000双1x1000双1x1000双1x1000Q1-11 1x1000双1x1000双1x1000双1x1000双1x1000双1x1000双1x1000双1x1000双1x1000

资源描述是一个15乘19的模拟反应和创新的矩阵RCPI鉴于UNRATE是未来15个季度的6%RCPI_Responses为CPI增长率的模拟路径和RCPI_Innovations包含相应的创新系列。UNRATE_Responses是一个15乘1000的矩阵,由值6组成。所有其他变量资源描述变量和它们的值在吗DTTCondSim

用估计样本数据的最后几个值绘制CPI增长率的模拟值及其平均值。

meanrpiisim = mean(Tbl.RCPI_Responses,2);figure h1 = plot(DTT.Time((end-30):end),DTT.RCPI((end-30):end));持有h2 = plot(Tbl.Time,Tbl.RCPI_Responses,Color=[0.8 0.8 0.8]);h3 = plot(Tbl;时间,MeanRCPISim,Color=“k”、线宽= 2);参照线(Tbl.Time (1),“r——”线宽= 2)title(estmld . seriesnames) legend([h1 h2(1) h3],[“估计数据”“模拟路径”“模拟”的意思是),...位置=“最佳”

图中包含一个轴对象。标题为RCPI UNRATE的axes对象包含1003个类型为line、constantline的对象。这些对象表示估计数据、模拟路径、模拟平均值。

输入参数

全部折叠

VAR模型,指定为varm创建的模型对象varm估计Mdl必须完全指定。

每个输出路径生成的随机观察数,指定为正整数。输出参数Y而且E,或资源描述,有numobs行。

数据类型:

为模型提供初始值的预采样数据Mdl的表或时间表numprevars变量和numpreobs行。以下情况描述了何时使用Presample

  • Presample是必需的模拟在下列条件之一下执行无条件模拟:

    • 在模拟范围内不提供数据(也就是说,不使用抽样名称-值参数)。

    • 方法仅为模拟范围中的模型回归组件指定预测器数据抽样而且PredictorVariables名称-值参数,但不从中选择任何响应变量抽样

  • Presample是可选的模拟属性执行条件模拟,即在模拟范围内提供响应数据时,在此基础上对模拟响应进行条件调整抽样而且ResponseVariables名称-值参数。默认的,模拟设置任何必要的预采样观察。

    • 对于无回归分量的平稳VAR过程,模拟将预采样观测值设置为无条件平均值 μ Φ 1 l c

    • 对于包含回归成分的非平稳过程或模型,模拟将预采样观测值设置为零。

不管什么情况,模拟返回输出表或时间表中的模拟变量资源描述,这与Presample

每一行都是一个预采样观测,在所有路径中,每一行的测量都是同时发生的。numpreobs至少是Mdl。P.如果你提供的行数比需要的多,模拟使用最新的Mdl。P观察。

每个变量都是numpreobs——- - - - - -numprepaths数字矩阵。变量与响应序列相关联Mdl。SeriesNames.要控制预采样变量选择,请参见可选选项PresampleResponseVariables名称-值参数。

对于每个变量,列都是独立的路径。

  • 如果变量是向量,模拟将它们应用于每个路径,以初始化模拟的模型。因此,所有各自的响应路径都源自共同的初始条件。

  • 否则,对于每个变量ResponseK每条路径j模拟适用于Presample。ResponseK(:,j生产资源描述。ResponseK(:,j.变量必须至少有numpaths列和模拟只使用第一个numpaths列。

如果Presample是一个时间表,以下所有条件必须成立:

  • Presample必须表示具有常规datetime时间步长的示例(参见isregular).

  • 输入抽样而且Presample必须在时间上保持一致Presample立即之前抽样关于采样频率和阶数。

  • 样本时间戳的datetime向量Presample。时间必须是升序或降序。

如果Presample是一个表,以下条件成立:

  • 最后一行包含最新的预样本观察结果。

  • Presample.Properties.RowsNames一定是空的。

未来的时间序列响应或预测数据,指定为表格或时间表。抽样包含numvars变量,包括numseries响应变量ytnumpreds预测变量xt对于模型回归组件。你可以指定抽样仅当其他数据输入为表格或时间表时。

使用抽样以下情况:

  • 执行条件模拟。中还必须提供响应变量名抽样通过使用ResponseVariables名称-值参数。

  • 为无条件或条件模拟提供未来的预测器数据。要提供预测器数据,必须在中指定预测器变量名抽样通过使用PredictorVariables名称-值参数。否则,模拟忽略模型回归组件。

模拟返回输出表或时间表中的模拟变量资源描述,这与抽样

每一行对应模拟视界中的一个观测值,第一行是最早的观测值,所有路径中每一行的测量值同时发生。抽样至少要有numobs行来覆盖模拟视界。如果你提供的行数比需要的多,模拟只使用第一个numobs行。

每个响应变量都是一个数字矩阵numpaths列。对于每个响应变量K,列是分开的、独立的路径。具体来说,路径j响应变量ResponseK捕获的状态或知识ResponseK随着它从预先的过去(例如,Presample。ResponseK)的未来。对于每个选定的响应变量ResponseK

  • 如果抽样。ResponseK是一个向量,模拟适用于每一个numpaths输出路径(见NumPaths).

  • 否则,抽样。ResponseK至少要有numpaths列。如果你提供了多余的页数,模拟只使用第一个numpaths列。

每个预测变量都是一个数字向量。所有预测变量都出现在每个响应方程的回归分量中,并适用于所有响应路径。

如果抽样是时间表,以下条件适用:

  • 抽样必须表示具有常规datetime时间步长的示例(参见isregular).

  • datetime向量抽样。时间必须严格递增或递减。

  • Presample必须立即先于抽样,相对于采样频率。

如果抽样是一个表,以下条件成立:

  • 最后一行包含最新的观察结果。

  • InSample.Properties.RowsNames一定是空的。

元素的响应变量抽样可以是数值标量或缺失值(由值)。模拟将数值标量视为预先已知的确定性未来响应,例如由策略设置的响应。模拟模拟对应的响应值以已知值为条件。所选预测变量的元素必须是数字标量。

默认情况下,模拟在模型中没有回归组件的情况下执行无条件模拟(每个选定的响应变量都是一个numobs——- - - - - -numpaths矩阵由表示完全不了解所有模拟响应的未来状态的值)。因此,变量资源描述由常规的无条件蒙特卡罗模拟得到的结果。

详情请参见算法

例子:考虑从由两个响应序列组成的模型模拟一条路径,国内生产总值而且消费者价格指数未来的三个时期。假设你对一些响应的未来值有先验知识,你想根据你的知识来模拟未知的响应。指定抽样作为一个包含您知道并使用的值的表对于您不知道但想要模拟的值。例如,抽样= array2table([2南;0.1南;,VariableNames=["GDP" "CPI"])的未来值,指定您不知道消费者价格指数,但你知道的国内生产总值分别在周期1、周期2和周期3中为2、0.1和未知。

可供选择的变量抽样作为响应变量处理yt,指定为以下数据类型之一:

  • 包含的字符向量的字符串向量或单元格向量numseries中的变量名InSample.Properties.VariableNames

  • 一个长度numseries可供选择的变量的唯一索引(整数)向量InSample.Properties.VariableNames

  • 一个长度numvars逻辑向量,其中ResponseVariables (j) =真选择变量jInSample.Properties.VariableNames,总和(ResponseVariables)numseries

要执行条件模拟,必须指定ResponseVariables中选择响应变量抽样对于调理数据。ResponseVariables仅在指定时应用抽样

所选变量必须是相同宽度的数值向量(单路径)或矩阵(列表示多条独立路径)。

例子:ResponseVariables =(“GDP”“CPI”)

例子:ResponseVariables=[true false true false]ResponseVariable = 3 [1]选择第一个和第三个表变量作为响应变量。

数据类型:|逻辑|字符|细胞|字符串

名称-值参数

指定可选参数对为Name1 = Value1,…,以=家,在那里的名字参数名称和价值对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。

在R2021a之前,使用逗号分隔每个名称和值,并将其括起来的名字在报价。

例子:100年模拟(Mdl NumPaths = 1000, Y0 = PS)返回1000,100个周期的模拟响应路径的数值数组Mdl并指定预采样响应数据的数值数组PS

要生成的样本路径数,指定为正整数。输出Y而且ENumPaths页面,并在输出中每个模拟响应和创新变量资源描述是一个numobs——- - - - - -NumPaths矩阵。

例子:NumPaths = 1000

数据类型:

为模型提供初始值的预示例响应Mdl,指定为numpreobs——- - - - - -numseries数值矩阵或numpreobs——- - - - - -numseries——- - - - - -numprepaths数字数组。使用Y0只有当您以数字数组的形式提供可选数据输入时。

numpreobs是预采样观测数。numprepaths是预采样响应路径的数量。

每一行都是一个预样本,在所有页面中,每一行的测量都是同时进行的。最后一行包含最新的预样本观察结果。Y0至少要有Mdl。P行。如果你提供的行数比需要的多,模拟使用最新的Mdl。P观察。

中的每一列对应于响应序列名称Mdl。SeriesNames

页面对应于独立的路径。

  • 如果Y0是一个矩阵,模拟应用它来模拟每个示例路径(页面)。因此,输出参数中的所有路径Y由共同的初始条件导出。

  • 否则,模拟适用于Y0 (:,:j初始化模拟路径jY0至少要有numpaths页,模拟只使用第一个numpaths页面。

默认情况下,模拟设置任何必要的预采样观察。

  • 对于无回归分量的平稳VAR过程,模拟将预采样观测值设置为无条件平均值 μ Φ 1 l c

  • 对于包含回归成分的非平稳过程或模型,模拟将预采样观测值设置为零。

数据类型:

可供选择的变量Presample用于预采样数据,指定为以下数据类型之一:

  • 包含的字符向量的字符串向量或单元格向量numseries中的变量名Presample.Properties.VariableNames

  • 一个长度numseries可供选择的变量的唯一索引(整数)向量Presample.Properties.VariableNames

  • 一个长度numprevars逻辑向量,其中PresampleResponseVariables (j) =真选择变量jPresample.Properties.VariableNames,总和(PresampleResponseVariables)numseries

PresampleResponseVariables仅在指定时应用Presample

所选变量必须是数值向量,且不能包含缺失值().

PresampleResponseNames不需要包含与在Mdl。SeriesNames模拟使用所选变量中的数据PresampleResponseVariables (j作为一个范例Mdl。SeriesNames (j

如果变量的个数在Presample匹配Mdl。NumSeries的所有变量Presample.如果变量的个数在Presample超过Mdl。NumSeries,默认匹配中的变量Presample到名字Mdl。SeriesNames

例子:PresampleResponseVariables =(“GDP”“CPI”)

例子:PresampleResponseVariables=[true false true false]PresampleResponseVariable = 3 [1]为预采样数据选择第一个和第三个表变量。

数据类型:|逻辑|字符|细胞|字符串

模型中回归组件的预测器数据,指定为包含numpreds列。使用X只有当您以数字数组的形式提供可选数据输入时。

numpreds是预测变量的数量(大小(Mdl.Beta, 2)).

每一行对应一个观测值,每一行中的测量值同时发生。最后一行包含最新的观察结果。X至少要有numobs行。如果你提供的行数比需要的多,模拟只使用最新版本numobs观察。模拟在预采样期间不使用回归组件。

每一列是一个单独的预测变量。所有预测变量都出现在每个响应方程的回归分量中。

模拟适用于X到每个路径(页);也就是说,X表示观测到的预测器的一条路径。

默认情况下,模拟排除回归组件,不管它是否存在于Mdl

数据类型:

可供选择的变量抽样作为外生预测变量xt,指定为以下数据类型之一:

  • 包含的字符向量的字符串向量或单元格向量numpreds中的变量名InSample.Properties.VariableNames

  • 一个长度numpreds可供选择的变量的唯一索引(整数)向量InSample.Properties.VariableNames

  • 一个长度numvars逻辑向量,其中PredictorVariables (j) =真选择变量jInSample.Properties.VariableNames,总和(PredictorVariables)numpreds

无论如何,选定的预测变量j对应于系数Mdl。β(:,j

PredictorVariables仅在指定时应用抽样

所选变量必须是数值向量,且不能包含缺失值().

默认情况下,模拟排除回归组件,不管它是否存在于Mdl

例子:PredictorVariables=["M1SL" "TB3MS" "UNRATE"]

例子:PredictorVariables=[true false true false]PredictorVariable = 3 [1]选择第一个和第三个表变量作为响应变量。

数据类型:|逻辑|字符|细胞|字符串

用于条件模拟的未来多元响应序列,指定为包含的数值矩阵或数组numseries列。使用YF只有当您以数字数组的形式提供可选数据输入时。

每一行对应模拟视界中的观测值,第一行是最早的观测值。具体地说,行j在采样路径中kYF (j:,k)内载有回应j未来的时期。YF至少要有numobs行来覆盖模拟视界。如果你提供的行数比需要的多,模拟只使用第一个numobs行。

中的每一列对应于响应变量名Mdl。SeriesNames

每个页面对应一个单独的示例路径。具体来说,路径kYF (:,:k)捕捉响应序列从过去的预样本演化而来的状态或知识(Y0)的未来。

  • 如果YF是一个矩阵,模拟适用于YF给每一个numpaths输出路径(见NumPaths).

  • 否则,YF至少要有numpaths页面。如果你提供了多余的页数,模拟只使用第一个numpaths页面。

的元素YF可以是数值标量或缺失值(由值)。模拟将数值标量视为预先已知的确定性未来响应,例如由策略设置的响应。模拟模拟对应的响应值以已知值为条件。

默认情况下,YF数组由什么组成表示完全不了解所有模拟响应的未来状态的值。因此,模拟获取输出响应Y从常规的无条件蒙特卡罗模拟。

详情请参见算法

例子:考虑模拟从一个由四个响应序列组成的模型到未来三个周期的一条路径。假设你对一些响应的未来值有先验知识,你想根据你的知识来模拟未知的响应。指定YF作为一个矩阵,包含你知道的值,并使用对于您不知道但想要模拟的值。例如,YF=[NaN 2 5 NaN;南南0.1南;楠楠楠楠]指定您不知道第一个和第四个响应系列的未来值;您知道第二个响应序列中周期1的值,但不知道其他值;你知道第三个响应序列中周期1和2的值,但不知道周期3的值。

数据类型:

请注意

  • Y0而且X指出缺失的值。模拟通过按列表删除从数据中删除缺失的值。如果Y0是一个三维数组,那么模拟执行这些步骤。

    1. 水平连接页面以形成numpreobs——- - - - - -numpaths * numseries矩阵。

    2. 删除至少包含一个的任何行从连接的数据。

    在观测缺失的情况下,从多个路径得到的结果Y0可能不同于从每个路径单独获得的结果。

    有关条件模拟(请参阅YF),如果X包含最新版本中任何缺失的值numobs观察,然后模拟抛出错误。

  • 模拟的响应变量时发出错误Presample并从中选取预测变量抽样包含任何缺失的值。

输出参数

全部折叠

模拟多元响应序列,返回为numobs——- - - - - -numseries数值矩阵或numobs——- - - - - -numseries——- - - - - -numpaths数字数组。模拟返回Y仅当提供可选数据集作为数值矩阵或数组时,才使用Y0名称-值参数。

Y中的预示例响应的延续Y0

每一行都是模拟范围中的一个时间点。在所有页面中,一行中的值同时出现。最后一行包含最新的模拟值。

中的每一列对应于响应序列名称Mdl。SeriesNames

页面对应于独立的模拟路径。

方法指定条件模拟的将来响应YF参数的名称-值,在已知值YF出现在相同的位置Y.然而,Y中缺失观测值的模拟值YF

模拟多元模型创新系列,作为numobs——- - - - - -numseries数值矩阵或numobs——- - - - - -numseries——- - - - - -numpaths数字数组。模拟返回E仅当提供可选数据集作为数值矩阵或数组时,才使用Y0名称-值参数。

的元素E而且Y对应。

如果指定条件模拟的未来响应(请参阅YF名称-值参数),模拟从已知值中推断创新YF并将推断出的创新放在E.对于缺失的观察YF模拟从任意已知值条件下的高斯分布中绘制,并将绘制的位置放在E

模拟的多变量响应、模型创新和其他变量,作为表或时间表返回,数据类型与Presample抽样模拟返回资源描述只有当你提供输入的时候Presample抽样

资源描述包含以下变量:

  • 在所选响应序列的模拟范围内的模拟路径yt.每个模拟的响应变量资源描述是一个numobs——- - - - - -numpaths数字矩阵,numobs的值NumObs而且numpaths的值NumPaths.每一行对应于模拟范围中的一个时间,每列对应于一个单独的路径。模拟命名模拟响应变量ResponseKResponseK_Responses.例如,如果Mdl。系列(K国内生产总值资源描述包含具有名称的对应模拟响应的变量GDP_Responses.如果你指定ResponseVariablesResponseKResponseVariable (K.否则,ResponseKPresampleResponseVariable (K

  • 创新模拟范围内的模拟路径εt对应于yt.每个模拟创新变量在资源描述是一个numobs——- - - - - -numpaths数字矩阵。每一行对应于模拟范围中的一个时间,每列对应于一个单独的路径。模拟命名响应的模拟创新变量ResponseKResponseK_Innovations.例如,如果Mdl。系列(K国内生产总值资源描述包含具有名称的对应创新的变量GDP_Innovations

如果资源描述是时间表,在以下条件下成立:

  • 的行顺序资源描述的行顺序匹配抽样,当您指定它时。如果您没有指定抽样你指定Presample的行顺序资源描述和行顺序一样吗Presample

  • 如果你指定抽样,行次数资源描述。时间InSample.Time (1: numobs).否则,Tbl.Time (1)下次是之后吗Presample(结束)相对于采样频率,和Tbl.Time (2: numobs)以下是相对于采样频率的时间。

算法

假设Y0而且YF由数值数据输入指定的预采样和未来响应数据是否在Y0而且YF或从输入表或时间表中选择变量Presample而且抽样.同样的,假设E包含数值数组中返回的模拟模型创新E或者是表格或时间表资源描述

  • 模拟使用此过程对所有页面执行条件模拟k= 1,…,numpaths对于每一次t= 1,…,numobs

    1. 模拟为所有响应变量(E (t:,k根据已知的未来反应(YF (t:,k).在E模拟模仿的模式的值。YF

    2. 缺少的元素E在时间t模拟执行这些步骤。

      1. Z1的已知元素条件下的随机标准高斯分布扰动E

      2. 规模Z1条件协方差矩阵的下三角Cholesky因子。也就是说,Z2L * Z1,在那里l胆固醇(C,“低”)而且C为条件高斯分布的协方差。

      3. 嫁祸于Z2中的相应缺失值E

    3. 中缺少的值YF模拟通过模型过滤相应的随机创新Mdl

  • 模拟使用此过程来确定时间原点t0包含线性时间趋势的模型。

    • 如果您没有指定Y0,然后t0= 0。

    • 否则,模拟t0大小(Y0, 1)- - - - - -Mdl。P.因此,趋势分量中的次数为tt0+ 1,t0+ 2,…,t0+numobs.这种约定与模型估计的默认行为是一致的估计删除第一个Mdl。P反应,减少有效样本量。虽然模拟显式地使用第一个Mdl。PY0为初始化模型,在Y0(不包括任何缺失值)决定t0

参考文献

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

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

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

[4]Lutkepohl, H。多重时间序列分析新导论.柏林:施普林格,2005。

版本历史

在R2017a中引入