过滤

通过向量自回归(VAR)模型来过滤干扰

描述

例子

Y=过滤器(Mdl,Z)返回多元响应序列Y,这是对潜在的多元扰动序列进行滤波的结果Z。的Z系列通过完全指定的VAR(p)模型Mdl

例子

Y=过滤器(Mdl,Z,名称,值)使用由一个或多个名称值对参数中指定的附加选项。例如,您可以指定外源性预测数据或是否通过模型创新协方差矩阵的下三角Cholesky因子来缩放扰动。

例子

(Y,E] =过滤器(___)回归多元模型创新系列E使用前面语法中的任何输入参数。

例子

全部折叠

将VAR(4)模型与消费者价格指数(CPI)和失业率数据进行拟合。然后,通过估计模型对随机分布的一系列高斯扰动进行滤波,模拟响应。

加载Data_USEconModel数据集。

负载Data_USEconModel

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

图;情节(DataTable.Time,DataTable.CPIAUCSL);标题('消费者价格指数');ylabel (“指数”);包含(“日期”);

图;情节(DataTable.Time,DataTable.UNRATE);标题('失业率');ylabel (“百分比”);包含(“日期”);

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

rcpi = price2ret (DataTable.CPIAUCSL);unrate = DataTable.UNRATE(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模型对象。

生成一个numobs随机高斯分布值的-2乘2级数,其中numobs是数据中观察到的个数。

numobs =大小(数据,1);rng (1)%用于重现Z = mvnrnd(零(Mdl.NumSeries,1),眼(Mdl.NumSeries),numobs);

为了模拟响应,通过估计模型对扰动进行滤波。

Y =过滤器(EstMdl, Z);

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

绘制模拟的和真实的响应。

图;情节(Data.Time, Y (: 1));持有;图(Data.Time,Data.rcpi)ylabel('增长率')包含(“日期”)标题(“CPI增速”);传说(“模拟”,'真正')

图;情节(Data.Time,Y(:,2));持有;图(Data.Time,Data.unrate)ylabel(“百分比”);包含(“日期”)标题(“失业率”);传说(“模拟”,'真正')

估计消费者价格指数(CPI)、失业率和国内生产总值(GDP)的VAR(4)模型。包括包含本季度和最后四个季度政府消费支出和投资(GCE)的线性回归成分。通过估计模型传递多元高斯扰动路径。

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

负载Data_USEconModel数据表。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”“全球教育运动”};数据= varfun(@ price2ret,数据表,“数据源”,inputVariables);Data.Properties.VariableNames = inputVariables;Data.UNRATE = DataTable.UNRATE(2:结束);

通过四个滞后值展开GCE率系列,其包括它的当前值的矩阵和向上。去除GCE从变量数据

rgcelag4 = lagmatrix(Data.GCE,0:4);Data.GCE = [];

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

Mdl = varm (3、4);Mdl。SeriesNames = {“rcpi”“unrate”'rgdpg'};

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

EstMdl =估计(Mdl Data.Variables,“X”,rgcelag4);

生成1000个路径numobs从3-d高斯分布的观察。numobs是在数据观测无任何缺失值的数目。

numpaths = 1000;numseries = Mdl.NumSeries;idx = all(~ismissing([Data array2table(rgcelag4)],2);numobs =总和(idx);rng (1);Z = mvnrnd (0 (Mdl.NumSeries, 1)、眼睛(Mdl.NumSeries) numobs * numpaths);Z =重塑(Z, [numobs 3 numpaths]);

通过估计模型过滤干扰。供应的预测数据。返回创新(缩放干扰)。

[Y, E] =过滤器(EstMdl, Z,“X”,rgcelag4);

YE是244×3逐1000矩阵分别过滤反应和缩放的干扰,的。列分别对应于CPI增长率,失业率和GDP增长率。过滤将相同的预测数据应用于所有路径。

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

MeanFilt =平均(Y,3);

MeanFilt是一个244×3矩阵,包含每个时间点上响应的平均值。

绘制过滤后的响应、它们的平均值和数据。

=数据(idx:);图;J = 1:Mdl.NumSeries副区(2,2,j)的积(Data.Time,挤压(Y(:,J,:)),'颜色',0.8,0.8,0.8)标题(Mdl.SeriesNames {j});持有h1 =情节(Data.Time、数据{:,j});h2 =情节(Data.Time MeanFilt (:, j));持有结束HL =图例([H1 H2],'数据','意思');hl.Location =“没有”;hl.Position = [0.6 0.25 hl.Position(3:4)];

输入参数

全部折叠

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

底层与模式创新相关的多因素扰动系列过程中,指定为numobs-通过-numseries数字矩阵或numobs-通过-numseries-通过-numpaths数字数组。

numobs为样本容量。numseries为扰动级数的个数(Mdl.NumSeries)。numpaths为扰动路径数。

行对应于采样时间,最后一行包含最新的扰动集。

列对应响应变量的个体扰动序列。

页面对应于独立的路径。对于数值矩阵,Z是一个单numseries-扰动序列的维路径。对于三维数组,每一页的Z代表一个单独的numseries维路径。在所有页面中,相应行中的扰动同时发生。

“规模”前名称 - 值对参数指定是否缩放扰动过滤他们通过过滤器Mdl。有关更多细节,请参见规模

数据类型:

名称-值对的观点

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

例:“规模”,假的,“X”, X不结垢Z由模型协方差矩阵的下三角的Cholesky因数滤波前,并使用该矩阵X作为回归部件预测数据。

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

numpreobs是预充足观测值的个数。numprepaths是预样本响应路径的数目。

行对应于预充足的观察,最后一行包含最新的预充足的观察。Y0至少Mdl.P行。如果提供的行数超过所需,过滤使用了最新的Mdl.P观察。

列必须与in中的响应系列对应Y

页面对应于独立的路径。

  • 如果Y0是一个矩阵,然后过滤将其应用于其中的每个路径(页)Y。因此,所有的路径都是进来的Y由一般的初始条件推出。

  • 否则,过滤适用于Y0 (:,:j)Y(:,:,j)Y0至少numpaths页,过滤只使用第一个numpaths页面。

在所有页面中,某一行中的观察值同时出现。

默认,过滤设置任何必要的前置观测。

  • 对于没有回归成分的平稳VAR过程,过滤使用无条件平均值 μ = Φ 1 ( l ) c

  • 对于包含回归成分的非平稳过程或模型,过滤集样品前体观测到零组成的阵列。

数据类型:

模型中回归组件的预测数据,指定为逗号分隔对“X”和包含数字矩阵numpreds列。

numpreds为预测变量个数(大小(Mdl.Beta,2))。

行对应于观察值,最后一行包含最新的观察值。X必须有至少一样多的观察结果Z。如果提供的行数超过所需,过滤只使用最新的观察结果。过滤在预采样期间不使用回归组件。

列对应于单个预测变量。所有预测变量都存在于每个响应方程的回归分量中。

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

默认,过滤不包括在回归部件,而不管其存在的Mdl

数据类型:

标志指示扰动是否由模型协方差矩阵的下三角乔莱斯基因子进行标度,指定为逗号分隔对组成“规模”真正的

对于每个页面j= 1,...,numpaths,过滤过滤器的numobs-通过-numseries创新的矩阵E (:,:,j)通过VAR (p)模型Mdl,根据这些条件。

  • 如果规模真正的,然后E (:,:,j)=L * Z (:,:,j)l=胆固醇(Mdl.Covariance,“低”)

  • 如果规模,然后E (:,:,j)=Z (:,:j)

例:“规模”,假的

数据类型:逻辑

请注意

Z,Y0,X表明缺失值。过滤通过列表删除从数据中删除缺失的值。

  1. 如果Z是三维数组吗过滤水平串接的页面Z形成numobs-通过-numpaths * numseries矩阵。

  2. 如果存在回归组件,则过滤横向连接XZ形成numobs-通过-(numpaths * numseries + numpreds)矩阵。过滤假设每个系列的最后几行同时出现。

  3. 过滤删除至少包含一个的行来自连接的数据。

  4. 过滤将步骤1和3应用于预实例路径Y0

这个过程确保了每一路径的滤波响应和创新是相同的大小,并且基于相同的观测时间。在缺失观察的情况下,结果,从多个路径获得Z可以分别从每条路径得到不同的结果。

这种数据缩减减少了有效样本容量。

输出参数

全部折叠

滤波多元响应序列,作为a返回numobs-通过-numseries数字矩阵或numobs-通过-numseries-通过-numpaths数字数组。Y表示预采样响应的延续Y0

多变量模型的创新系列,返回为numobs-通过-numseries数字矩阵或numobs-通过-numseries-通过-numpaths数字数组。值的详细信息E,请参阅规模

算法

  • 过滤单位计算YE对每个页面使用此过程jZ

    1. 如果规模真正的,然后E (:,:,j)=L * Z (:,:,j),其中l=胆固醇(Mdl.Covariance,“低”)。否则,E (:,:,j)=Z (:,:j)。组et=E (:,:,j)

    2. Y(:,:,j)yt在该方程组。

      y t = Φ ^ 1 ( l ) ( c ^ + δ ^ t + e t )

      对于变量的定义,请参阅更多关于

  • 过滤推广模拟。这两个函数都通过一个模型来过滤干扰序列,从而产生响应和创新。然而,而模拟产生一系列均值为零,单位方差,高斯独立的扰动Z形式创新E=L *ž,过滤使您能够提供来自任何分布的干扰。

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

    • 如果不指定Y0,然后t0= 0。

    • 否则,过滤t0大小(Y0,1)- - - - - -Mdl.P。因此,趋势分量中的时间是t=t0+ 1,t0+ 2,…,t0+numobs,其中numobs是有效样本大小(大小(Y,1)过滤去除了缺失值)。这项公约与模型估计的默认行为是一致的,其中估计删除第一个Mdl.P响应,减少有效样本量。虽然过滤显式地使用Mdl.Ppresample反应Y0初始化模型时,总观察次数为Y0Y(排除丢失的值)确定t0

参考

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

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

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

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

介绍了R2017a