主要内容

模拟

马尔可夫切换动态回归模型的样本路径模拟

描述

实例

Y=模拟(Mdl,numObs)返回一个随机的numObs-响应序列的周期路径Y从模拟完全指定马尔可夫切换动态回归模型Mdl

实例

Y=模拟(Mdl,numObs,名称,值)使用由一个或多个名称值参数中指定的其他选项。例如,'NumPaths',1000, 'Y0',Y0模拟1000样品路径,并通过使用样品前体响应数据初始化每一个子模型的动态分量Y0

实例

[Y,E,StatePaths] =模拟(___)还返回了模拟的创新路径E和模拟的状态路径StatePaths,使用前面语法中的任何输入参数组合。

例子

全部折叠

模拟一维响应过程的两状态马尔可夫切换动态回归模型的响应路径。此示例使用任意参数值。

创建完全指定型号

创建描述区域切换机制的两状态离散时间马尔可夫链模型。标记区域。

P = [0.9 0.1;0.3 0.7]。MC = DTMC(P,“StateNames”,(“扩展”“衰退”]);

mc是完全指定的DTMC对象。

对于每个制度,使用arima创建一个AR模型,描述该制度内的响应过程。将子模型存储在向量中。

mdl1=arima('持续的'5,“AR”[0.3 0.2],......“差异”,2);mdl2=arima('持续的'5,“AR”,0.1,......“差异”mdl=[mdl1;mdl2];

mdl1mdl2完全指定的阿里玛对象。

从切换机制创建马尔可夫切换动态回归模型mc子模型的向量mdl

MDL = msVAR(MC,MDL);

Mdl是完全指定的msVAR对象。

模拟响应路径

从模型中生成一条长度为50的随机响应路径。

rng (1);%为了再现性y=模拟(Mdl,50);

Y是一条响应路径的50×1向量。

绘制响应路径。

图绘制(y)包含(“时间”) ylabel (“响应”)

图中包含一个轴对象。axis对象包含一个类型为line的对象。

考虑在模型模拟响应路径

创建马尔可夫切换动态回归模型。

P = [0.9 0.1;0.3 0.7]。MC = DTMC(P,“StateNames”,(“扩展”“衰退”]); mdl1=arima('持续的'5,“AR”[0.3 0.2],......“差异”,2);mdl2=arima('持续的'5,“AR”,0.1,......“差异”,1); mdl=[mdl1;mdl2];Mdl=msVAR(mc,Mdl);

模拟响应3,创新,并且从模型5个的观察状态的索引的路径。

rng (“默认”)%为了再现性(Y, E, SP) =模拟(Mdl 5“NumPaths”,3)
Y =5×310.7774 -5.6161 -3.1665 -2.2920 -5.2677 -3.8995 -4.7403 -6.3141
E=5×3-0.2050 0.9496 1.4633 -0.1241 -1.7076 0.7269 2.1068 1.0143 -0.3034 1.4090 1.6302 0.2939 1.4172 0.4889 -0.7873
SP=5×32 1 1 2 1 2 1 1 2 2 2 2 2 2 2

Y,E,SP.是5乘3的矩阵。列表示独立的路径。

模拟单一路径的反应,创新,并进入长度为50的模拟范围。然后分别绘制每条路径。

[Y,E,SP] =模拟(MDL,50);图副区(3,1,1)图(Y)ylabel('回复')网格子地块(3,1,2)地块(e)ylabel(“创新”)网格子地块(3,1,3)图(sp,“米”) ylabel (“状态”) yticks([1 2]) yticklabels(Mdl.StateNames)

图中包含3个轴对象。axis对象1包含一个类型为line的对象。axis对象2包含一个类型为line的对象。axis对象3包含一个类型为line的对象。

考虑战后美国实际GDP增长率的两状态马尔可夫转换动态回归模型。模型的参数估计在[1]

创建描述政权开关机构离散时间马尔可夫链模型。标签的制度。

P = [0.92 0.08;0.26 0.74];MC = DTMC(P,“StateNames”,(“扩展”“衰退”]);

为两个区域创建单独的AR(0)模型(仅常量)。

西格玛=3.34;%跨州同构模型mdl1=arima('持续的', 4.62,“差异”σ^ 2);mdl2 = arima ('持续的', -0.48,“差异”,σ^2);mdl=[mdl1 mdl2];

创建描述美国GDP增长率的行为马氏切换的动态回归模型。

MDL = msVAR(MC,MDL);

Mdl是完全指定的msVAR对象。

从模型中生成100个响应、相应的创新和状态的随机路径。

RNG(1)%为了再现性[y,e,sp]=模拟(Mdl,100);

Y是GDP比率的100乘1向量,然后呢E是相应创新的100乘1向量。SP.是状态指数的100×1向量。

考虑马尔可夫切换模型模拟美国GDP价格和经济的国家但是假设子模型是AR(1),而是考虑将模型拟合到周期1960中的观测值:Q1—2004:Q2。

创建估算的模型模板。指定AR(1)子模型。

mc=dtmc(NaN(2),“StateNames”,(“扩展”“衰退”])ar1=arima(1,0,0);Mdl=msVAR(mc[ar1;ar1]);

因为子模型是AR(1),每一个都需要一个样品前体观测来初始化其动态部件,用于估计。

创建包含估算过程初始参数值的模型。

MC0 = DTMC(0.5 *酮(2),“StateNames”,(“扩展”“衰退”]);submdl01 = arima ('持续的'1.“差异”1.“AR”,0.001); submdl02=arima('持续的',-1,“差异”1.“AR”,0.001);Mdl0 = msVAR(MC0,[submdl01; submdl02]);

加载数据。将整个集合转换为年化利率序列。

负载国内生产总值数据QRATE = DIFF(数据)./数据(1:(结束 -  1));arate = 100 *((1 + QRATE)^ 4  -  1);

使用与年化利率系列相关联的日期识别预采样和估计采样周期。由于转换应用第一个差异,因此必须从原始样本中删除第一个观察日期。

日期= datetime(日期(2:结束),“ConvertFrom”,'datenum',......“格式”,“yyyy:QQQ”,“区域设置”,'EN_US'); estPrd=日期时间([“1960:Q2”“2004年:Q2”],“InputFormat”,“yyyy:QQQ”,......“格式”,“yyyy:QQQ”,“区域设置”,'EN_US')idxEst=isbetween(日期,estPrd(1),estPrd(2));idxPre=dates
                   

拟合模型来估算样品的数据。指定样品前观察。

y0=阿拉伯酸盐(idxPre);EstMdl=估算值(Mdl,Mdl0,阿拉伯酸盐(idxEst),'Y0',y0);

模拟从在估计周期拟合模型的响应路径。指定样品前观察。

RNG(1)%为了再现性numObs =总和(idx);aratesim =模拟(EstMdl numObs,'Y0',y0);

绘制的意见和年率的模拟路径,并通过识别衰退时期衰退图

图;[arate(idxEst) aratesim]) recessionplot xlabel(“时间”) ylabel (“国内生产总值(GDP)年率”) 传奇(“观察”,“模拟”);

图中包含一个轴对象。轴对象包含类型线,贴片9级的对象。这些对象代表观察,模拟。

使用从已知数据生成处理(DGP)模拟数据评估估计精度。此示例使用任意参数值。

为DGP创建模型

创建一个完全指明的,两状态离散时间马尔可夫链为切换机构的模型。

P = [0.7 0.3;0.1 - 0.9);mc = dtmc (P);

对于每个状态,为响应流程创建一个完全指定的AR(1)模型。

常量%C1 = 5;C2 = 2;%自回归系数AR1=0.4;AR2=0.2;%方差V1=4;V2=2;% AR的子dgp1=arima('持续的'C1,“AR”,AR1,“差异”,V1);dgp2=arima('持续的',C2,“AR”,AR2,“差异”,V2);

为DGP创建完全指定的马尔可夫切换动态回归模型。

文章= msVAR (mc, [dgp1 dgp2]);

模拟来自DGP的响应路径

从DGP生成10条长度为1000的随机响应路径。

rng (1);%为了再现性N = 10;N = 1000;数据=模拟(DGP,N,“Numpaths”,N);

数据是一个1000乘10的模拟响应矩阵。

创建估算模型

创建具有相同的结构,该数据生成处理部分指明的马尔可夫切换动态回归模型,但是指定一个未知的转换矩阵和未知子模型系数。

PEst=NaN(2);mcEst=dtmc(PEst);mdl=arima(1,0,0);Mdl=msVAR(mcEst,[Mdl;Mdl]);

创建包含初始值的模型

创建一个完全指定的马尔可夫转换动态回归模型,该模型的结构与Mdl,但将所有可估计参数设置为初始值。

P0=0.5*个(2);mc0=dtmc(P0);mdl01=arima('持续的'1.“AR”, 0.5,“差异”2);mdl02 = arima ('持续的',-1,“AR”, 0.5,“差异”,1);Mdl0 = msVAR(MC0,[mdl01,mdl02]);

估计模型

将模型拟合到每个模拟路径。对于每个路径,绘制EM算法每次迭代的对数似然。

c1=零(N,1);c2=零(N,1);v1=零(N,1);v2=零(N,1);ar1=零(N,1);ar2=零(N,1);PStack=零(2,2,N);数字保持对于i = 1:N EstModel = estimate(Mdl,Mdl0,Data(:,i))“IterationPlot”,true);c1(i)=EstModel.子模型(1).常数;c2(i)=EstModel.子模型(2).常数;v1(i)=EstModel.子模型(1).协方差;v2(i)=EstModel.子模型(2).协方差;ar1(i)=EstModel.子模型(1).AR{1};ar2(i)=EstModel.子模型(2).AR{1};PStack(:,:,i)=EstModel.Switch.P;终止持有

图中包含一个Axis对象。标题期望最大化算法的Axis对象包含10个line类型的对象。

评估准确性

计算每个估计参数的蒙特卡罗均值。

c1平均值=平均值(c1);c2平均值=平均值(c2);v1平均值=平均值(v1);v2平均值=平均值(v2);ar1平均值=平均值(ar1);ar2平均值=平均值(ar2);PMean=平均值(PStack,3);

将总体参数与相应的蒙特卡罗估计值进行比较。

DGPvsEstimate = [......C1 c1Mean C2 c2Mean V1 v1Mean V2 v2Mean AR1 ar1Mean AR2 ar2Mean]
DGPvsEstimate =6×25.0000 5.0260 -2.0000 -1.9615 4.0000 3.9710 2.0000 1.9903 0.4000 0.4061 0.2000 0.2017
P
P=2×20.7000 0.3000 0.1000 0.9000
PEstimate=PMean
PEstimate =2×20.7065 0.2935 0.1023 0.8977

从二维VARX响应过程的三状态马尔可夫切换动态回归模型生成随机路径。此示例使用DGP的任意参数值。

为DGP创建完全指定的模型

为切换机制创建一个三状态离散时间马尔可夫链模型。

P=[1011;1101;1110];mc=dtmc(P);

mc是完全指定的DTMC对象。DTMC标准化的行P因此,它们的总和为1.

对于每个政体,使用它varm.创建描述制度内响应过程的VAR模型。请指定所有参数值。

常量%C1 = (1, 1);C2 = (2, 2);C3 = [3; 3);%自回归系数AR1={};AR2={[0.50.1;0.50.5]};AR3={[0.25 0;0.0][0;0.25 0]};%回归系数β1的= [1 -1]。β2 = [2 2 -2 -2];素β3= [3 3 3; -3 -3 -3];%创新协方差Sigma1 = [1 -0.1;-0.1 - 1];Sigma2 = [2 -0.2;-0.2 - 2);Sigma3 = [3 -0.3;-0.3 3];% VARX子mdl1 = varm('持续的'C1,“AR”,AR1,“测试版”,β1,“协方差”,Sigma1);mdl2=varm('持续的',C2,“AR”,AR2,“测试版”,Beta2中,“协方差”,Sigma2);mdl3=varm('持续的',C3,“AR”,AR3,“测试版”,Beta3中,“协方差”,Sigma3);mdl=[mdl1;mdl2;mdl3];

mdl包含三个完全指定的varm.模型对象。

对于DGP,从切换机制中创建一个完全指定的马尔可夫切换动态回归模型mc以及子模型mdl

MDL = msVAR(MC,MDL);

Mdl是完全指定的msVAR模型。

忽略回归组件模拟数据

如果不提供外生数据,模拟忽略子模型中的回归组件。从模型中模拟3条独立的响应路径、创新路径和长度为5的状态指数。

rng (1);%为了再现性(Y, E, SP) =模拟(Mdl 5“NumPaths”,3)
Y=Y(:,:,1)=5.23871.5297 4.4290 4.2738 1.1668-1.2905-0.9654-0.2028-0.27010.8993 Y(:,:,2)=2.7737-2.5383-0.8651-1.1046-0.0511 0.3696 0.5826-0.8926-0.4022-0.6912 Y(:,,,:,3)=3.5443 0.8768 4.9748-0.7956 5.7213 0.2473-0.5805.3340-1.797
E = E(:,:,1)= 1.2387 1.5297 -0.3434 2.8896 0.1668 -0.2905 -1.9654 0.7972 -1.2701 1.8993 E(:,:,2)= 1.7737 -1.53​​83 -1.8651 -0.1046 -1.0511 1.3696 -0.4174 0.1074 1.4022 0.3088ë(:,:,3)= -0.4557 0.8768 1.1150 -1.0061 1.3134 0.7176 -0.6941 -0.6838 1.7972 -0.3340
SP=5×32 1 2 2 1 2 1 1 2 1 1 2 1 1 1 2 1 1 1 1 1 1 2 1 1 1 1 1 1

YE分别是5乘2乘3的模拟响应和创新。行对应时间点,列对应系统中的变量,页对应路径。SP.是一个5 × 3矩阵,其列对应路径。

模拟单一路径的反应,创新,并进入长度为50的模拟范围。然后分别绘制每条路径。

rng0=rng;%存储重新生成状态序列的设置。[Y,E,SP] =模拟(MDL,50);图副区(3,1,1)图(Y)ylabel(“响应”)网格传奇([“y_1”“YU 2”])子地块(3,1,2)地块(E)ylabel(“创新”)网格传奇([“e_1”“e_2”])子地块(3,1,3)图(SP,“米”) ylabel (“状态”)yticks([1 2 3])

图中包含3个轴对象。轴加工对象物1包含型线的2个对象。这些对象代表y_1, y_2。轴对象2包含型线的2个对象。这些对象代表E_1,E_2。axis对象3包含一个类型为line的对象。

模拟数据,包括回归组件

从三维标准高斯分布生成50个随机观测值,模拟三个回归器的外生数据。

X=randn(50,3);

生成一个长度为50的随机响应、创新和状态路径。为子模型回归组件指定模拟的外生数据。策划的结果。

rng(rng0);%在先前的模拟中再现状态序列。[Y,E,SP]=模拟(Mdl,50,“X”,X);图形子地块(3,1,1)图(Y)标签(“响应”)网格传奇([“y_1”“YU 2”])子地块(3,1,2)地块(E)ylabel(“创新”)网格传奇([“e_1”“e_2”])子地块(3,1,3)图(SP,“米”) ylabel (“状态”)yticks([1 2 3])

图中包含3个轴对象。轴加工对象物1包含型线的2个对象。这些对象代表y_1, y_2。轴对象2包含型线的2个对象。这些对象代表E_1,E_2。axis对象3包含一个类型为line的对象。

考虑在模型模拟路径从VARx前提子模型模式

创建完全指定型号

创建马尔可夫转换模型,不包括回归组件。

P=[1011;1101;1110];mc=dtmc(P);C1=[1;-1];C2=[2;-2];C3=[3;-3];AR1={};AR2={[0.50.1;0.50.5]};AR3={[0.25 0;0 0][0;0.25 0]};Sigma1=[1-0.1;-0.11];Sigma2=[2-0.2;-0.2];Sigma3=[3-0.3;-0.3];mdl1=varm('持续的'C1,“AR”,AR1,“协方差”,Sigma1);mdl2=varm('持续的',C2,“AR”,AR2,“协方差”,Sigma2);mdl3=varm('持续的',C3,“AR”,AR3,“协方差”,Sigma3);mdl=[mdl1;mdl2;mdl3];MDL = msVAR(MC,MDL);

模拟多条路径

为50个时间步骤生成1000个随机响应路径。在第一个状态开始所有的模拟。

rng(10);%为了再现性S0=[1 0];Y=模拟(Mdl,50,‘S0’,S0,“NumPaths”, 1000);

Y是一个50 × 2 × 1000的模拟响应路径阵列。

计算蒙特卡罗分布

对于每个变量和路径,计算过程均值。

mus=平均值(Y,1);

对于每个变量,绘制过程均值的蒙特卡罗分布。

图h1=直方图(mus(1,1,:),“正常化”,“概率”,......“宽度”,0.1);保持h2=直方图(mus(1,2,:),“正常化”,“概率”,......“宽度”, 0.1);传奇([“y_1”“YU 2”])头衔(“过程方法”)举行

图中包含一个Axis对象。标题为Process Means的Axis对象包含2个直方图类型的对象。这些对象表示y_1,y_2。

对于每个变量和路径,计算过程标准差。

sigmas=std(Y,0,1);

对于每个变量,绘制过程标准偏差的蒙特卡罗分布图。

图H1 =直方图(西格玛(1,1,:),“正常化”,“概率”,......“宽度”, 0.05);持有h2 =直方图(((1、2:)“正常化”,“概率”,......“宽度”, 0.05);传奇([“y_1”“YU 2”])头衔(“过程标准偏差”)举行

图中包含一个轴对象。标题为Process Standard deviation的轴对象包含2个类型直方图对象。这些对象代表y_1, y_2。

输入参数

全部折叠

完全指定的马尔可夫切换动态回归模型,指定为msVAR返回的模型对象msVAR估计。完全指定的模型对象的属性不包含价值观。

为每个样本路径生成的观察数,指定为正整数。

数据类型:双重的

名称值参数

指定可选的逗号分隔的字符对名称,值论据。姓名是参数名和价值为对应值。姓名必须出现在引号内。可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家

例子:'NumPaths',1000, 'Y0',Y0模拟1000样品路径,并通过使用样品前体响应数据初始化每一个子模型的动态分量Y0

要生成的样本路径数,指定为逗号分隔对,由“NumPaths”和一个正整数。

例子:“NumPaths”,1000年

数据类型:双重的

预采样响应数据,指定为逗号分隔对,由'Y0'和数字矩阵或阵列。

用于每个相同的样品前数据努帕斯路径,指定一个numPreSampleObs-借-numSeries矩阵,努帕斯价值是多少努帕斯,numPreSampleObs是采样前观测值的数量,以及numSeries是响应变量的数量。

为每个路径使用不同的预样例数据:

  • 对于单变量ARX子模型,指定numPreSampleObs-借-努帕斯矩阵。

  • 对于多变量VARX子模型,请指定numPreSampleObs-借-numSeries-借-努帕斯数组中。

采样前观测值的数量numPreSampleObs必须足以初始化所有子模型的AR项。如果numPreSampleObs超过任何州的应收账款订单,模拟使用最新的观察结果。

每一次模拟切换状态,它会更新Y0使用最新的模拟观测。

默认情况下,模拟决定了Y0通过子模型的初始状态(见S0):

  • 如果初始子模型是静止AR处理而不回归组件,模拟将采样前观测值设置为无条件平均值。

  • 除此以外,模拟将样本前观察值设置为零。

数据类型:双重的

初始状态概率,指定为逗号分隔对,包括‘S0’和长度的非负数值向量numStates

模拟规格化S0发行发行。

模拟选择来自每个路径的初始状态S0在随机的。从一个特定的初始状态开始,用指定的概率质量分布1.在那种状态下。

默认情况下,模拟设置S0到由以下公式计算的稳态分布:渐近

例子:“S0”,0.2 0.2 0.6

例子:‘S0’,[01]将状态2指定为初始状态。

数据类型:双重的

用于评估模型所有子模型中回归成分的预测数据Mdl,指定为逗号分隔的对,由“X”和数字矩阵或数字矩阵的细胞载体。

要使用在每个国家的预测相同的一个子集,指定X作为具有矩阵裸体列和至少numObs行。列对应不同的预测变量。子模型按顺序使用关联矩阵的初始列,直到子模型预测变量的数量。子模型中的列数bet性质子模型(J)确定子模型回归组件中外生变量的数量J. 如果行数超过numObs然后模拟使用最新的观察结果。

要在每个状态中使用不同的预测器,请指定具有长度的矩阵的单元向量numStates

默认情况下,模拟忽略中的回归组件Mdl

数据类型:双重的

输出参数

全部折叠

模拟响应的路径,返回作为数字矩阵或阵列。Y中的前样例响应的延续Y0

对于单变量ARX子模型,Y是一个numObs-借-努帕斯矩阵。对于多元VARX子模型,Y是一个numObs-借-numSeries-借-努帕斯数组中。

模拟创新的路径,返回作为数字矩阵或阵列。

对于单变量ARX子模型,E是一个numObs-借-努帕斯矩阵。对于多元VARX子模型,E是一个numObs-借-numSeries-借-努帕斯数组中。

模拟状态路径,返回为numObs-借-努帕斯数字矩阵。

参考文献

[1]肖韦,M.,和J. D.哈密尔顿。“约会商业周期的转折点。”在商业周期的非线性分析(《经济分析贡献》第276卷)。(C. Milas, P. Rothman, D. van Dijk编)。阿姆斯特丹:翡翠集团出版有限公司,2006。

[2]汉密尔顿,J.D.“受体制变化影响的时间序列分析。”计量经济学杂志1990年第45卷,第39-70页。

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

另见

物体

功能

在R2019b中引入