向量自回归(VAR)模型创建
计量经济学工具箱™具有使用VAR模型对多元时间序列建模的一类函数。的varm
函数创建varm
表示VAR模型的对象。varm
属性指定VAR模型结构,包括响应序列的数量(维数),自回归(AR)滞后的数量,以及模型中常数或时间趋势系数的存在。
一个varm
对象可以作为估计的模型模板,在这种情况下,您必须指定至少响应序列的数量和AR多项式的度。可选地,您可以指定其他参数(系数或创新协方差矩阵)的值来检验假设或经济理论。的估计
对象函数将模型中未指定的可估计参数拟合到指定的数据,并返回完全指定的参数varm
对象。提供一个完全指定的模型给其他人varm
对象的功能以便进一步分析。
创建VAR模型
您可以创建varm
对象,使用以下两种语法之一:速记或速记。
这种简写语法适用于快速创建模型,通常当模型用作估计模板时。所需的输入为响应级数的维数(numseries
)和AR多项式的次(p
).由此得到的VAR模型的AR多项式具有1到1的非零滞后p
.有关示例,请参见使用简写语法创建和调整VAR模型.
与速记语法相比,速记语法在参数规范方面具有更大的灵活性。例如,您可以指定自回归系数矩阵的值,或者指定哪些滞后具有非零系数矩阵。而varm
函数需要输入numseries
而且p
在使用速记语法时,函数必须能够从使用速记语法时提供的值推断出这些结构特征。换句话说,这些结构特征是不可估计的。有关示例,请参见使用Longhand语法创建和调整VAR模型.
无论语法如何,得到的VAR模型都是一个对象。对象属性的值完全决定了VAR模型的结构。在创建模型之后,可以显示它以验证其结构,并且可以通过使用点表示法调整属性来更改参数值(参见显示和更改模型对象).
方法来创建模型,这取决于您的分析目标varm
函数。
完全指定的模型对象-当你知道你的模型的所有参数的值时使用这种方法。也就是说,您不打算让模型适合数据。
有限估计的部分指定模型对象-当你知道响应维数,AR多项式度,以及一些参数值时,使用此方法。例如:
你知道一些AR系数矩阵的值或者你想检验假设。
你想从方程中排除一些滞后。
你想从方程中排除一些外生预测变量。
要估计任何未知参数值,请将模型对象和数据传递给
估计
,该方法在优化过程中对所有已知参数的指定值应用相等约束。使用外生变量的回归组件对对象进行建模:
如果您计划估计一个包含不受限制的回归组件的多元模型,请在创建模型时指定模型的结构(除了回归组件)。然后,指定模型和外生数据(例如
X
名称-值参数)估计
.因此,估计
在模型中包含适当大小的回归系数矩阵,并对其进行估计。估计
默认包含每个响应方程的回归分量中的所有外生变量。如果计划在回归系数矩阵中指定用于估计的相等约束,或者希望完全指定矩阵,请使用longhand语法和
β
参数,用于在创建模型时指定矩阵。或者,在创建模型之后,您可以指定β
使用点表示法对属性进行建模。例如,要从方程中排除一个外生变量,将变量(列)和方程(行)对应的系数元素设置为0
.
varm
对象不存储数据。相反,当您使用对象函数对模型进行操作时,可以指定数据。
完全指定的模型对象
如果您知道所有模型系数的值和创新协方差矩阵,则创建一个模型对象并使用longhand语法指定参数值。类的名称-值参数varm
函数中的已知参数值numseries
维VAR (p
)模型。
的名字 | 价值 |
---|---|
常数 |
一个 |
滞后 |
一个自回归多项式滞后的数字向量。最大的滞后决定了 |
基于“增大化现实”技术 |
的细胞载体 |
趋势 |
一个 |
β |
一个 |
协方差 |
一个 |
您还可以使用简写语法创建模型对象,然后调整相应的属性值(除了滞后
)使用点表示法。
的滞后
名称-值参数允许您指定要包含的延迟。例如,要指定AR延迟1和3而不延迟2,请设置滞后
来3 [1]
.尽管这个语法只指定了两个滞后,p
是3.
.
下面的示例展示了如何在拥有已知参数时创建模型对象。考虑VAR(1)模型
独立扰动εt分布为标准的三维正态随机变量。
这段代码展示了如何使用varm
.
C = [0.05;0;-0.05);Ar ={[。5 0 0;。1.1.3.;0.2.3.]}; Covariance = eye(3); Mdl = varm(“不变”c基于“增大化现实”技术的基于“增大化现实”技术,协方差的协方差)
Mdl = varm与属性:描述:“AR-平稳三维VAR(1)模型”SeriesNames:“Y1”“Y2”“Y3”NumSeries: 3 P: 1常数:[0.05 0 -0.05]' AR: {3×3矩阵}在滞后[1]趋势:[3×1零向量]Beta: [3×0矩阵]协方差:[3×3对角线矩阵]
对象显示显示属性值。的varm
函数将该模型确定为三维、加性常数、无时间趋势、无回归分量的平稳VAR(1)模型。
无限制估计模型模板
创建用于估计的多元模型模板的最简单方法是使用简写语法。例如,要创建一个VAR(2
)模型模板3.
响应序列,使用varm
它的简写语法,输入这个代码。
Numseries = 3;P = 2;Mdl = varm(numseries,p);
Mdl
代表VAR(2
)模型包含未知的、可估计的参数,包括常数向量和3.
——- - - - - -3.
滞后系数矩阵从滞后1到2
.
南
模型属性数组中的元素表示可估计的参数。的β
属性可以是numseries
-by-0数组,可估计;估计
从指定的外生数据推断其列的维数。当你使用速记语法时,varm
将常量向量、所有自回归系数矩阵和创新协方差矩阵设置为适当大小的数组南
年代。
要显示VAR(2
)模型模板Mdl
看看哪些参数是可估计的,输入这个代码。
Mdl
Mdl = varm与属性:描述:“三维VAR(2)模型”SeriesNames:“Y1”“Y2”“Y3”NumSeries: 3 P: 2常数:[3×1向量的NaNs] AR: {3×3矩阵的NaNs}在滞后[1 2]趋势:[3×1向量的零]Beta: [3×0矩阵]协方差:[3×3矩阵的NaNs]
Mdl。趋势
为零向量,表示线性时间趋势不是模型参数。
要指定与默认值不同的模型特征,请使用手动语法或使用点表示法调整现有模型的可写属性。例如,这段代码展示了如何通过使用longhand语法创建一个包含线性时间趋势项的模型,该模型具有可估计的系数。
AR = cell(p,1);AR(:) = {nan(numseries)};% varm可以从AR推断出响应维度和AR程度MdlLT = varm(基于“增大化现实”技术的基于“增大化现实”技术,“趋势”南(numseries 1));
Mdl
包括一个可估计的线性时间趋势项。Mdl。趋势= nan(numseries,1);
估计
拟合所有不确定参数,包括模型常数向量、自回归系数矩阵、回归系数矩阵、线性时间趋势向量和创新协方差矩阵。
有限估计的部分指定模型对象
您可以使用一些已知参数创建一个模型对象,以测试关于其值的假设。估计
在估计过程中将已知值作为相等约束,并将剩余的未知参数拟合到数据中。所有VAR模型系数都可以包含的混合南
和有效的实数,但创新的协方差矩阵必须是完全未知的(完全由南
S)或完全已知(一个正定矩阵)。
这段代码展示了如何在完全指定的模型对象,但AR参数具有对角自回归结构和未知的创新协方差矩阵。varm
从参数推断响应变量的维数c
而且基于“增大化现实”技术
,从而推断VAR模型的程度基于“增大化现实”技术
.
C = [.05;0;. 05];AR = {diag(nan(3,1))};Mdl = varm(“不变”c基于“增大化现实”技术的基于“增大化现实”技术)Mdl。基于“增大化现实”技术的{:}
Mdl = varm与属性:描述:“三维VAR(1)模型”SeriesNames:“Y1”“Y2”“Y3”NumSeries: 3 P: 1常数:[0.05 0 -0.05]' AR: {3×3矩阵}在滞后[1]趋势:[3×1矢量零]Beta: [3×0矩阵]协方差:[3×3矩阵的NaN] ans = NaN 0 0 0 0 NaN 0 0 0 0 NaN
显示和更改模型对象
假设模型对象的变量名为Mdl
.创建之后Mdl
,你可以用几种方法来检查它:
输入
Mdl
在MATLAB中®命令行。在MATLAB工作区浏览器中双击该对象。
输入
Mdl。
在MATLAB命令行,其中PropertyName
要检查或重新分配的属性的名称。PropertyName
你可以使用点表示法改变模型对象的任何可写属性:
Mdl。PropertyValue=价值;
显示模型对象
为三个响应变量创建一个VAR(2)模型对象。使用简写语法。
Numseries = 3;P = 2;Mdl = varm(numseries,p);
显示VAR(2)模型。
Mdl
Mdl = varm与属性:描述:“三维VAR(2)模型”SeriesNames:“Y1”“Y2”“Y3”NumSeries: 3 P: 2常数:[3×1向量的NaNs] AR: {3×3矩阵的NaNs}在滞后[1 2]趋势:[3×1向量的零]Beta: [3×0矩阵]协方差:[3×3矩阵的NaNs]
Mdl
是一个varm
模型对象。它的属性(左)和相应的值(右)在命令行中列出。
模型中包含的系数是模型常数向量常数
和自回归多项式系数矩阵基于“增大化现实”技术
滞后1和2。它们对应的属性值是大小适当的数组南
S,表示这些值未知但可估计。类似地,创新的协方差矩阵协方差
是一个南
矩阵,所以它也是未知的,但可估计的。
默认为线性时间趋势向量趋势
是由零和回归系数组成的矩阵吗β
列维为0。如果您在估算时提供外生数据Mdl
通过使用估计
的列维,MATLAB®推断β
从指定的数据,集β
的矩阵南
S,然后估计它。否则,MATLAB®将忽略模型的回归组件。
调整现有模型的属性
这个例子展示了如何从VAR(2)模型的AR多项式中排除第一个滞后。
创建一个表示三个响应变量的VAR(2)模型模板。使用简写语法。
Numseries = 3;P = 2;Mdl = varm(numseries,p)
Mdl = varm与属性:描述:“三维VAR(2)模型”SeriesNames:“Y1”“Y2”“Y3”NumSeries: 3 P: 2常数:[3×1向量的NaNs] AR: {3×3矩阵的NaNs}在滞后[1 2]趋势:[3×1向量的零]Beta: [3×0矩阵]协方差:[3×3矩阵的NaNs]
的基于“增大化现实”技术
的属性Mdl
在单元阵列中存储AR多项式系数矩阵。第一个单元格包含滞后1系数矩阵,第二个单元格包含滞后2系数矩阵。
使用点表示法将滞后1 AR系数设置为一个零矩阵。显示更新后的模型。
Mdl。基于“增大化现实”技术{1} = zeros(numseries); Mdl
Mdl = varm与属性:描述:“三维VAR(2)模型”SeriesNames:“Y1”“Y2”“Y3”NumSeries: 3 P: 2常数:[3×1向量的NaNs] AR: {3×3矩阵}在滞后[2]趋势:[3×1向量的零]Beta: [3×0矩阵]协方差:[3×3矩阵的NaNs]
从模型的AR多项式中去掉滞后系数。
为响应方程选择外生变量
这个例子展示了如何选择哪些外生变量出现在VARX(4)模型的回归组件中。
创建一个表示三个响应变量的VAR(4)模型模板。使用简写语法。
Numseries = 3;P = 4;Mdl = varm(numseries,p)
Mdl = varm与属性:描述:“3维VAR(4)模型”SeriesNames:“Y1”“Y2”“Y3”NumSeries: 3 P: 4常数:[3×1向量的NaNs] AR: {3×3矩阵的NaNs}在滞后[1 2 3…[趋势:[3×1零向量]Beta: [3×0矩阵]协方差:[3×3 nan矩阵]
的β
属性包含模型的回归系数矩阵,a3.
——- - - - - -0
矩阵。因为它有0
列,Mdl
没有回归组件。
假设:
的回归组件中包含两个外生变量
Mdl
使其成为一个VARX(4)模型。你的外生数据在矩阵中
X
,没有加载到内存中。您希望包含外生变量1(存储在
X (: 1)
),并排除外生变量2(存储在X (:, 2)
)由响应变量方程2和3得到。你计划适合
Mdl
数据。
设回归系数为的矩阵南
s.然后,将排除的外生变量对应的元素设为零。
Numpreds = 2;Mdl。β=nan(numseries,numpreds); Mdl.Beta(2:3,2) = 0; Mdl.Beta
ans =3×2南南南0南0
在评估期间,估计
将所有可估计参数(nan值元素)拟合到数据中,同时在优化过程中应用这些等式约束:
选择合适的延迟顺序
时间序列模型开发的一个目标是确定滞后顺序p产生一个能很好地代表数据生成过程并产生可靠预测的模型。这些函数有助于确定适当的滞后顺序:
lratiotest
执行似然比检验,通过评估限制对具有不受限制参数的扩展模型的重要性来比较嵌套模型的规范。在上下文中,受限模型的滞后阶数小于无限制模型的滞后阶数。aicbic
返回信息标准,例如Akaike和Bayesian信息标准(分别为AIC和BIC),给定对数可能性,拟合候选模型的活动参数计数,以及有效样本大小(BIC或标准归一化所需)。aicbic
不进行统计假设检验。产生最小拟合统计量的模型在候选模型中具有最佳的简约拟合。
使用似然比检验确定最小滞后数
lratiotest
需要输入不受限制模型的对数似然,受限制模型的对数似然,以及自由度的数量(DoF)。自由度是不受限制模型和受限制模型的活动参数数之差。受限模型的滞后阶数小于非受限模型的滞后阶数。
lratiotest
返回一个逻辑值:1
表示拒绝限制模型而支持无限制模型,并且0
意味着不存在足够的证据来否定受限模型。
进行似然比检验:
当您将受限制模型和不受限制模型拟合到数据时,请使用
估计
.对数似然是第三个输出(logL
).[EstMdl,EstSE,logL,E] =估计(...)
得到每个估计模型的活动参数数(
numparams
)从NumEstimatedParameters
的输出结构中的字段总结
.结果= summary (EstMdl);numparams = results.NumEstimatedParameters;
进行似然比检验,5%显著性水平,通过以下对
lratiotest
:无限制模型的对数似然logLU
,受限模型的对数似然logLR
, DoF (景深
).h = lratiotest(logLU,logLR,dof)
例如,假设你拟合了四个模型:模型1的滞后阶数为1,模型2的滞后阶数为2,等等。模型的概率为对数logL1
,logL2
,logL3
,logL4
,活动参数计数numparams1
,numparams2
,numparams3
,numparams4
.模型1、2、3对模型4进行似然比检验,如下所示:
h1 = lratiotest(logL4,logL1,(numparams4 - numparams1)) h2 = lratiotest(logL4,logL2,(numparams4 - numparams2)) h3 = lratiotest(logL4,logL3,(numparams4 - numparams3))
如果h1
=1
,拒绝模型1;以同样的方式进行模型2和模型3。如果lratiotest
返回0
,存在足够的证据来拒绝滞后阶数低于4的模型。
利用信息准则确定最小滞后数
你可以通过以下两种方式获得信息标准,如AIC或BIC:
将估计的模型传递给
总结
,并从输出结构中提取合适的拟合统计量。使用以下方法估计模型
估计
.EstMdl =估计(…);
得到估计模型的AIC和BIC
另类投资会议
而且BIC
输出结构的字段结果
.结果= summary (EstMdl);aic =结果。aic;bic = results.BIC;
使用
aicbic
,这需要候选模型的对数似然,其活动参数计数,以及BIC的有效样本量。aicbic
也接受对数似然向量和相应活动参数计数向量,使您能够使用一个函数调用比较多个模型拟合,并且您可以根据样本量选择归一化所有标准“正常化”
名称-值参数。获得每个候选模型的对数似然,当你拟合每个模型到数据使用
估计
.对数似然是第三个输出。[EstMdl,EstSE,logL,E] =估计(…)
获取每个候选模型的活动参数计数
NumEstimatedParameters
的输出结构中的字段总结
.结果= summary (EstMdl);numparams = results.NumEstimatedParameters;
例如,假设你拟合了四个模型:模型1的滞后阶数为1,模型2的滞后阶数为2,等等。模型的概率为对数logL1
,logL2
,logL3
,logL4
,活动参数计数numparams1
,numparams2
,numparams3
,numparams4
.计算每个模型的AIC。
AIC = aicbic([logL1 logL2 logL3 logL4],…[numparams1 numparams2 numparams3 numparams4])
最合适的模型使AIC最小。