模拟

向量自回归(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 = all(~ismissing([rcpi unrate]),2);[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个观测值模拟。将整个数据集指定为presample。

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

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

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

rng默认Z = randn (100 4);

通过估计模型过滤高斯值。将整个数据集指定为presample。

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

YFilter是一个100×4矩阵的模拟响应。列对应于数据中变量的列数据。过滤干扰之前,过滤器尺度ž由下三角乔莱斯基因子的模型协方差EstMdl.Covariance

比较两者之间的结果响应过滤器模拟

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

结果是相同的。

估计消费者价格指数(CPI)、失业率和国内生产总值(GDP)的VAR(4)模型。包括一个线性回归组成部分,包括当前和过去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。通过移除它的第一个观测同步失业率系列与他人。创建包含变量转化一个新的数据集。

数据源= {'CPIAUCSL'“RGDP”“全球教育运动”};Data = varfun (@price2ret DataTable,'InputVariables'、数据源);Data.Properties。VariableNames =数据源;数据。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));保持结束[h1 h2],“数据”“的意思是”);hl.Position = [0.6 0.25 hl.Position(3:4)];

输入参数

全部折叠

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

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

数据类型:

名称-值对的观点

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

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

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

例子:'NumPaths',1000

数据类型:

preample响应为模型提供初始值,指定为逗号分隔的对'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行。

列必须与in中的响应变量名对应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. 水平连接页面形成anumpreobs——- - - - - -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由条件协方差矩阵的下三角乔莱斯基因子。也就是说,Z2=L * Z1,其中大号=胆固醇(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.Ppresample反应Y0初始化模式,观测在总数Y0(不包括任何缺少的值)确定Ť0

参考文献

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

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

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

[4]Lutkepohl, H。多时间序列分析的新介绍。柏林:施普林格出版社,2005年。

介绍了在R2017a