模拟

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

描述

ÿ=模拟(MDLnumobs返回一个随机numobs的多变量响应系列-period路径(ÿ)从模拟完全指定VAR(p)模型MDL

ÿ=模拟(MDLnumobs名称,值使用由一个或多个名称值对参数中指定的附加选项。例如,您可以指定多个路径,外生的预测数据,或列入了条件模拟未来应对模拟。

[ÿË] =模拟(___返回模式创新Ë使用任何在前面的语法输入参数。

例子

全部收缩

飞度VAR(4)模型的居民消费价格指数(CPI)和失业率数据。然后,模拟从估计模型的响应。

加载Data_USEconModel数据集。

加载Data_USEconModel

绘制在不同的地块两大系列。

数字;情节(DataTable.Time,DataTable.CPIAUCSL);标题('消费者价格指数');ylabel('指数');xlabel('日期');

数字;情节(DataTable.Time,DataTable.UNRATE);标题('失业率');ylabel('百分');xlabel('日期');

通过将其转换为一系列增长率的稳定CPI。通过从失业率系列的第一观察同步两大系列。创建包含变量转化一个新的数据集,并且不包括包含至少一个缺少观察任何行。

RCPI = price2ret(DataTable.CPIAUCSL);unrate = DataTable.UNRATE(2:结束);日期= DataTable.Time(2:结束);IDX =所有(〜ISMISSING([RCPI unrate]),2);数据= array2timetable([RCPI(IDX)unrate(IDX)],...'RowTimes',DataTable.Time(IDX),'VariableNames'{'RCPI''unrate'});

创建使用语法速记默认VAR(4)模型。

MDL = varm(2,4);

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

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

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

从所估计的模型长度等于在数据路径模拟响应串联路径。

RNG(1);%用于重现numobs =大小(数据,1);Y =模拟(EstMdl,numobs);

ÿ是模拟响应的245×2矩阵。第一和第二列包含模拟CPI增速和失业率,分别。

画出模拟的和真实的回应。

数字;情节(Data.Time,Y(:,1));保持;图(Data.Time,Data.rcpi)称号(“CPI增速”);ylabel('增长率');xlabel('日期');传说('模拟''真正'

数字;情节(Data.Time,Y(:,2));保持;图(Data.Time,Data.unrate)ylabel('百分');xlabel('日期');标题('失业率');传说('模拟''真正'

说明之间的关系模拟过滤通过估计4维VAR(2)在约翰森的丹麦数据集的四个响应一系列模型。模拟的使用拟合模型和历史数据作为初始值响应的单个路径,然后通过估计模型使用相同的样品前体反应过滤一组随机高斯干扰。

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

加载Data_JDanish

有关变量的详细信息,请描述

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

MDL = varm(4,2);

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

EstMdl =估计(MDL,数据);

当再现的结果模拟过滤,它采取这些行动是非常重要的。

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

  • 指定使用相同的样品前体响应数据'Y0'名称 - 值对的参数。

设置默认的随机种子。通过所估计的模型传递到模拟100个观测模拟。指定整个数据集作为样品前。

RNG默认YSim =模拟(EstMdl,100,'Y0',数据);

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

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

RNG默认Z = randn(100,4);

通过估计模型筛选高斯值。指定整个数据集作为样品前。

YFilter =滤波器(EstMdl,Z,'Y0',数据);

YFilter是模拟响应的100乘4矩阵。列对应于变量的数据列数据。过滤干扰之前,过滤ž通过在模型协方差的下三角的Cholesky因数EstMdl.Covariance

比较之间所产生的反应过滤模拟

(YSim  -  YFilter)“*(YSim  -  YFilter)
ANS =4×40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

结果是相同的。

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

加载Data_USEconModel数据集。计算的实际国内生产总值。

加载Data_USEconModelDataTable.RGDP = DataTable.GDP./DataTable.GDPDEF*100;

绘制在不同地块的所有变量。

数字;副区(2,2,1)情节(DataTable.Time,DataTable.CPIAUCSL);ylabel('指数');标题('消费者价格指数');副区(2,2,2)情节(DataTable.Time,DataTable.UNRATE);ylabel('百分');标题('失业率');副区(2,2,3-)情节(DataTable.Time,DataTable.RGDP);ylabel(“输出”);标题(“实际国内生产总值”);副区(2,2,4)情节(DataTable.Time,DataTable.GCE);ylabel(“$十亿”);标题(“政府支出);

每个转换成一连串增长率的稳定CPI,GDP和GCE。通过移除它的第一个观测同步失业率系列与他人。创建包含变量转化一个新的数据集。

inputVariables = {'CPIAUCSL''RGDP''GCE'};数据= varfun(@ price2ret,数据表,'InputVariables',inputVariables);Data.Properties.VariableNames = inputVariables;Data.UNRATE = DataTable.UNRATE(2:结束);日期= DataTable.Time(2:结束);

通过四个滞后值展开GCE率系列,其包括它的当前值的矩阵和向上。去掉GCE和含有从任何缺失值的观测数据

rgcelag4 = lagmatrix(Data.GCE,0:4);IDX =所有(〜ISMISSING([数据表(rgcelag4)]),2);数据=数据(IDX,:);Data.GCE = [];

创建使用语法速记默认VAR(4)模型。

MDL = varm(3,4);Mdl.SeriesNames = [“RCPI”“unrate”“rgdpg”]。

估计使用整个样品的模型。指定GCE矩阵作为回归分量的数据。

EstMdl =估计(MDL,Data.Variables,'X',rgcelag4);

模拟从估计的模型1000点的路径。指定该路径的长度是相同的数据,而没有任何缺失值的长度。供应的预测数据。返回创新(缩放干扰)。

numpaths = 1000;numobs =大小(数据,1);RNG(1);%用于重现[Y,E] =模拟(EstMdl,numobs,'X',rgcelag4,'NumPaths',numpaths);

ÿ是模拟响应的244×3逐1000矩阵。Ë是一个矩阵,它的尺寸对应于的尺寸ÿ,但代表了模拟,比例失调。列分别对应于CPI增长率,失业率和GDP增长率。模拟应用相同的预测数据的所有路径。

对于每个时间点,计算所有路径中的模拟响应的均值向量。

MeanSim =平均值(Y,3);

MeanSim是244×3含有平均的模拟响应中的每个时间点矩阵。

画出模拟反应,它们的平均值,和数据。

数字;对于J = 1:Mdl.NumSeries副区(2,2,j)的积(Data.Time,挤压(Y(:,J,:)),'颜色'[0.8,0.8,0.8])标题(Mdl.SeriesNames {Ĵ});保持H1 =情节(Data.Time,数据{:,J});H2 =情节(Data.Time,MeanSim(:,J));保持结束HL =图例([H1 H2],'数据''意思');hl.Position = [0.6 0.25 hl.Position(3:4)];

输入参数

全部收缩

VAR模型,指定为varm模型对象的创建varm要么估计MDL必须充分指定。

随机观察每数输出路径,以产生,指定为正整数。输出参数ÿËnumobs行。

数据类型:

名称 - 值对参数

指定可选的用逗号分隔的对名称,值参数。名称是参数的名称和是对应的值。名称必须出现引号内。您可以按照任何顺序指定多个名称和值对参数名1,值1,...,NameN,值N

例:'Y0',Y0, 'X',X采用矩阵Y0作为样品前体的反应和基质X作为回归部件预测数据。

的样品路径数来生成,指定为逗号分隔的一对组成的'NumPaths'和一个正整数。输出参数ÿËNumPaths页面。

例:'NumPaths',1000

数据类型:

样品前体的反应提供的初始值对于模型,指定为逗号分隔的一对组成的'Y0'numpreobs-通过-numseries数字矩阵或numpreobs-通过-numseries-通过-numprepaths数字数组。

numpreobs是样品前体观测值的数量。numseries是(的响应系列数Mdl.NumSeries)。numprepaths是的样品前体反应路径的数量。

行对应于样品前的观察,最后一行包含最新的样品前观察。Y0必须至少有Mdl.P行。如果你超过必要提供更多的行,模拟采用了最新的Mdl.P只有观察。

列必须对应于响应系列名称Mdl.SeriesNames

页对应于单独的,独立的路径。

  • 如果Y0是一个矩阵,然后模拟其应用于模拟每个样本路径(页)。因此,在输出参数的所有路径ÿ从共同的初始条件获得。

  • 除此以外,模拟适用Y0(:,:,Ĵ初始化模拟路径ĴY0必须至少有numpaths页(见NumPaths),和模拟只使用第numpaths页面。

默认,模拟设置必要的样品前观察。

  • 对于没有回归部件固定VAR工艺,模拟套样品前观测无条件均值 μ = Φ - 1 大号 C

  • 对于非平稳过程或包含回归组件模型,模拟套样品前观察到零。

数据类型:

在模型回归部件预测数据,指定为逗号分隔的一对组成的'X'和包含数字矩阵numpreds列。

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

行对应于观测,最后一行包含最新的观察。X必须至少有numobs行。如果你超过必要提供更多的行,模拟只有最新的使用numobs观察结果。模拟在样品前期间不使用回归成分。

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

模拟适用X每个路径(页);那是,X表示观察到的预测结果的一个路径。

默认,模拟不包括在回归部件,而不管其存在的MDL

数据类型:

未来响应多元系列条件模拟,指定为逗号分隔的一对组成的'YF'和含有数字矩阵或阵列numseries列。

行对应于在模拟地平线观察,第一行是最早观察。具体来说,行Ĵ在样本路径ķYF(Ĵ,:,ķ)包含响应Ĵ时间到未来。YF必须至少有numobs行覆盖模拟地平线。如果你超过必要提供更多的行,模拟只使用第numobs行。

列必须对应于响应变量名Mdl.SeriesNames

页对应于样品的路径。具体而言,路径ķYF(:,:,ķ)捕获响应一系列的状态,或知识,因为它们从样品前体过去演变(Y0)的未来。

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

  • 除此以外,YF必须至少有numpaths页面。如果提供超过所需的网页,模拟只使用第numpaths页面。

要点YF可以是数字标量或丢失的值(由指示为NaN值)。模拟对待数字标量为事先已知的,例如确定未来的响应,由策略设置。模拟模拟相应的反应为NaN值条件上的已知值。

默认,YF是一个数组组成的为NaN值表示完全缺乏所有模拟响应的未来状态的知识。因此,模拟获得输出响应ÿ从常规的,无条件的蒙特卡洛模拟。

有关详细信息,请参阅算法

例:考虑模拟四个响应系列三个时期到未来组成的VAR模型的一条路径。假设您有一些响应的未来值的先验知识,并且要模拟未知的反应条件对你的知识。指定YF为包含你知道值的矩阵,并使用为NaN为值,您不知道,但要模拟。例如,'YF',[NaN的2 5为NaN;楠楠0.1的NaN;楠楠楠楠]指定你有没有第一和第四响应系列的未来值的知识;你知道在第二个响应一系列期间1的值,但没有其他价值;并且知道在第三响应系列周期1和2的值,但不为周期3的值。

数据类型:

注意

为NaN价值观Y0X表明缺失值。模拟通过删除列表删除明智失踪的数据值。如果Y0是一个3 d阵列,然后模拟执行这些步骤。

  1. 横向串连的页面形式numpreobs-通过-numpaths * numseries矩阵。

  2. 删除包含至少一个任意行为NaN从串联数据。

在缺失观察的情况下,结果,从多个路径获得Y0可以根据从每个单独的路径得到的结果不同。

对于条件模拟(见YF),如果X包含最新的任何遗漏值numobs观察,然后模拟抛出一个错误。

输出参数

全部收缩

模拟多元响应系列,返回为numobs-通过-numseries数字矩阵或numobs-通过-numseries-通过-numpaths数字数组。ÿ代表了样品前体反应的延续Y0

如果指定了使用条件模拟未来反应YF名称 - 值对的参数,然后在已知的值YF出现在相同的位置ÿ。然而,ÿ包含模拟值在缺失观察YF

模拟多元模式创新系列,返回为numobs-通过-numseries数字矩阵或numobs-通过-numseries-通过-numpaths数字数组。

如果指定条件模拟未来应对(见YF名称 - 值对的参数),则模拟推断从已知值在创新YF并把推断的创新,在相应的位置Ë。对于丢失的意见YF模拟从任何已知的值的高斯分布条件绘制,并放置在绘制在相应的位置上Ë

算法

  • 模拟通过执行此过程中的所有页面条件模拟ķ= 1,...,numpaths并且每次Ť= 1,...,numobs

    1. 模拟推断(或逆滤波器)的创新E(Ť,:,ķ从已知的未来回应YF(Ť,:,ķ。对于E(Ť,:,ķ模拟模仿的模式为NaN出现在值YF(Ť,:,ķ

    2. 对于丢失的元素E(Ť,:,ķ模拟执行这些步骤。

      1. Z1中,随机,标准高斯分布干扰对的已知元件的条件E(Ť,:,ķ

      2. 规模Z1由条件协方差矩阵的下三角的Cholesky因数。那是,Z2=L * Z1,其中大号=CHOL(C, '下')C是有条件的高斯分布的协方差。

      3. 归罪Z2代替相应的遗漏值的E(Ť,:,ķ

    3. 在遗漏值YF(Ť,:,ķ模拟通过模型筛选相应的随机创新MDL

  • 模拟使用此过程来确定时间原点Ť0的模型,包括线性时间趋势。

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

    • 除此以外,模拟Ť0大小(Y0,1)-Mdl.P。因此,在趋势成分的时间Ť=Ť0+ 1,Ť0+ 2,...,Ť0+numobs。这项公约与模型估计的默认行为是一致的,其中估计除去第一Mdl.P反应,减少了有效样本大小。虽然模拟明确地使用第一Mdl.P在样品前回应Y0初始化模式,观测在总数Y0(不包括任何缺少的值)确定Ť0

参考

[1]汉密尔顿,J. D.时间序列分析。普林斯顿,NJ:普林斯顿大学出版社,1994年。

[2]约翰森S.在协整向量自回归模型的可能性为基础的推理。牛津:牛津大学出版社,1995年。

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

[4]Lütkepohl,H.新介绍多时间序列分析。柏林:施普林格,2005年。

介绍了在R2017a