过滤器

利用矢量误差修正(VEC)模型对扰动进行滤波

描述

例子

Y=过滤器(MdlZ返回多变量响应序列Y,其结果是对底层的多元干扰序列进行滤波Z.的Z系列通过完全指定的VEC(p- 1)模型Mdl

例子

Y=过滤器(MdlZ名称,值使用由一个或多个名称-值对参数指定的附加选项。例如,“X”X“规模”,假的指定X为回归分量的外生预测数据,并避免模型创新协方差矩阵的下三角Cholesky因子对扰动的缩放。

例子

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

例子

全部折叠

考虑以下七个宏观经济系列的VEC模型。然后,将模型与数据拟合,并通过拟合模型过滤干扰。

  • 本地生产总值

  • GDP隐含价格平减指数

  • 雇员已付补偿

  • 所有人的非农业业务时间

  • 有效联邦基金利率

  • 个人消费支出

  • 国内私人投资总额

假设协整秩为4且一个短期是合适的,即考虑一个VEC(1)模型。

加载Data_USEconVECModel数据集。

负载Data_USEconVECModel

有关数据集和变量的更多信息,请输入描述在命令行。

确定数据是否需要通过在单独的图上绘制系列来进行预处理。

图;次要情节(2、2、1)情节(FRED.Time FRED.GDP);标题(“国内生产总值”);ylabel (“指数”);包含(“日期”);次要情节(2 2 2)情节(FRED.Time FRED.GDPDEF);标题(“GDP平减指数”);ylabel (“指数”);包含(“日期”);次要情节(2,2,3)情节(FRED.Time FRED.COE);标题(“雇员的已付补偿”);ylabel (数十亿美元的);包含(“日期”);次要情节(2,2,4)情节(FRED.Time FRED.HOANBS);标题(“非农业企业营业时间”);ylabel (“指数”);包含(“日期”);

图;次要情节(2、2、1)情节(FRED.Time FRED.FEDFUNDS);标题(“联邦基金利率”);ylabel (“百分比”);包含(“日期”);次要情节(2 2 2)情节(FRED.Time FRED.PCEC);标题(“消费支出”);ylabel (数十亿美元的);包含(“日期”);次要情节(2,2,3)情节(FRED.Time FRED.GPDI);标题(“私人本地投资总额”);ylabel (数十亿美元的);包含(“日期”);

通过应用对数变换稳定除联邦基金利率外的所有序列。将结果系列按100进行缩放,以便所有系列都在相同的缩放比例上。

弗雷德。国内生产总值= 100 *日志(FRED.GDP);弗雷德。GDPDEF = 100 *日志(FRED.GDPDEF);弗雷德。COE = 100 *日志(FRED.COE);弗雷德。HOANBS = 100 *日志(FRED.HOANBS);弗雷德。PCEC = 100*log(FRED.PCEC); FRED.GPDI = 100*log(FRED.GPDI);

使用简写语法创建VEC(1)模型。指定变量名。

Mdl =结果(7 4 1);Mdl。SeriesNames = FRED.Properties.VariableNames
描述:“具有线性时间趋势的7维Rank = 4 VEC(1)模型”和4更NumSeries: 7等级:4 P: 2常数:[7×1的向量nan]调整:[7×4矩阵nan)协整:[7×4矩阵nan)影响:[7×7矩阵nan] CointegrationConstant:[4×1的向量nan] CointegrationTrend:[4×1的向量nan]短期的:{7×7矩阵nan}在滞后[1]的趋势:[7×1的向量nan]测试:协方差:[7×7 matrix of nan]

Mdl是一个结果模型对象。所有属性包含数值对应于给定数据中要估计的参数。

使用整个数据集和默认选项估计模型。默认情况下,估计使用第一个p= 2个观察值作为样本数据。

FRED.Variables EstMdl =估计(Mdl)
描述:“7维Rank = 4 VEC(1)模型”系列名称:“GDP”“GDPDEF”“COE”…and 4 more NumSeries: 7 Rank: 4 P: 2 Constant:[14.1329 8.77841 -7.20359…]“调整:[7×4 matrix]协整:[7×4 matrix]影响:[7×7 matrix]协整常数:[-28.6082 109.555 -77.0912…and 1 more]' CointegrationTrend: [4×1 vector of zero] ShortRun: {7×7 matrix} at lag [1] Trend: [7×1 vector of zero] Beta: [7×0 matrix] Covariance: [7×7 matrix]

EstMdl是一个估计结果模型对象。它是完全指定的,因为所有参数都有已知的值。默认情况下,估计通过从模型中去除协整趋势和线性趋势项,施加H1 Johansen VEC模型形式的约束。从估计中排除参数等价于将等式约束为零。

生成一个numobs-by-7的随机高斯分布值序列,其中numobs是数据中观测的次数减去吗p

nummobs = size(FRED,1) - Mdl.P;rng (1)%的再现性Z = randn (numobs Mdl.NumSeries);

为了模拟响应,通过估计模型过滤干扰。指定第一个p= 2个观察值作为样本数据。

Y =过滤器(EstMdl, Z,“Y0”弗雷德,{1:2,:});

Y是一个238乘7的模拟响应矩阵。列对应于中的变量名EstMdl。SeriesNames

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

图;次要情节(2,2,1)情节(FRED.Time(3:结束),[FRED.GDP(3:结束)Y (: 1)));标题(“国内生产总值”);ylabel (“指数(了)”);包含(“日期”);传奇(“模拟”“真正的”“位置”“最佳”次要情节(2,2,2)情节(FRED.Time(3:结束),[FRED.GDPDEF(3:结束)Y (:, 2)));标题(“GDP平减指数”);ylabel (“指数(了)”);包含(“日期”);传奇(“模拟”“真正的”“位置”“最佳”次要情节(2,2,3)情节(FRED.Time(3:结束),[FRED.COE(3:结束)Y (:, 3)));标题(“雇员的已付补偿”);ylabel (数十亿美元(按比例计算));包含(“日期”);传奇(“模拟”“真正的”“位置”“最佳”次要情节(2,2,4)情节(FRED.Time(3:结束),[FRED.HOANBS(3:结束)Y (:, 4)));标题(“非农业企业营业时间”);ylabel (“指数(了)”);包含(“日期”);传奇(“模拟”“真正的”“位置”“最佳”

图;次要情节(2,2,1)情节(FRED.Time(3:结束),[FRED.FEDFUNDS(3:结束)Y (:, 5)));标题(“联邦基金利率”);ylabel (“百分比”);包含(“日期”);次要情节(2 2 2)情节(FRED.Time(3:结束),[FRED.PCEC(3:结束)Y (:, 6)));标题(“消费支出”);ylabel (数十亿美元(按比例计算));包含(“日期”);次要情节(2,2,3)情节(FRED.Time(3:结束),[FRED.GPDI(3:结束)Y (:, 7)));标题(“私人本地投资总额”);ylabel (数十亿美元(按比例计算));包含(“日期”);

考虑三个假设响应系列的VEC(1)模型。

Δ y t c + 一个 B y t - 1 + Φ 1 Δ y t - 1 + ε t - 1 - 3. - 3. 0 + - 0 3. 0 3. - 0 2 0 1 - 1 0 0 1 - 0 2 0 2 - 0 7 0 5 0 2 y t - 1 + 0 0 1 0 2 0 2 - 0 2 0 0 7 - 0 2 0 3. Δ y t - 1 + ε t

创新点是均值为0的多元高斯函数和协方差矩阵

Σ 1 3. 0 4 1 6 0 4 0 6 0 7 1 6 0 7 5

为参数值创建变量。

调整= [-0.3 0.3;-0.2 - 0.1;1 0];协整= [0.1 -0.7;-0.2 - 0.5;0.2 - 0.2);短期的={[0。0.1 - 0.2;0.2 - -0.2 0;0.7 -0.2 0.3]}; Constant = [-1; -3; -30]; Trend = [0; 0; 0]; Covariance = [1.3 0.4 1.6; 0.4 0.6 0.7; 1.6 0.7 5];

创建一个结果模型对象使用适当的名称-值对参数表示VEC(1)模型。

Mdl =结果(“调整”调整,协整的协整,...“不变”常数,“短期的”短期的,“趋势”的趋势,...协方差的协方差)
Mdl =结果属性:描述:“三维等级VEC(1) = 2模式”SeriesNames:“日元”“Y2”“Y3”NumSeries: 3级:2 P: 2常数:(1 -30)的调整:[3×2矩阵]协整:[3×2矩阵)影响:[3×3矩阵]CointegrationConstant:[2×1的向量nan] CointegrationTrend:[2×1的向量nan]短期运转:{3×3 matrix} at lag [1] Trend: [3×1 vector of zero] Beta: [3×0 matrix]协方差:[3×3 matrix]

Mdl是否,有效地,完全指定结果模型对象。即协整常数和线性趋势是未知的。然而,由于总常数和趋势参数是已知的,因此不需要它们来模拟观测或预测。

从三维高斯分布生成100个观测的1000条路径。numobs为数据中不丢失任何值的观测次数。

numobs = 100;numpaths = 1000;rng (1);Z = randn (numobs Mdl.NumSeries numpaths);

通过估计模型对干扰进行滤波。返回创新(大规模扰动)。

[Y, E] =过滤器(Mdl, Z);

YE分别是100 × 3 × 1000的滤波响应和缩放扰动矩阵。

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

MeanFilt =意味着(Y, 3);

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

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

图;j = 1: Mdl。NumSeriessubplot(2,2,j) plot(squeeze(Y(:,j,:)),“颜色”, 0.8, 0.8, 0.8)标题(Mdl.SeriesNames {j});持有情节(MeanFilt (:, j));包含(“时间指数”)举行结束

输入参数

全部折叠

VEC模型,指定为结果模型对象由结果估计Mdl必须完全指定。

与模型创新过程相关的多元干扰序列,指定为anumobs——- - - - - -numseries数字矩阵numobs——- - - - - -numseries——- - - - - -numpaths数字数组。

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

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

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

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

“规模”名称-值对参数指定是否缩放之前的扰动过滤器他们通过过滤器Mdl.有关详细信息,请参见规模

数据类型:

名称-值对的观点

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

例子:“规模”,假的,“X”,X规模不Z通过对模型协方差矩阵的下三角Cholesky因子进行滤波,并使用该矩阵X作为回归分量中的预测数据。

为模型提供初始值的预采样响应Mdl,指定为逗号分隔的对,由“Y0”和一个numpreobs——- - - - - -numseries数字矩阵numpreobs——- - - - - -numseries——- - - - - -numprepaths数字数组。

numpreobs为前样本观察数。numprepaths为前采样响应路径的个数。

行对应于前样例观察,最后一行包含最新的前样例观察。Y0必须至少Mdl。P行。如果您提供了多余的行,过滤器使用了最新的Mdl。P观察。

列必须对应于中的响应序列Y

页面对应于独立的路径。

  • 如果Y0是一个矩阵过滤器将其应用于中的每个路径(页)Y.因此,所有路径都在Y由常见的初始条件导出。

  • 否则,过滤器适用于Y0 (:,:jY (:,:jY0必须至少numpaths页,过滤器只使用第一个numpaths页面。

在所有页面中,对某一行的观察是同时发生的。

默认情况下,过滤器设置任何必要的前样观察。

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

  • 对于包含回归组件的非平稳过程或模型,过滤器将样本前观察值设置为由零组成的数组。

数据类型:

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

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

行对应于观察值,最后一行包含最新的观察值。X至少有和Z.如果您提供了多余的行,过滤器只使用最新的观察结果。过滤器不使用前样本期间的回归组件。

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

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

默认情况下,过滤器排除回归组件,无论它在Mdl

数据类型:

表示是否用模型协方差矩阵的下三角choolesky因子缩放扰动的标志,指定为逗号分隔对组成“规模”真正的

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

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

  • 如果规模,然后E (:,:,jZ (:,:j

例子:“规模”,假的

数据类型:逻辑

请注意

ZY0,X显示缺失值。过滤器通过列表删除从数据中删除缺失的值。

  1. 如果Z是三维阵列吗过滤器水平连接的页面Z形成一个numobs——- - - - - -numpaths * numseries矩阵。

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

  3. 过滤器移除包含至少一个元素的任何行从连接的数据。

  4. 过滤器对中的前样例路径应用步骤1和步骤3Y0

这一过程确保过滤后的响应和每条路径的创新是相同的大小和基于相同的观测时间。在缺少观测的情况下,从多个路径获得的结果Z可以不同于从每条路径单独获得的结果。

这种类型的数据缩减减少了有效的样本量。

输出参数

全部折叠

过滤的多元响应系列,返回为numobs——- - - - - -numseries数字矩阵numobs——- - - - - -numseries——- - - - - -numpaths数字数组。Y中的前样例响应的延续Y0

多元模型创新系列,作为一种回归numobs——- - - - - -numseries数字矩阵numobs——- - - - - -numseries——- - - - - -numpaths数字数组。有关价值的详情E,请参阅规模

算法

  • 过滤器计算YE对每个页面使用这个过程jZ

    1. 如果规模真正的,然后E (:,:,jL * Z (:,:,j,在那里l胆固醇(Mdl.Covariance,“低”).否则,E (:,:,jZ (:,:j.集etE (:,:,j

    2. Y (:,:jyt在这个方程组中。

      Δ y t Φ 1 l c + d t + 一个 B y t 1 + β x t + e t

      有关变量定义,请参见向量误差修正模型

  • 过滤器概括模拟.这两个函数都通过模型过滤扰动序列,产生响应和创新。然而,而模拟产生一系列均值-零、单位-方差、独立高斯扰动Z形式创新EL * Z过滤器使您能够从任何分布供应干扰。

  • 过滤器用这个过程来确定时间原点t0包括线性时间趋势的模型。

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

    • 否则,过滤器t0大小(Y0, 1)- - - - - -Mdl。P.因此,趋势分量中的次数为tt0+ 1,t0+ 2,…,t0+numobs,在那里numobs为有效样本量(大小(Y, 1)过滤器删除缺失值)。这种约定与模型估计的默认行为是一致的估计删除第一个Mdl。P响应,减少了有效样本量。虽然过滤器显式使用第一个Mdl。Ppresample反应Y0为了初始化模型,在Y0Y(不包括丢失的值)确定t0

参考文献

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

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

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

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

另请参阅

对象

功能

介绍了R2017b