预测

预测向量自回归(VAR)模型的响应

描述

ÿ=预测(MdlnumperiodsY0返回最小均方误差(MMSE)预测路径(ÿ)在长度numperiods预测范围使用完全指定的VAR(p)模型Mdl。预测响应表示样品前数据的延续Y0

ÿ=预测(MdlnumperiodsY0名称,值使用由一个或多个名称值对参数中指定的附加选项。例如,你可以指定未来的外生预测数据或包括有条件的预测未来的响应。

[ÿYMSE] =预测(<小号pan class="argument_placeholder">___使用前面语法中的任何输入参数,返回每个预测响应的相应的均方误差(MSE)。

例子

全部折叠

将VAR(4)模型与消费者价格指数(CPI)和失业率数据相匹配。然后,根据估计模型预测无条件MMSE响应。

加载Data_USEconModel数据集。

加载<小号pan style="color:#A020F0">Data_USEconModel

把这两个系列放在不同的地块上。

数字;情节(DataTable.Time,DataTable.CPIAUCSL);标题(<小号pan style="color:#A020F0">'消费者价格指数');ylabel(<小号pan style="color:#A020F0">“指数”);xlabel(<小号pan style="color:#A020F0">'日期');

数字;情节(DataTable.Time,DataTable.UNRATE);标题(<小号pan style="color:#A020F0">“失业率”);ylabel(<小号pan style="color:#A020F0">“百分比”);xlabel(<小号pan style="color:#A020F0">'日期');

通过将其转换为一系列增长率的稳定CPI。通过从失业率系列的第一观察同步两大系列。

rcpi = price2ret (DataTable.CPIAUCSL);unrate = DataTable.UNRATE(2:结束);[rcpi unrate],<小号pan style="color:#A020F0">'RowTimes',DataTable.Time(2:结束),<小号pan style="color:#0000FF">...'VariableNames',{<小号pan style="color:#A020F0">'RCPI',<小号pan style="color:#A020F0">'unrate'});

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

MDL = varm(2,4);

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

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

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

在三年的时间范围内,来自估计模型的预测响应。将整个数据集指定为预充足的观测值。

numperiods = 12;Y0 = Data.Variables;Y =预测(EstMdl,numperiods,Y0);

ÿ是预测响应的12×2矩阵。第一列和第二列分别包含模拟CPI增长率和失业率。

绘制预测的响应和最后的50个真实响应。

FH = dateshift(Data.Time(结束),<小号pan style="color:#A020F0">'结束',<小号pan style="color:#A020F0">'25美分硬币',1:12);数字;H1 =情节(Data.Time((端-49):结束),Data.rcpi((端-49):结束));保持<小号pan style="color:#A020F0">在;h2 =情节(fh, Y (: 1));标题(<小号pan style="color:#A020F0">“CPI增速”);ylabel(<小号pan style="color:#A020F0">'增长率');xlabel(<小号pan style="color:#A020F0">'日期');甘氨胆酸h =;填写([Data.Time(end) fh([end end]) . time (end)],h。YLim([1 1 2 2]),<小号pan style="color:#A020F0">数k,<小号pan style="color:#0000FF">...'FaceAlpha',0.1%,<小号pan style="color:#A020F0">'EdgeColor',<小号pan style="color:#A020F0">'没有');图例([H1 H2],<小号pan style="color:#A020F0">'真正',<小号pan style="color:#A020F0">'预测')举行<小号pan style="color:#A020F0">从;

数字;H1 =情节(Data.Time((端-49):结束),Data.unrate((端-49):结束));保持<小号pan style="color:#A020F0">在;H2 =情节(FH,Y(:,2));标题(<小号pan style="color:#A020F0">“失业率”);ylabel(<小号pan style="color:#A020F0">“百分比”);xlabel(<小号pan style="color:#A020F0">'日期');甘氨胆酸h =;填写([Data.Time(end) fh([end end]) . time (end)],h。YLim([1 1 2 2]),<小号pan style="color:#A020F0">数k,<小号pan style="color:#0000FF">...'FaceAlpha',0.1%,<小号pan style="color:#A020F0">'EdgeColor',<小号pan style="color:#A020F0">'没有');图例([H1 H2],<小号pan style="color:#A020F0">'真正',<小号pan style="color:#A020F0">'预测',<小号pan style="color:#A020F0">“位置”,<小号pan style="color:#A020F0">'西北')举行<小号pan style="color:#A020F0">从;

估计一个四度向量自回归模型,包括消费者价格指数(CPI)、失业率和国内生产总值(GDP)的外生预测因子(VARX(4))。包括包含本季度和最后四个季度政府消费支出和投资(GCE)的线性回归成分。根据估计模型预测响应路径。

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

加载<小号pan style="color:#A020F0">Data_USEconModelDataTable.RGDP = DataTable.GDP./DataTable.GDPDEF*100;

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

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

每个转换成一连串增长率的稳定CPI,GDP和GCE。通过移除它的第一个观测同步失业率系列与他人。

数据源= {<小号pan style="color:#A020F0">'CPIAUCSL'“RGDP”“全球教育运动”};数据= varfun(@ price2ret,数据表,<小号pan style="color:#A020F0">'InputVariables',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 = [<小号pan style="color:#A020F0">“RCPI”“unrate”“rgdpg”]。

估计使用所有,但在过去三年的数据模型。指定GCE矩阵作为回归分量的数据。

BFH = Data.Time(结束) - 年(3);estIdx = Data.Time “X”,rgcelag4(estIdx,:));

预测的季报反应3年到未来的路径。

Y0 =数据(estIdx,:)变量。Y =预测(EstMdl,12,数据(estIdx,:)。变量,<小号pan style="color:#A020F0">“X”,rgcelag4(〜estIdx,:));

ÿ是模拟响应的12×3矩阵。列分别对应于CPI增长率,失业率,GDP与实际GDP的增长速度。

绘制预测的响应和最后的50个真实响应。

数字;<小号pan style="color:#0000FF">对于j = 1: Mdl。h1 = plot(Data. time ((end-49):end),Data{(end-49):end,j});保持<小号pan style="color:#A020F0">在;H2 =情节(Data.Time(〜estIdx),Y(:,J));标题(Mdl.SeriesNames {Ĵ});甘氨胆酸h =;补([BFH h.XLim([2 2])BFH],h.YLim([1 1 2 2]),<小号pan style="color:#A020F0">数k,<小号pan style="color:#0000FF">...'FaceAlpha',0.1%,<小号pan style="color:#A020F0">'EdgeColor',<小号pan style="color:#A020F0">'没有');保持<小号pan style="color:#A020F0">从;<小号pan style="color:#0000FF">结束HL =图例([H1 H2],<小号pan style="color:#A020F0">'数据',<小号pan style="color:#A020F0">'预测');hl.Position = [0.6 0.25 hl.Position(3:4)];

使用预测区间在三年地平线分析预测的准确性。这个例子从如下从VAR(4)模型预测的响应无条件系列

加载Data_USEconModel数据集和预处理数据。

加载<小号pan style="color:#A020F0">Data_USEconModelrcpi = price2ret (DataTable.CPIAUCSL);unrate = DataTable.UNRATE(2:结束);[rcpi unrate],<小号pan style="color:#A020F0">'RowTimes',DataTable.Time(2:结束),<小号pan style="color:#0000FF">...'VariableNames',{<小号pan style="color:#A020F0">'RCPI',<小号pan style="color:#A020F0">'unrate'});

估计VAR(4)的两个响应一系列模型。保留过去三年的数据。

BFH = Data.Time(结束) - 年(3);estIdx = Data.Time 
                   

在三年的时间范围内,来自估计模型的预测响应。将整个数据集指定为预充足的观测值。返回预测的MSE。

numperiods = 12;Y0 =数据(estIdx,:)变量。[Y,YMSE] =预测(EstMdl,numperiods,Y0);

ÿ是预测响应的12×2矩阵。YMSE是一个对应的MSE矩阵的12×1的细胞向量。

提取从矩阵主对角线元素中的每个单元YMSE。应用结果的平方根来获得标准误差。

extractMSE = @(x)的诊断(X)';MSE = cellfun(extractMSE,YMSE,<小号pan style="color:#A020F0">'UniformOutput'、假);SE =√cell2mat (MSE));

对于每个响应系列估计近似95%预测区间。

YFI = 0 (numperiods Mdl.NumSeries 2);YFI(:,:,1) = Y - 2*SE;YFI(:,:,2) = Y + 2*SE;

绘制预测的响应和最后的50个真实响应。

数字;H1 =情节(Data.Time((端-49):结束),Data.rcpi((端-49):结束));保持<小号pan style="color:#A020F0">在;H2 =情节(Data.Time(〜estIdx),Y(:,1));H3 =情节(Data.Time(〜estIdx),YFI(:,1,1),<小号pan style="color:#A020F0">'K--');情节(Data.Time(〜estIdx),YFI(:,1,2),<小号pan style="color:#A020F0">'K--');标题(<小号pan style="color:#A020F0">“CPI增速”);ylabel(<小号pan style="color:#A020F0">'增长率');xlabel(<小号pan style="color:#A020F0">'日期');甘氨胆酸h =;补([BFH h.XLim([2 2])BFH],h.YLim([1 1 2 2]),<小号pan style="color:#A020F0">数k,<小号pan style="color:#0000FF">...'FaceAlpha',0.1%,<小号pan style="color:#A020F0">'EdgeColor',<小号pan style="color:#A020F0">'没有');传奇((h1 h2 h3),<小号pan style="color:#A020F0">'真正',<小号pan style="color:#A020F0">'预测',<小号pan style="color:#A020F0">'95%预测区间”,<小号pan style="color:#0000FF">...“位置”,<小号pan style="color:#A020F0">'西北')举行<小号pan style="color:#A020F0">从;

数字;H1 =情节(Data.Time((端-49):结束),Data.unrate((端-49):结束));保持<小号pan style="color:#A020F0">在;h2 =情节(Data.Time (~ estIdx), Y (:, 2));h3 =情节(Data.Time (~ estIdx) YFI (:, 2, 1),<小号pan style="color:#A020F0">'K--');图(Data.Time(〜estIdx),YFI(:,2,2),<小号pan style="color:#A020F0">'K--');标题(<小号pan style="color:#A020F0">“失业率”);ylabel(<小号pan style="color:#A020F0">“百分比”);xlabel(<小号pan style="color:#A020F0">'日期');甘氨胆酸h =;补([BFH h.XLim([2 2])BFH],h.YLim([1 1 2 2]),<小号pan style="color:#A020F0">数k,<小号pan style="color:#0000FF">...'FaceAlpha',0.1%,<小号pan style="color:#A020F0">'EdgeColor',<小号pan style="color:#A020F0">'没有');传奇((h1 h2 h3),<小号pan style="color:#A020F0">'真正',<小号pan style="color:#A020F0">'预测',<小号pan style="color:#A020F0">'95%预测区间”,<小号pan style="color:#0000FF">...“位置”,<小号pan style="color:#A020F0">'西北')举行<小号pan style="color:#A020F0">从;

输入参数

全部折叠

VAR模型,指定为varm模型对象的创建varm估计Mdl必须详细说明。

预测周期,或预测期间的时间点数量,指定为正整数。

数据类型:

样品前体的反应,对于预测提供初始值,指定为numpreobs-通过-numseries数字矩阵或numpreobs-通过-numseries-通过-numprepaths数字数组。

numpreobs是预充足观测值的个数。numseries为响应级数的个数(Mdl.NumSeries)。numprepaths是的样品前体反应路径的数量。

行对应预充足的观测值,最后一行包含最新的观测值。Y0必须包含至少Mdl.P行。如果你提供的行数比需要的多,预测只有最新的使用Mdl.P观察结果。

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

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

  • 如果不指定YF名称 - 值对的参数,然后预测使用的对应页初始化每个预测路径(页)Y0。因此,输出参数ÿnumprepaths页面。

  • 如果你指定YF名称 - 值对的参数,然后预测采取这些行动之一。

    • 如果Y0是一个矩阵,然后预测在初始化每个预测路径(页)YF运用Y0。因此,输出参数中的所有路径ÿ由一般的初始条件推出。

    • 除此以外,预测适用Y0 (:,:Ĵ初始化预测路径ĴY0至少numpaths页,预测只使用第一个numpaths页面。

    在所有的网页,在一个特定的行观察发生在同一时间。

数据类型:

名称-值对的观点

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

例:'X',X, 'YF',YF采用矩阵X作为回归部件预测器数据,并且所述矩阵YF如部分已知有条件预测未来回应。

预测时间序列的预测因子包括在模型回归组件中,指定为逗号分隔对组成“X”和包含数字矩阵numpreds列。

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

行对应的观测。行Ĵ包含Ĵ- 工序超前预测。X至少numperiods行。如果你提供的行数比需要的多,预测只使用最早numperiods观察结果。第一行包含最早观察。

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

预测适用X每条路径(页);也就是说,X表示观察到的预测结果的一个路径。

为了保持模型在预测范围内的一致性,在何时指定预测预测因子是一个很好的实践Mdl有一个回归组件。

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

数据类型:

未来响应多元系列用于条件预测,指定为逗号分隔的一对组成的“。”和含有数字矩阵或3- d阵列numseries列。

行对应于在预测范围的观察,和第一行是最早观察。具体来说,行Ĵ在样本路径ķYF(Ĵ,:,ķ)包含响应Ĵ未来的时期。YF至少numperiods行覆盖预测范围。如果你提供的行数比需要的多,预测只使用第一个numperiods行。

列对应于在响应变量Y0

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

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

  • 除此以外,YF至少numpaths页面。如果提供超过所需的网页,预测只使用第一个numpaths页面。

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

默认,YF数组是由为NaN表示完全不了解预测范围内所有响应的未来状态的值。在这种情况下,预测估计常规MMSE预测。

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

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

数据类型:

注意

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

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

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

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

对于缺失值X预测从每一页中删除相应的行YF。从行中取出后XYF,如果行数小于numperiods, 然后预测抛出一个错误。

输出参数

全部折叠

多元响应系列MMSE预测,返回为numobs-通过-numseries数字矩阵或numobs-通过-numseries-通过-numpaths数字数组。ÿ代表了样品前体反应的延续Y0。行对应于观察值,列对应于响应变量,页对应于样本路径。行ĴĴ-period超前预测。

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

MSE矩阵在预测响应ÿ,返回为numperiods的×1细胞载体numseries-通过-numseries数字矩阵。细胞YMSE编制预测误差协方差矩阵的时间序列。细胞Ĵ包含Ĵ-period超前MSE矩阵。

YMSE为所有路径是相同的。

因为预测对待预测变量X如外源性和非随机,YMSE反映了输入模型的自回归组件相关联的误差协方差Mdl只要。

算法

  • 预测估计用公式无条件预测

    ÿ ^ Ť = Φ ^ 1 ÿ ^ Ť - 1 + ... + Φ ^ p ÿ ^ Ť - p + C ^ + δ ^ Ť + β ^ X Ť

    哪里Ť= 1,...,numperiods预测过滤器的numperiods-通过-numseries的矩阵零值通过创新Mdl预测使用指定的presample创新(Y0)在必要时。

  • 预测估计使用卡尔曼滤波器有条件的预测。

    1. 预测代表VAR模型Mdl作为一个状态空间模型(舰导弹模型对象),而不观测误差。

    2. 预测过滤预测数据YF通过状态空间模型。在期Ť在预测范围内,任何未知的响应都是

      ÿ ^ Ť = Φ ^ 1 ÿ ^ Ť - 1 + ... + Φ ^ p ÿ ^ Ť - p + C ^ + δ ^ Ť + β ^ X Ť

      哪里<小号pan class="inlineequation"> ÿ ^ 小号 小号<Ť是的滤波估计ÿ从期小号在预测期内。预测用途指定样品前体值Y0在预测期内前时段。

    有关详细信息,请参阅过滤[4],第612和615。

  • 方式预测确定numpaths,输出参数中的页数ÿ,依赖于预测类型。

    • 如果您估计的是无条件预测,这意味着您没有指定名称-值对参数YF, 然后numpaths是的输入参数的页数Y0

    • 如果有条件的估计和预测Y0YF有一个以上的页面,然后numpaths是具有较少页的数组中的页数。如果页数在Y0YF超过numpaths, 然后预测只使用第一个numpaths页面。

    • 如果你估计条件预测Y0YF有一个页面,然后numpaths是最页面数组中的页面数。预测使用带有一个页面用于每个路径的阵列。

  • 预测设定的模型,包括线性时间趋势的时间原点(Ť0)大小(Y0,1)-Mdl.P(后除去缺失值)。因此,在趋势成分的时间Ť=Ť0+ 1,Ť0+ 2,…,Ť0+numobs。这项公约与模型估计的默认行为是一致的,其中估计删除第一个Mdl.P反应,减少了有效样本大小。虽然预测明确地使用第一Mdl.Ppresample反应Y0初始化模式,观测的总数目(不包括缺失值)确定Ť0

参考

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

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

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

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

也可以看看

对象

功能

  • |<小号pan itemscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">

介绍了在R2017a