模拟
矢量自回归(VAR)模型的蒙特卡罗模拟
语法
描述
数值数组的条件和无条件模拟
表和时间表的无条件模拟
返回表格或时间表资源描述
=模拟(Mdl
,numobs
Presample =Presample
)资源描述
包含随机多元响应和创新变量,是模型中响应序列无条件模拟的结果Mdl
.模拟
使用预样本数据的表格或时间表Presample
初始化响应序列。
模拟
中的变量Mdl。SeriesNames
为了模拟,它选择了所有的变量Presample
.选择不同的响应变量资源描述
要进行模拟,请使用PresampleResponseVariables
名称-值参数。
表格和时间表的条件模拟
返回表格或时间表资源描述
=模拟(Mdl
,numobs
抽样=抽样
ReponseVariables =ResponseVariables
)资源描述
包含随机多元响应和创新变量,是模型中响应序列的条件模拟结果Mdl
.抽样
在模拟范围内的响应或预测数据的表或时间表是模拟
用于执行条件模拟和ResponseVariables
中的响应变量抽样
.
例子
从无条件模拟中返回矩阵中的响应级数
用VAR(4)模型拟合消费者价格指数(CPI)和失业率数据。然后,从估计的模型中模拟一个响应向量。
加载Data_USEconModel
数据集。
负载Data_USEconModel
把这两个系列分别画在不同的地方。
图绘制(DataTimeTable.Time DataTimeTable.CPIAUCSL);标题(“消费物价指数”) ylabel (“指数”)包含(“日期”)
图绘制(DataTimeTable.Time DataTimeTable.UNRATE);标题(“失业率”) ylabel (“百分比”)包含(“日期”)
通过将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 (“增长率”)包含(“日期”)传说(“模拟”,“观察”)举行从
图绘制(Data.Time, Y (:, 2));持有在情节(Data.Time Data.UNRATE) ylabel (“百分比”)包含(“日期”)标题(“失业率”)传说(“模拟”,“观察”)举行从
使用过滤器模拟响应
说明之间的关系模拟
而且过滤器
通过估计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],[“模拟”“观察”])结束
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],[“模拟”“观察”])结束
响应返回时间表与无条件模拟的创新
用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 (“数十亿美元”)标题(“政府支出”)
通过将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);
创建单独的预样本和估计样本数据集。预示例包含最早的版本p
=4
观察,估计样本包含其余的数据。
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}); hold在h1 = 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)];
响应返回时间表和条件模拟的创新
中对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%。
创建一个具有以下品质的时间表:
时间戳相对于估计样本时间戳是规则的,它们的顺序是从2009年第二季度到2012年第四季度。
的变量
RCPI
(因此,所有其他变量德勤
的15 × 1向量南
值。的变量
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],[“估计数据”“模拟路径”“模拟”的意思是),...位置=“最佳”)
输入参数
Presample
- - - - - -Presample数据
表格|时间表
为模型提供初始值的预采样数据Mdl
的表或时间表numprevars
变量和numpreobs
行。以下情况描述了何时使用Presample
:
Presample
是必需的模拟
在下列条件之一下执行无条件模拟:在模拟范围内不提供数据(也就是说,不使用
抽样
名称-值参数)。方法仅为模拟范围中的模型回归组件指定预测器数据
抽样
而且PredictorVariables
名称-值参数,但不从中选择任何响应变量抽样
.
Presample
是可选的模拟
属性执行条件模拟,即在模拟范围内提供响应数据时,在此基础上对模拟响应进行条件调整抽样
而且ResponseVariables
名称-值参数。默认的,模拟
设置任何必要的预采样观察。对于无回归分量的平稳VAR过程,
模拟
将预采样观测值设置为无条件平均值对于包含回归成分的非平稳过程或模型,
模拟
将预采样观测值设置为零。
不管什么情况,模拟
返回输出表或时间表中的模拟变量资源描述
,这与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
响应变量yt或numpreds
预测变量xt对于模型回归组件。你可以指定抽样
仅当其他数据输入为表格或时间表时。
使用抽样
以下情况:
执行条件模拟。中还必须提供响应变量名
抽样
通过使用ResponseVariables
名称-值参数。为无条件或条件模拟提供未来的预测器数据。要提供预测器数据,必须在中指定预测器变量名
抽样
通过使用PredictorVariables
名称-值参数。否则,模拟
忽略模型回归组件。
模拟
返回输出表或时间表中的模拟变量资源描述
,这与抽样
.
每一行对应模拟视界中的一个观测值,第一行是最早的观测值,所有路径中每一行的测量值同时发生。抽样
至少要有numobs
行来覆盖模拟视界。如果你提供的行数比需要的多,模拟
只使用第一个numobs
行。
每个响应变量都是一个数字矩阵numpaths
列。对于每个响应变量
,列是分开的、独立的路径。具体来说,路径K
响应变量j
捕获的状态或知识ResponseK
随着它从预先的过去(例如,ResponseK
Presample。
)的未来。对于每个选定的响应变量ResponseK
:ResponseK
如果
抽样。
是一个向量,ResponseK
模拟
适用于每一个numpaths
输出路径(见NumPaths
).否则,
抽样。
至少要有ResponseK
numpaths
列。如果你提供了多余的页数,模拟
只使用第一个numpaths
列。
每个预测变量都是一个数字向量。所有预测变量都出现在每个响应方程的回归分量中,并适用于所有响应路径。
如果抽样
是时间表,以下条件适用:
如果抽样
是一个表,以下条件成立:
最后一行包含最新的观察结果。
InSample.Properties.RowsNames
一定是空的。
元素的响应变量抽样
可以是数值标量或缺失值(由南
值)。模拟
将数值标量视为预先已知的确定性未来响应,例如由策略设置的响应。模拟
模拟对应的响应南
值以已知值为条件。所选预测变量的元素必须是数字标量。
默认情况下,模拟
在模型中没有回归组件的情况下执行无条件模拟(每个选定的响应变量都是一个numobs
——- - - - - -numpaths
矩阵由南
表示完全不了解所有模拟响应的未来状态的值)。因此,变量资源描述
由常规的无条件蒙特卡罗模拟得到的结果。
详情请参见算法.
例子:考虑从由两个响应序列组成的模型模拟一条路径,国内生产总值
而且消费者价格指数
未来的三个时期。假设你对一些响应的未来值有先验知识,你想根据你的知识来模拟未知的响应。指定抽样
作为一个包含您知道并使用的值的表南
对于您不知道但想要模拟的值。例如,抽样= array2table([2南;0.1南;,VariableNames=["GDP" "CPI"])
的未来值,指定您不知道消费者价格指数
,但你知道的国内生产总值
分别在周期1、周期2和周期3中为2、0.1和未知。
ResponseVariables
- - - - - -可供选择的变量抽样
作为响应变量处理yt
字符串向量|特征向量的单元向量|整数向量|逻辑向量
可供选择的变量抽样
作为响应变量处理yt,指定为以下数据类型之一:
包含的字符向量的字符串向量或单元格向量
numseries
中的变量名InSample.Properties.VariableNames
一个长度
numseries
可供选择的变量的唯一索引(整数)向量InSample.Properties.VariableNames
一个长度
numvars
逻辑向量,其中ResponseVariables (
选择变量j
) =真
从j
InSample.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
.
Y0
- - - - - -Presample反应
数字矩阵|数字数组
为模型提供初始值的预示例响应Mdl
,指定为numpreobs
——- - - - - -numseries
数值矩阵或numpreobs
——- - - - - -numseries
——- - - - - -numprepaths
数字数组。使用Y0
只有当您以数字数组的形式提供可选数据输入时。
numpreobs
是预采样观测数。numprepaths
是预采样响应路径的数量。
每一行都是一个预样本,在所有页面中,每一行的测量都是同时进行的。最后一行包含最新的预样本观察结果。Y0
至少要有Mdl。P
行。如果你提供的行数比需要的多,模拟
使用最新的Mdl。P
观察。
中的每一列对应于响应序列名称Mdl。SeriesNames
.
页面对应于独立的路径。
如果
Y0
是一个矩阵,模拟
应用它来模拟每个示例路径(页面)。因此,输出参数中的所有路径Y
由共同的初始条件导出。否则,
模拟
适用于Y0 (:,:
初始化模拟路径j
)j
.Y0
至少要有numpaths
页,模拟
只使用第一个numpaths
页面。
默认情况下,模拟
设置任何必要的预采样观察。
对于无回归分量的平稳VAR过程,
模拟
将预采样观测值设置为无条件平均值对于包含回归成分的非平稳过程或模型,
模拟
将预采样观测值设置为零。
数据类型:双
PresampleResponseVariables
- - - - - -可供选择的变量Presample
用于预采样响应数据
字符串向量|特征向量的单元向量|整数向量|逻辑向量
可供选择的变量Presample
用于预采样数据,指定为以下数据类型之一:
包含的字符向量的字符串向量或单元格向量
numseries
中的变量名Presample.Properties.VariableNames
一个长度
numseries
可供选择的变量的唯一索引(整数)向量Presample.Properties.VariableNames
一个长度
numprevars
逻辑向量,其中PresampleResponseVariables (
选择变量j
) =真
从j
Presample.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]
为预采样数据选择第一个和第三个表变量。
数据类型:双
|逻辑
|字符
|细胞
|字符串
X
- - - - - -预测数据
数字矩阵
PredictorVariables
- - - - - -可供选择的变量抽样
作为外生预测变量xt
字符串向量|特征向量的单元向量|整数向量|逻辑向量
可供选择的变量抽样
作为外生预测变量xt,指定为以下数据类型之一:
包含的字符向量的字符串向量或单元格向量
numpreds
中的变量名InSample.Properties.VariableNames
一个长度
numpreds
可供选择的变量的唯一索引(整数)向量InSample.Properties.VariableNames
一个长度
numvars
逻辑向量,其中PredictorVariables (
选择变量j
) =真
从j
InSample.Properties.VariableNames
,总和(PredictorVariables)
是numpreds
无论如何,选定的预测变量
对应于系数j
Mdl。β(:,
.j
)
PredictorVariables
仅在指定时应用抽样
.
所选变量必须是数值向量,且不能包含缺失值(南
).
默认情况下,模拟
排除回归组件,不管它是否存在于Mdl
.
例子:PredictorVariables=["M1SL" "TB3MS" "UNRATE"]
例子:PredictorVariables=[true false true false]
或PredictorVariable = 3 [1]
选择第一个和第三个表变量作为响应变量。
数据类型:双
|逻辑
|字符
|细胞
|字符串
YF
- - - - - -未来多元反应系列
数字矩阵|数字数组
用于条件模拟的未来多元响应序列,指定为包含的数值矩阵或数组numseries
列。使用YF
只有当您以数字数组的形式提供可选数据输入时。
每一行对应模拟视界中的观测值,第一行是最早的观测值。具体地说,行j
在采样路径中k
(YF (
)内载有回应j
:,k
)j
未来的时期。YF
至少要有numobs
行来覆盖模拟视界。如果你提供的行数比需要的多,模拟
只使用第一个numobs
行。
中的每一列对应于响应变量名Mdl。SeriesNames
.
每个页面对应一个单独的示例路径。具体来说,路径k
(YF (:,:
)捕捉响应序列从过去的预样本演化而来的状态或知识(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
是一个三维数组,那么模拟
执行这些步骤。水平连接页面以形成
numpreobs
——- - - - - -numpaths * numseries
矩阵。删除至少包含一个的任何行
南
从连接的数据。
在观测缺失的情况下,从多个路径得到的结果
Y0
可能不同于从每个路径单独获得的结果。有关条件模拟(请参阅
YF
),如果X
包含最新版本中任何缺失的值numobs
观察,然后模拟
抛出错误。模拟
的响应变量时发出错误Presample
并从中选取预测变量抽样
包含任何缺失的值。
输出参数
Y
-模拟多元响应序列
数值矩阵|数值数组
模拟多元响应序列,返回为numobs
——- - - - - -numseries
数值矩阵或numobs
——- - - - - -numseries
——- - - - - -numpaths
数字数组。模拟
返回Y
仅当提供可选数据集作为数值矩阵或数组时,才使用Y0
名称-值参数。
Y
中的预示例响应的延续Y0
.
每一行都是模拟范围中的一个时间点。在所有页面中,一行中的值同时出现。最后一行包含最新的模拟值。
中的每一列对应于响应序列名称Mdl。SeriesNames
.
页面对应于独立的模拟路径。
方法指定条件模拟的将来响应YF
参数的名称-值,在已知值YF
出现在相同的位置Y
.然而,Y
中缺失观测值的模拟值YF
.
资源描述
-模拟多变量响应、模型创新和其他变量
表|时间表
模拟的多变量响应、模型创新和其他变量,作为表或时间表返回,数据类型与Presample
或抽样
.模拟
返回资源描述
只有当你提供输入的时候Presample
或抽样
.
资源描述
包含以下变量:
在所选响应序列的模拟范围内的模拟路径yt.每个模拟的响应变量
资源描述
是一个numobs
——- - - - - -numpaths
数字矩阵,numobs
的值NumObs
而且numpaths
的值NumPaths
.每一行对应于模拟范围中的一个时间,每列对应于一个单独的路径。模拟
命名模拟响应变量ResponseK
.例如,如果ResponseK
_ResponsesMdl。系列(
是K
)国内生产总值
,资源描述
包含具有名称的对应模拟响应的变量GDP_Responses
.如果你指定ResponseVariables
,
是ResponseK
ResponseVariable (
.否则,K
)
是ResponseK
PresampleResponseVariable (
.K
)创新模拟范围内的模拟路径εt对应于yt.每个模拟创新变量在
资源描述
是一个numobs
——- - - - - -numpaths
数字矩阵。每一行对应于模拟范围中的一个时间,每列对应于一个单独的路径。模拟
命名响应的模拟创新变量ResponseK
.例如,如果ResponseK
_InnovationsMdl。系列(
是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
.模拟
为所有响应变量(E (
根据已知的未来反应(t
:,k
)YF (
).在t
:,k
)E
,模拟
模仿的模式南
的值。YF
.缺少的元素
E
在时间t
,模拟
执行这些步骤。画
Z1
的已知元素条件下的随机标准高斯分布扰动E
.规模
Z1
条件协方差矩阵的下三角Cholesky因子。也就是说,Z2
=L * Z1
,在那里l
=胆固醇(C,“低”)
而且C
为条件高斯分布的协方差。嫁祸于
Z2
中的相应缺失值E
.
中缺少的值
YF
,模拟
通过模型过滤相应的随机创新Mdl
.
模拟
使用此过程来确定时间原点t0包含线性时间趋势的模型。如果您没有指定
Y0
,然后t0= 0。否则,
模拟
集t0来大小(Y0, 1)
- - - - - -Mdl。P
.因此,趋势分量中的次数为t=t0+ 1,t0+ 2,…,t0+numobs
.这种约定与模型估计的默认行为是一致的估计
删除第一个Mdl。P
反应,减少有效样本量。虽然模拟
显式地使用第一个Mdl。P
在Y0
为初始化模型,在Y0
(不包括任何缺失值)决定t0.
参考文献
[1]汉密尔顿,詹姆斯D。时间序列分析.普林斯顿,新泽西州:普林斯顿大学出版社,1994。
[2]约翰森,S。协整向量自回归模型中的似然推理.牛津:牛津大学出版社,1995年。
[3]Juselius, K。协整VAR模型.牛津:牛津大学出版社,2006年。
[4]Lutkepohl, H。多重时间序列分析新导论.柏林:施普林格,2005。
版本历史
在R2017a中引入
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入该命令来运行该命令。Web浏览器不支持MATLAB命令。金宝app
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。