主要内容

过滤器

利用矢量误差校正(VEC)模型滤波干扰

描述

例子

Y=过滤器(MdlZ返回数值数组。Y包含通过过滤底层输入数字数组而得到的多元响应序列Z包含多元扰动序列。这个系列Z通过完全指定的VEC(p- 1)模型Mdl

例子

YE= filter(MdlZ返回包含多元模型创新系列的数值数组E

例子

Tbl2=过滤器(MdlTbl1Presample =Presample返回表格或时间表Tbl2包含多元响应序列,其结果来自过滤输入表或时间表中的底层多元扰动序列Tbl1过滤器中使用所需的预采样数据表或时间表初始化响应系列Presample.变量Tbl1是否与模式创新过程相关联Mdl

过滤器中的变量Mdl。SeriesNames或者所有的变量Tbl1.选择不同的扰动变量Tbl1要对模型进行筛选,请使用DisturbanceVariables名称-值参数。过滤器选择相同的变量Presample属性,但可以选择不同的变量PresampleResponseVariables名称-值参数。

例子

___= filter(___名称,值除以前语法中的任何输入参数组合外,还使用一个或多个名称-值参数指定选项。过滤器返回对应输入参数的输出参数组合。例如,过滤器(Mdl, Z, Y0 = PS, X =挂式)过滤干扰的数值数组Z通过VEC(p- 1)模型Mdl,并指定预采样响应数据的数值数组PS以及外生预测数据的数值矩阵挂式对于模型回归组件。

例子

全部折叠

考虑以下七个宏观经济系列的VEC模型。然后,将模型与数据进行拟合,通过拟合模型对扰动进行滤波。以数值矩阵的形式提供扰动。

  • 国内生产总值(GDP)

  • GDP隐性价格平减指数

  • 员工薪酬

  • 所有人的非农业务部门工作时间

  • 实际联邦基金利率

  • 个人消费支出

  • 国内私人投资总额

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

加载Data_USEconVECModel数据集。

负载Data_USEconVECModel

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

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

图平铺布局(2,2)nexttile plot(FRED.Time,FRED.GDP)“本地生产总值”) ylabel (“指数”)包含(“日期”nexttile plot(FRED.Time,FRED.GDPDEF)“GDP平减指数”) ylabel (“指数”)包含(“日期”nexttile plot(FRED.Time,FRED.COE)“雇员的已付补偿”) ylabel (“数十亿美元”)包含(“日期”nexttile的用法和样例:“非农业行业营业时间”) ylabel (“指数”)包含(“日期”

图中包含4个轴对象。轴对象1,标题为国内生产总值,xlabel日期,ylabel索引包含一个类型为line的对象。标题为GDP Deflator, xlabel Date, ylabel Index的Axes对象2包含一个类型为line的对象。标题为Paid Compensation of Employees, xlabel Date, ylabel数十亿of $的Axes对象3包含一个类型为line的对象。标题为Nonfarm Business Sector Hours, xlabel Date, ylabel Index的Axes对象4包含一个类型为line的对象。

图tiledlayout(2,2) nexttile plot(FRED.Time,FRED.FEDFUNDS)“联邦基金利率”) ylabel (“百分比”)包含(“日期”nexttile plot(FRED.Time,FRED.PCEC)“消费支出”) ylabel (“数十亿美元”)包含(“日期”nexttile plot(FRED.Time,FRED.GPDI)“本地私人投资总额”) ylabel (“数十亿美元”)包含(“日期”

图中包含3个轴对象。标题为联邦基金利率,xlabel日期,ylabel百分比的Axes对象1包含一个类型为line的对象。标题为Consumption expenditure, xlabel Date, ylabel数十亿of $的Axes对象2包含一个类型为line的对象。标题为Gross Private Domestic Investment, xlabel Date, ylabel billion of $的Axes对象3包含一个类型为line的对象。

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

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

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

Mdl = vecm(7,4,1);Mdl。SeriesNames = FRED.Properties.VariableNames
Mdl = vecm与属性:说明:“7维秩= 4 VEC(1)模型与线性时间趋势”SeriesNames:“GDP”“GDPDEF”“COE”…和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×0]:[7×7矩阵nan)

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

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

EstMdl =估计(Mdl,FRED.Variables)
EstMdl = vecm属性:描述:“7维Rank = 4 VEC(1)模型”SeriesNames:“GDP”“GDPDEF”“COE”…和4更多NumSeries: 7排名:4 P: 2常量:[14.1329 8.77841 -7.20359…调整:[7×4矩阵]协整:[7×4矩阵]影响:[7×7矩阵]协整常量:[-28.6082 109.555 -77.0912…and 1 more]' CointegrationTrend: [4×1 vector of zero] ShortRun: {7×7 matrix} at lag[1]趋势:[7×1 vector of zero] Beta: [7×0 matrix]协方差:[7×7 matrix]

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

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

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

为了模拟响应,通过估计模型对扰动进行滤波。指定第一个p= 2个观测数据作为预样本数据。

Y = filter(EstMdl,Z,Y0=FRED{1:2,:});

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

绘制模拟反应和真实反应。

图tiledlayout(2,2) nexttile plot(FRED.Time(3:end),[FRED.GDP(3:end) Y(:,1)]) title(“本地生产总值”) ylabel (”指数(了)”)包含(“日期”)传说(“模拟”“真正的”“位置”“最佳”nexttile plot(FRED.Time(3:end),[FRED.GDPDEF(3:end) Y(:,2)]) title(“GDP平减指数”) ylabel (”指数(了)”)包含(“日期”)传说(“模拟”“真正的”“位置”“最佳”) nexttile plot(FRED.Time(3:end),[FRED.COE(3:end) Y(:,3)])“雇员的已付补偿”) ylabel (“数十亿美元(按比例)”)包含(“日期”)传说(“模拟”“真正的”“位置”“最佳”) nexttile plot(FRED.Time(3:end),[FRED.HOANBS(3:end) Y(:,4)])“非农业行业营业时间”) ylabel (”指数(了)”)包含(“日期”)传说(“模拟”“真正的”“位置”“最佳”

图中包含4个轴对象。轴对象1,标题为国内生产总值,xlabel日期,ylabel指数(缩放)包含2个类型行对象。这些对象代表模拟,True。标题为GDP平减指数,xlabel日期,ylabel指数(缩放)的坐标轴对象2包含2个类型为line的对象。这些对象代表模拟,True。标题为Paid Compensation of Employees, xlabel Date, ylabel数十亿美元(按比例)的Axes对象3包含2个类型为line的对象。这些对象代表模拟,True。标题为非农业务部门小时,xlabel日期,ylabel索引(缩放)的Axes对象4包含2个类型为line的对象。这些对象代表模拟,True。

图tiledlayout(2,2) nexttile plot(FRED.Time(3:end),[FRED.FEDFUNDS(3:end) Y(:,5)]) title(“联邦基金利率”) ylabel (“百分比”)包含(“日期”) nexttile plot(FRED.Time(3:end),[FRED.PCEC(3:end) Y(:,6)]) title(“消费支出”) ylabel (“数十亿美元(按比例)”)包含(“日期”nexttile plot(FRED.Time(3:end),[FRED.GPDI(3:end) Y(:,7)]) title(“本地私人投资总额”) ylabel (“数十亿美元(按比例)”)包含(“日期”

图中包含3个轴对象。标题为联邦基金利率,xlabel日期,ylabel百分比的Axes对象1包含2个类型为line的对象。axis对象2,标题为消费支出,xlabel日期,ylabel数十亿美元(缩放),包含2个类型为line的对象。坐标轴对象3,标题为私人国内投资总额,xlabel日期,ylabel数十亿美元(缩放),包含2个类型为line的对象。

考虑三个假设响应序列的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);ShortRun = {[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 = vecm(“调整”调整,协整的协整,...“不变”常数,“短期的”短期的,“趋势”的趋势,...协方差的协方差)
Mdl = vecm带属性:描述:“三维Rank = 2 VEC(1)模型”SeriesNames:“Y1”“Y2”“Y3”NumSeries: 3 Rank: 2 P: 2常数:[-1 -3 -30]'调整:[3×2矩阵]协整:[3×2矩阵]影响:[3×3矩阵]协整常量:[2×1向量的NaNs]协整趋势:[2×1向量的NaNs] ShortRun: {3×3矩阵}在滞后[1]趋势:[3×1向量的零]Beta: [3×0矩阵]协方差:[3×3矩阵]

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

从三维高斯分布中生成100个观测值的1000条路径。numobs是数据中没有任何缺失值的观察数。

Numobs = 100;Numpaths = 1000;rng (1);Z = randn(nummobs, mll . numseries,numpaths);

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

[Y,E] = filter(Mdl,Z);

Y而且E分别为100 × 3 × 1000矩阵的滤波响应和缩放扰动。

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

MeanFilt = mean(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));包含(“时间指数”)举行结束

图中包含3个轴对象。轴对象1,标题为Y1, xlabel时间索引包含1001个类型为line的对象。axis对象2,标题为Y2, xlabel时间索引包含1001个类型为line的对象。轴对象3,标题为Y3, xlabel时间索引包含1001个类型为line的对象。

拟合VEC(1)模型到7个宏观经济序列。然后,通过估计模型滤波高斯分布扰动的多个随机路径,模拟响应。在时间表中提供干扰。本例是基于拟合VEC(1)模型与响应数据矩阵

加载和预处理数据

加载Data_USEconVECModel数据集。

负载Data_USEconVECModel头(FRED)
时间GDP GDPDEF COE HOANBS FEDFUNDS PCEC GPDI ___________ ___________ ___________ ________ _________ 31-Mar-1957 470.6 16.485 260.6 54.756 2.96 282.3 77.7 30- june -1957 472.8 16.601 265.1 54.639 3 284.6 77.9 30- 9 -1957 480.3 16.701 265.1 54.375 3.47 289.2 79.3 31- 12 -1957 475.7 16.711 263.7 53.249 2.98 290.8 71 31-Mar-1958 468.4 16.892 269.9 51.297 0.93 293.2 65.1 30- 9 -1958 486.7 17.043 267.7 51.908 1.76 298.3 72 31- 12 -1958 500.4 17.123272.7 52.683 2.42 302.2 80

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

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

准备评估时间表

当你计划直接提供时间表进行估算时,你必须确保它具备以下所有特征:

  • 所有选择的响应变量都是数字,不包含任何缺失值。

  • 中的时间戳时间变量是规则的,它们是上升或下降的。

从表中删除所有缺失的值。

DTT = rmmissing(FRED);nummobs =身高(DTT)
nummobs = 240

德勤不包含任何缺失值。

确定采样时间戳是否具有规则频率并进行排序。

areTimestampsRegular = isregular(DTT,“季度”
areTimestampsRegular =逻辑0
areTimestampsSorted = issorted(DTT.Time)
areTimestampsSorted =逻辑1

areTimestampsRegular = 0表示DTT时间戳是不规则的。areTimestampsSorted = 1表示时间戳已排序。本例中的宏观经济序列的时间戳为月底。这种性质导致了一个不规则的测量序列。

通过将所有日期转移到季度的第一天来纠正时间不规律。

dt = dt .时间;Dt =移码(Dt,“开始”“季”);德勤。时间=dt;areTimestampsRegular = isregular(DTT,“季度”
areTimestampsRegular =逻辑1

德勤对于时间是有规律的。

模型与数据拟合

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

Mdl = vecm(7,4,1);Mdl。SeriesNames = string(FRED.Properties.VariableNames);

估计模型。通过整个时间表德勤.默认情况下,估计中的响应变量Mdl。SeriesNames适合模型。或者,您可以使用ResponseVariables名称-值参数。

EstMdl =估计(Mdl,DTT);

模拟扰动路径

生成一个numobs——- - - - - -numseries——- - - - - -numpaths独立随机高斯分布值的数组,其中numobs是数据中观测值的数量,numseries响应系列7的个数,和numpaths是100。将模拟路径矩阵添加到数据集中德勤

rng (1)%用于再现性nummobs = height(DTT);numseries = estmld . numseries;Numpaths = 100;Z = mvnrnd(零(numseries,1),眼睛(numseries), nummobs *numpaths);Z =重塑(Z, nummobs,numseries,numpaths);j = 1:numseries DTT = addvars(DTT,squeeze(Z(:,j,:))),...NewVariableNames =“Z_”+ EstMdl.SeriesNames {j});结束头(德勤)
时间GDP GDPDEF COE HOANBS FEDFUNDS PCEC GPDI Z_GDP Z_GDPDEF Z_COE Z_HOANBS Z_FEDFUNDS Z_PCEC Z_GPDI  ___________ ______ ______ ______ ______ ________ ______ ______ ____________ ____________ ____________ ____________ ____________ ____________ ____________ 01 - 1月- 1957 615.4 280.25 556.3 400.29 2.96 564.3 435.29 1 x100双1 x100双1 x100双1 x100双x100双1 x100双1 x100双01 - 4月- 1957 615.87 280.95 557.03 565.11 - 435.54 400.07 - 3 1 x100双1 x100双1 x100翻倍1x100双1x100双1x100双1x100双1x100双1x100双1x100双1x100双1x100双1x100双1x100双1x100双1x100双1x100双1x100双01 - 4月- 1958 615.87 282.97 556.03 393.76 0.93 568.09 417.59 1 x100双1 x100双1 x100双1 x100双x100双1 x100双1 x100双01 - 7 - 1958 618.76 283.57 558.99 394.95 1.76 569.81 427.67 1 x100双1 x100双1 x100双1 x100双x100双1 x100双1 x100双01 - 10月- 1958 621.54 284.04 560.84 396.43 2.42 571.11 438.2 1 x100双1 x100双1 x100双1 x100双x100双1 x100双1 x100翻倍

通过模型滤波扰动

当你用时间表过滤干扰时,过滤器需要一个样品。将时间表分成预样本和样本内数据集。预样本数据是初始值EstMdl。P观测值,样本内数据集包含其余观测值。

Presample = DTT(1:EstMdl.P,:);InSample = DTT((EstMdl.)P + 1):结束,:);

通过估计模型滤波样本内扰动,模拟响应路径。指定扰动序列的变量名、预采样数据和预采样中的响应变量名。

dnames = string(DTT.Properties.VariableNames);idx = startsWith(dnames,“Z_”);Dnames = Dnames (idx);Tbl2 = filter(EstMdl,InSample,捣乱变量=dnames,...Presample = Presample PresampleResponseVariables = EstMdl.SeriesNames);大小(Tbl2)
ans =1×2238年28
头(Tbl2)
时间GDP GDPDEF COE HOANBS FEDFUNDS PCEC GPDI Z_GDP Z_GDPDEF Z_COE Z_HOANBS Z_FEDFUNDS Z_PCEC Z_GPDI GDP_Responses GDPDEF_Responses COE_Responses HOANBS_Responses FEDFUNDS_Responses PCEC_Responses GPDI_Responses GDP_Innovations GDPDEF_Innovations COE_Innovations HOANBS_Innovations FEDFUNDS_Innovations PCEC_Innovations GPDI_Innovations  ___________ ______ ______ ______ ______ ________ ______ ______ ____________ ____________ ____________ ____________ ____________ ____________ _________________________ ________________ _____________ ________________ __________________ ______________ ______________ _______________ __________________ _______________ __________________ ____________________ ________________ ________________ 01 - 7 - 1957 617.44 281.55 558.01 399.59 3.47 566.71 437.32 1 x100双1 x100双1 x100双1 x100双x100双1 x100双1 x100双1 x100双1 x100双1 x100双x100双1 x100双1 x100 x100双1 x100双1 x100的两倍双1 x100双x100双1 x100双1 x100双1 x100双01 - 10月- 1957 616.48 281.61 557.48 397.5 2.98 567.26 426.27 1 x100双1 x100双1 x100双1 x100双x100双1 x100双1 x100双1 x100双x100双1 x100双1 x100双1 x100双1 x100双1 x100双1 x100双1 x100双1 x100双1 x100双1 x100双1 x100双1 x100双01 - 1月- 1958 614.93 282.68 556.15 395.21 1.2 567.09 420.02 1 x100双1 x100双1 x100翻倍x100双1 x100双1 x100双1 x100双1 x100双1 x100双x100双1 x100双1 x100双1 x100双1 x100双1 x100双x100双1 x100双1 x100双1 x100双1 x100双1 x100双01 - 4月- 1958 615.87 282.97 556.03 393.76 0.93 568.09 417.59 1 x100双1 x100双1 x100双1 x100双1 x100双1 x100双1 x100双1 x100双1 x100双1 x100双1 x100双1 x100双1 x100双x100双1 x100双1 x100翻倍1x100双1x100 double 1x100 double 1x100 double 1x100 double 01-Jul-1958 618.76 283.57 558.99 394.95 1.76 569.81 427.67 1x100 double 1x100 double 1x100 double 1x100 double 1x100 double 1x100 double 1x100 double 1x100 double 1x100 double 1x100 double 1x100 double 1x100 double 1x100 double 1x100 double 1x100 double 1x100 double 1x100 double 1x100 double 1x100 double 1x100 double 1x100 double 01-Oct-1958 621.54 284.04 560.84 396.43 2.42 571.11 438.2 1x100 double 1x100 double 1x100 double 1x100 double 1x100 double 1x100 double 1x100 double 1x100 double 1x100 double 1x100 double 1x100 double 1x100 double 1x100 double 1x100 double 1x100 double 1x100 double 1x100 double 1x100 double 1x100 double 1x100 double 1x100 double 01-Jan-1959 623.66 284.31 563.55 398.35 2.8 573.62 442.12 1x100 double 1x100 double 1x100 double 1x100 double 1x100 double 1x100 double 1x100 double 1x100 double 1x100 double 1x100 double 1x100 double 1x100 double 1x100 double 1x100 double 1x100 double 1x100 double 1x100 double 1x100 double 1x100 double 1x100 double 1x100 double 01-Apr-1959 626.19 284.46 565.91 400.24 3.39 575.54 449.31 1x100 double 1x100 double 1x100 double 1x100 double 1x100 double 1x100 double 1x100 double 1x100 double 1x100 double 1x100 double 1x100 double 1x100 double 1x100 double 1x100 double 1x100 double 1x100 double 1x100 double 1x100 double 1x100 double 1x100 double 1x100 double

Tbl2是一个238 × 2的样本内数据矩阵,模拟扰动的路径,过滤响应的路径(变量名附加_Responses,和创新路径(名称后跟_Innovations)。

rnames = string(Tbl2.Properties.VariableNames);idx = endsWith(rnames,“_Responses”);Rnames = Rnames (idx);图tiledlayout (2, 2)nexttile p1 = plot(Tbl2. time,Tbl2{:,rnames(j)},Color=[0.5 0.5 0.5]);持有p2 = plot(Tbl2. time,Tbl2{:, mll . seriesnames (j)},LineWidth=2);标题(Mdl.SeriesNames (j))包含(“日期”)传说([p1(1) p2],[“模拟”“观察”])结束

图中包含4个轴对象。axis对象1,标题为GDP, xlabel Date包含101个类型为line的对象。这些对象代表模拟的、观察到的。axis对象2,标题为GDPDEF, xlabel Date,包含101个类型为line的对象。这些对象代表模拟的、观察到的。axis对象3,标题为COE, xlabel Date包含101个类型为line的对象。这些对象代表模拟的、观察到的。轴对象4,标题HOANBS, xlabel Date包含101个类型为line的对象。这些对象代表模拟的、观察到的。

图tiledlayout (2, 2)nexttile p1 = plot(Tbl2. time,Tbl2{:,rnames(j)},Color=[0.5 0.5 0.5]);持有p2 = plot(Tbl2. time,Tbl2{:, mll . seriesnames (j)},LineWidth=2);标题(Mdl.SeriesNames (j))包含(“日期”)传说([p1(1) p2],[“模拟”“观察”])结束

图中包含3个轴对象。axis对象1,标题为FEDFUNDS, xlabel Date,包含101个类型为line的对象。这些对象代表模拟的、观察到的。axis对象2,标题为PCEC, xlabel Date包含101个类型为line的对象。这些对象代表模拟的、观察到的。坐标轴对象3,标题为GPDI, xlabel Date包含101个类型为line的对象。这些对象代表模拟的、观察到的。

输入参数

全部折叠

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

潜在的多元扰动系列zt与模型创新过程相关εt,指定为numobs——- - - - - -numseries数值矩阵或numobs——- - - - - -numseries——- - - - - -numpaths数字数组。

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

行对应采样次数,最后一行包含最新的扰动集。

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

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

规模名称-值参数指定是否在之前缩放扰动过滤器过滤它们Mdl.详情请参见规模

数据类型:

包含观测到的扰动变量的时间序列数据zt,与模型创新过程相关εt,或预测变量xt的表或时间表numvars变量和numobs行。您可以选择numseries扰动变量或numpreds预测变量使用DisturbanceVariablesPredictorVariables分别为名称-值参数。

每个选定的扰动变量为anumobs——- - - - - -numpaths数字矩阵,每个预测变量是一个数字向量。每一行都是一个观测值,每一行的测量值同时发生。

每个路径(列)在一个特定的变量是独立的,但路径j在所有变量中对应的是j= 1,…,numpaths

如果Tbl1是一个时间表,它必须表示具有常规datetime时间步骤的示例(参见isregular)和datetime向量Tbl1。时间必须是升序或降序。

如果Tbl1是一个表,最后一行包含最新的观察结果。

规模名称-值参数指定是否在之前缩放扰动过滤器过滤它们Mdl.详情请参见规模

为模型提供初始值的预采样数据Mdl,指定为表格或时间表,类型与Tbl1,numprevars变量和numpreobs行。Presample当你提供一个表格或时间表的数据时需要什么Tbl1

每一行都是一个预采样观测,在所有路径中,每一行的测量都是同时发生的。numpreobs至少是Mdl。P.如果你提供的行数比需要的多,过滤器使用最新的Mdl。P观察。

每个变量都是numpreobs——- - - - - -numprepaths数字矩阵。变量对应于与相应扰动相关的响应序列Tbl1.要控制预采样变量选择,请参见可选选项PresampleResponseVariables名称-值参数。

对于每个变量,列都是独立的路径。

  • 如果变量是向量,过滤器将它们应用到每个路径中Tbl1以产生过滤后的响应Tbl2.因此,滤波响应的所有路径都来自共同的初始条件。

  • 否则,对于每个变量Vark每条路径j过滤器适用于Presample。Vark(:,j生产Tbl2。Vark(:,j.变量必须至少有numpaths列和过滤器只使用第一个numpaths列。

如果Presample是一个时间表,以下所有条件必须成立:

  • Presample必须表示具有常规datetime时间步长的示例(参见isregular)。

  • 输入Tbl1而且Presample必须在时间上保持一致Presample立即之前Tbl1关于采样频率和阶数。

  • 样本时间戳的datetime向量Presample。时间必须是升序或降序。

如果Presample是一个表,最后一行包含最新的预样本观察结果。

名称-值参数

指定可选参数对为Name1 = Value1,…,以=家,在那里的名字参数名称和价值对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。

在R2021a之前,使用逗号分隔每个名称和值,并将其括起来的名字在报价。

例子:过滤器(Mdl, Z, Y0 = PS, X =挂式)过滤干扰的数值数组Z通过VEC(p- 1)模型Mdl,并指定预采样响应数据的数值数组PS以及外生预测数据的数值矩阵挂式对于模型回归组件。

可供选择的变量Tbl1作为干扰变量来处理zt,指定为以下数据类型之一:

  • 包含的字符向量的字符串向量或单元格向量numseries中的变量名Tbl1.Properties.VariableNames

  • 一个长度numseries可供选择的变量的唯一索引(整数)向量Tbl1.Properties.VariableNames

  • 一个长度numvars逻辑向量,其中DisturbanceVariables (j) =真选择变量jTbl1.Properties.VariableNames,总和(DisturbanceVariables)numseries

所选变量必须是相同宽度的数值向量(单路径)或矩阵(列表示多条独立路径),并且不能包含缺失值()。

如果变量的个数在Tbl1匹配Mdl。NumSeries的所有变量Tbl1.如果变量的个数在Tbl1超过Mdl。NumSeries,默认匹配中的变量Tbl1到名字Mdl。SeriesNames

例子:DisturbanceVariables =(“GDP”“CPI”)

例子:扰动变量=[true false true false]DisturbanceVariable = 3 [1]选择第一个和第三个表变量作为扰动变量。

数据类型:|逻辑|字符|细胞|字符串

为模型提供初始值的预示例响应Mdl,指定为numpreobs——- - - - - -numseries数值矩阵或numpreobs——- - - - - -numseries——- - - - - -numprepaths数字数组。使用Y0只有当你提供扰动数据的数值数组时Z

numpreobs是预采样观测数。numprepaths是预采样响应路径的数量。

每一行都是一个预样本,在所有页面中,每一行的测量都是同时进行的。最后一行包含最新的预样本观察结果。Y0至少要有Mdl。P行。如果你提供的行数比需要的多,过滤器使用最新的Mdl。P观察。

每一列对应于与中各自扰动相关的响应序列Z

页面对应于独立的路径。

  • 如果Y0是一个矩阵,过滤器将其应用于每个路径(页面)以生成过滤后的响应Y.因此,所有的路径Y由共同的初始条件导出。

  • 否则,过滤器适用于Y0 (:,:j生产Y (:,:jY0至少要有numpaths页,过滤器只使用第一个numpaths页面。

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

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

  • 对于包含回归成分的非平稳过程或模型,过滤器将预采样观测值设置为由0组成的数组。

数据类型:

可供选择的变量Presample用于预采样数据,指定为以下数据类型之一:

  • 包含的字符向量的字符串向量或单元格向量numseries中的变量名Presample.Properties.VariableNames

  • 一个长度numseries可供选择的变量的唯一索引(整数)向量Presample.Properties.VariableNames

  • 一个长度numvars逻辑向量,其中PresampleResponseVariables (j) =真选择变量jPresample.Properties.VariableNames,总和(PresampleResponseVariables)numseries

所选变量必须是相同宽度的数值向量(单路径)或矩阵(列表示多条独立路径),并且不能包含缺失值()。

PresampleResponseNames不需要包含与在Tbl1过滤器使用所选变量中的数据PresampleResponseVariables (j作为对应于的响应变量的预示例DisturbanceVariables (j

默认值指定与从中选择的响应变量相同的响应变量Tbl1(见DisturbanceVariables)。

例子:PresampleResponseVariables =(“GDP”“CPI”)

例子:PresampleResponseVariables=[true false true false]PresampleResponseVariable = 3 [1]为预采样数据选择第一个和第三个表变量。

数据类型:|逻辑|字符|细胞|字符串

预测数据xt对于模型中的回归组件,指定为包含numpreds列。使用X只有当你提供扰动数据的数值数组时Z

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

每一行对应一个观测值,每一行中的测量值同时发生。最后一行包含最新的观察结果。X至少要有和Z.如果你提供的行数比需要的多,过滤器只使用最新的观测结果。过滤器在预采样期间不使用回归组件。

每一列是一个单独的预测变量。所有预测变量都出现在每个响应方程的回归分量中。

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

默认情况下,过滤器排除回归组件,不管它是否存在于Mdl

数据类型:

可供选择的变量Tbl1作为外生预测变量xt,指定为以下数据类型之一:

  • 包含的字符向量的字符串向量或单元格向量numpreds中的变量名Tbl1.Properties.VariableNames

  • 一个长度numpreds可供选择的变量的唯一索引(整数)向量Tbl1.Properties.VariableNames

  • 一个长度numvars逻辑向量,其中PredictorVariables (j) =真选择变量jTbl1.Properties.VariableNames,总和(PredictorVariables)numpreds

所选变量必须是数值向量,且不能包含缺失值()。

默认情况下,过滤器排除回归组件,不管它是否存在于Mdl

例子:PredictorVariables=["M1SL" "TB3MS" "UNRATE"]

例子:PredictorVariables=[true false true false]PredictorVariable = 3 [1]选择第一个和第三个表变量以提供预测器数据。

数据类型:|逻辑|字符|细胞|字符串

标志,指示是否通过模型协方差矩阵的下三角Cholesky因子来缩放扰动,该因子在本表中指定为一个值。表中:

  • Z输入的数组是扰动数据吗Z或者输入中指定的扰动变量Tbl1

  • E输出是创新的数组吗E或者说产出中的创新变量Tbl2

价值 描述
真正的 E (:,:,jL * Z (:,:,j,在那里l胆固醇(Mdl.Covariance,“低”)
没有规模,E (:,:,jZ (:,:j

对于每一页j= 1,…,numpaths过滤器过滤器的numobs——- - - - - -numseries创新矩阵E (:,:,j通过风险评估(p)模型Mdl使用指定的比例。

例子:规模= false

数据类型:逻辑

请注意

  • ZY0,X指出缺失的值。过滤器通过按列表删除从数据中删除缺失的值。

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

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

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

    4. 过滤器中的预示例路径应用步骤1和3Y0

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

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

  • 过滤器当任何表或时间表输入包含缺失值时发出错误。

输出参数

全部折叠

过滤后的多元响应序列yt,作为numobs——- - - - - -numseries数值矩阵或numobs——- - - - - -numseries——- - - - - -numpaths数字数组。Y中的预示例响应的延续Y0

过滤器返回Y只有当你提供输入的时候Z

多元模型创新系列εt,作为numobs——- - - - - -numseries数值矩阵或numobs——- - - - - -numseries——- - - - - -numpaths数字数组。的值的详细信息E,请参阅规模

过滤器返回E只有当你提供输入的时候Z

多元过滤响应yt创新系列εt,作为表或时间表返回,数据类型与Tbl1过滤器返回Tbl2只有当你提供输入的时候Tbl1

Tbl2包含以下变量:

  • 过滤后的响应变量yt.每个过滤后的响应变量为anumobs——- - - - - -numpaths数值矩阵,行表示观测值,列表示独立路径,每一行对应输入观测值和路径Tbl1过滤器为扰动变量命名过滤后的响应DisturbanceJTbl1DisturbanceJ_Responses.例如,如果所选扰动变量中的一个Tbl1过滤是国内生产总值Tbl2包含具有名称的对应筛选响应的变量GDP_Responses

  • 创新变量εt.每个创新变量都是anumobs——- - - - - -numpaths数值矩阵,行表示观测值,列表示独立路径,每一行对应输入观测值和路径Tbl1过滤器将创新变量命名为扰动变量DisturbanceJTbl1DisturbanceJ_Innovations.例如,如果所选扰动变量中的一个Tbl1过滤是国内生产总值Tbl2包含具有名称的对应创新的变量GDP_Innovations

  • 所有的变量Tbl1

如果Tbl1是一个时间表,Tbl1而且Tbl2有相同的行顺序,升序或降序。

算法

  • 过滤器计算Y而且E对每个页面都使用此过程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。PY0为初始化模型,在Y0而且Y(不包括缺失值)决定t0

参考文献

[1]汉密尔顿,詹姆斯D。时间序列分析.普林斯顿,新泽西州:普林斯顿大学出版社,1994。

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

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

[4]Lutkepohl, H。多重时间序列分析新导论.柏林:施普林格,2005。

版本历史

在R2017b中引入

另请参阅

对象

功能