估计
语法
描述
例子
估计经建会动态回归模型
考虑两国经建会动态回归模型战后美国实际GDP增长率的估计[1]。
创建部分指定模型估计
创建一个天真经建会动态回归模型估计通过指定两个离散时间马尔可夫链与未知的转移矩阵和基于“增大化现实”技术(0)政权(仅常数)的子。标签的政权。
P =南(2);mc = dtmc (P,“StateNames”,(“扩张”“衰退”]);mdl = arima (0, 0, 0);Mdl = msVAR (mc, [Mdl;mdl));
Mdl
是一个部分指定msVAR
对象。南
价值的元素开关
和子
属性显示有价值的参数。
创建完全指定模型包含初始值
估计过程需要对所有有价值的参数初始值。创建一个完全指定经建会动态回归模型具有相同的结构Mdl
,但所有有价值的参数设置为初始值。这个示例使用任意的初始值。
P0 = 0.5 * 1 (2);mc0 = dtmc (P0,“StateNames”,Mdl.StateNames);mdl01 = arima (“不变”,1“方差”1);mdl02 = arima (“不变”,1“方差”1);Mdl0 = msVAR (mc0 [mdl01;mdl02]);
Mdl0
是一个完全指定的msVAR
对象。
加载和数据预处理
载入美国GDP数据集。
负载Data_GDP
数据
包含我们的季度测量实际GDP在1947 q1 - 2005: Q2。评估的时期[1]1947:- 2004:沿。更详细的数据集,输入描述
在命令行中。
转换数据折合成年率的系列:
将数据转换为一个季度评估期内。
按年计算季度利率。
qrate = diff(数据(2:230)。/数据(2:229);季度率%arate = 100 * ((1 + qrate)。^ 4 - 1);%折合成年率
估计模型
合适的模型Mdl
折合成年率系列arate
。指定Mdl0
模型包含初始可估计的参数值。
EstMdl =估计(Mdl Mdl0 arate);
EstMdl
是一个估计(完全指定)经建会动态回归模型。EstMdl.Switch
估计是离散时间马尔可夫链模型(dtmc
对象),EstMdl.Submodels
是一个向量的估计单变量VAR(0)模型(varm
对象)。
针对各州具体情况显示估计的动态模型。
EstMdlExp = EstMdl.Submodels (1)
EstMdlExp = varm属性:描述:“维VAR(0)模式”SeriesNames:“日元”NumSeries: 1 P: 0常数:4.90146基于“增大化现实”技术:{}趋势:0β:协方差(1×0矩阵):12.087
EstMdlRec = EstMdl.Submodels (2)
EstMdlRec = varm属性:描述:“维VAR(0)模式”SeriesNames:“日元”NumSeries: 1 P: 0常数:0.0084884基于“增大化现实”技术:{}趋势:0β:协方差(1×0矩阵):12.6876
显示估计的状态转移矩阵。
EstP = EstMdl.Switch.P
EstP =2×20.9088 0.0912 0.2303 0.7697
显示一个包含参数估计和推断评估总结。
总结(EstMdl)
描述维msVAR开关估计转移矩阵模型2的子:0.909 0.091 0.230 0.770适合有效的样本大小:228数量的估计参数:2的约束参数:0 LogLikelihood: -639.496 AIC: 1282.992 BIC: 1289.851的子估计StandardError TStatistic PValue _____ _________________ __________ ___________状态1常数(1)4.9015 0.23023 21.289 1.4301 e - 100状态2常数(1)0.0084884 0.2359 0.035983 0.9713
估计后显示EM算法的行为
考虑的模型和数据估计经建会动态回归模型。
创建指定的部分模型进行估计。
P =南(2);mc = dtmc (P,“StateNames”,(“扩张”“衰退”]);mdl = arima (0, 0, 0);Mdl = msVAR (mc, [Mdl;mdl));
创建指定的完全模型包含初始参数值估计过程。
P0 = 0.5 * 1 (2);mc0 = dtmc (P0,“StateNames”,Mdl.StateNames);mdl01 = arima (“不变”,1“方差”1);mdl02 = arima (“不变”,1“方差”1);Mdl0 = msVAR (mc0 [mdl01;mdl02]);
加载和数据进行预处理。
负载Data_GDPqrate = diff(数据(2:230)。/数据(2:229);arate = 100 * ((1 + qrate)。^ 4 - 1);
适合的模型数据。情节loglikelihood与在估计过程终止时的迭代步骤。
EstMdl =估计(Mdl Mdl0 arate,“IterationPlot”,真正的);
合适的模型来模拟数据
评估估计精度使用模拟数据从一个已知的数据生成过程(文章)。这个示例使用任意的参数值。
创建模型的文章
创建一个完全指定,两国离散时间马尔可夫链模型切换机制。
P = [0.7 - 0.3;0.1 - 0.9);mc = dtmc (P);
对于每个国家,创建一个完全指定的AR(1)模型的响应过程。
%的常量C1 = 5;C2 = 2;%自回归系数AR1 = 0.4;AR2 = 0.2;%方差V1 = 4;V2 = 2;% AR的子dgp1 = arima (“不变”C1,基于“增大化现实”技术的AR1,“方差”V1);dgp2 = arima (“不变”C2,基于“增大化现实”技术的AR2,“方差”V2);
创建一个完全指定经建会动态回归模型的文章。
文章= msVAR (mc, [dgp1 dgp2]);
文章还从模拟反应路径
生成随机响应路径长度1000的文章。
rng (1);%的再现性N = 10;n = 1000;Data =模拟(文章,n,“Numpaths”N);
数据
是一个1000 -,- 10矩阵模拟响应。
创建模型估计
创建一个部分指定经建会动态回归模型具有相同结构的数据生成过程,但指定一个未知的转移矩阵和未知的子模型系数。
害虫=南(2);mc = dtmc(害虫);mdl = arima (1,0,0);Mdl = msVAR (mc, [Mdl;mdl));
创建模型包含初始值
创建一个完全指定经建会动态回归模型具有相同的结构Mdl
,但所有有价值的参数设置为初始值。
P0 = 0.5 * 1 (2);mc0 = dtmc (P0);mdl01 = arima (“不变”,1基于“增大化现实”技术的,0.5,“方差”2);mdl02 = arima (“不变”,1基于“增大化现实”技术的,0.5,“方差”1);Mdl0 = msVAR (mc0 [mdl01 mdl02]);
估计模型
适合每个模拟路径的模型。对于每一个路径,绘制loglikelihood EM算法的每次迭代。
c1 = 0 (N, 1);c2 = 0 (N, 1);v1 = 0 (N, 1);v2 = 0 (N, 1);ar1 = 0 (N, 1);ar2 = 0 (N, 1);PStack = 0 (2 2 N);图保存在为i = 1: N EstModel =估计(Mdl、Mdl0、数据(:,我)“IterationPlot”,真正的);c1 (i) = EstModel.Submodels .Constant (1);c2 (i) = EstModel.Submodels (2) .Constant;v1 (i) = EstModel.Submodels .Covariance (1);v2 (i) = EstModel.Submodels (2) .Covariance;ar1 (i) = EstModel.Submodels (1) .AR {1};ar2 (i) = EstModel.Submodels (2) .AR {1};PStack (:,:, i) = EstModel.Switch.P;结束持有从
评估的准确性
计算的蒙特卡罗意味着每个估计参数。
c1Mean =意味着(c1);c2Mean =意味着(c2);v1Mean =意味着(v1);v2Mean =意味着(v2);ar1Mean =意味着(ar1);ar2Mean =意味着(ar2);PMean =意味着(PStack, 3);
比较人口参数对应的蒙特卡罗估计。
DGPvsEstimate = […C1 c1Mean C2 c2Mean V1 v1Mean V2 v2Mean AR1 ar1Mean AR2 ar2Mean]
DGPvsEstimate =6×25.0000 5.0260 -2.0000 -1.9615 4.0000 3.9710 2.0000 1.9903 0.4000 0.4061 0.2000 0.2017
P
P =2×20.7000 0.3000 0.1000 0.9000
PEstimate = PMean
PEstimate =2×20.7065 0.2935 0.1023 0.8977
指定Presample数据
考虑到数据估计经建会动态回归模型感兴趣的,但假设时期是1960:q1 - 2004: Q2。同时,可以考虑添加一个自回归项每个子模型。
创建一个部分指定经建会动态回归模型的估计。指定AR(1)的子。
P =南(2);mc = dtmc (P,“StateNames”,(“扩张”“衰退”]);mdl = arima (1,0,0);Mdl = msVAR (mc, [Mdl;mdl));
因为子AR(1),每个需要一个presample观察初始化其估计的动态组件。
创建包含初始参数值的模型估计过程。
P0 = 0.5 * 1 (2);mc0 = dtmc (P0,“StateNames”,Mdl.StateNames);mdl01 = arima (“不变”,1“方差”,1基于“增大化现实”技术的,0.001);mdl02 = arima (“不变”,1“方差”,1基于“增大化现实”技术的,0.001);Mdl0 = msVAR (mc0 [mdl01;mdl02]);
加载数据。把整个设置为一个折合成年率系列。
负载Data_GDPqrate = diff(数据)。/数据(1:结束(- 1));arate = 100 * ((1 + qrate)。^ 4 - 1);
识别presample并估计样本时期使用的日期与折合成年率系列。因为转换适用于第一个区别,必须从原样品第一次观察到的日期。
日期= datetime(日期(2:结束),“ConvertFrom”,“datenum”,…“格式”,“yyyy QQQ”,“场所”,“en_US”);estPrd = datetime ([“1960:第二季”“2004:第二季”),“InputFormat”,“yyyy QQQ”,…“格式”,“yyyy QQQ”,“场所”,“en_US”);idx = isbetween(日期、estPrd (1) estPrd (2));idxPre =日期< estPrd (1);% presample前一个季度。
适合的模型估计样本数据。指定loglikelihood presample观察和情节在每个迭代估计过程终止。
EstMdl =估计(Mdl、Mdl0 arate (idx),“Y0”arate (idxPre),…“IterationPlot”,真正的);
预期的平滑状态概率和Loglikelihood访问
考虑的模型和数据估计经建会动态回归模型。
创建指定的部分模型进行估计。
P =南(2);mc = dtmc (P,“StateNames”,(“扩张”“衰退”]);mdl = arima (0, 0, 0);Mdl = msVAR (mc, [Mdl;mdl));
创建指定的完全模型包含初始参数值估计过程。
P0 = 0.5 * 1 (2);mc0 = dtmc (P0,“StateNames”,Mdl.StateNames);mdl01 = arima (“不变”,1“方差”1);mdl02 = arima (“不变”,1“方差”1);Mdl0 = msVAR (mc0 [mdl01;mdl02]);
加载和数据进行预处理。
负载Data_GDPqrate = diff(数据(2:230)。/数据(2:229);arate = 100 * ((1 + qrate)。^ 4 - 1);
适合的模型数据。返回预期的平滑状态概率和loglikelihood算法终止。
[EstMdl, SS, logL] =估计(Mdl, Mdl0 arate);
党卫军
预计228 - 2矩阵的平滑状态概率;行对应时间的估计样本,列对应于政权。logL
是最后的loglikelihood。
显示预期的平滑状态概率估计样本最后一段,并显示最后loglikelihood。
党卫军(最终,:)
ans =1×20.8985 - 0.1015
logL
logL = -639.4962
执行约束估计
适合模拟数据与VARX经建会动态回归模型的子。为评估指定等式约束。这个示例使用任意的参数值。
创建模型的文章
创建一个完全指定,三态离散时间马尔可夫链模型切换机制。
P = [0.8 0.1 0.1;0.2 0.6 0.2;0 0.1 - 0.9);mc = dtmc (P);
对于每个国家,创建一个完全指定VARX(1)模型的响应过程。指定相同的模型常数和滞后1对所有子AR系数矩阵。对于每个模式,指定一个不同的2×1一个外生变量的回归系数。
%的常量C = (1, 1);%自回归系数基于“增大化现实”技术= {[0.6 - 0.1;0.4 - 0.2]};%回归系数Beta1 = [0.2, -0.4];Beta2 = [0.6, -1.0];Beta3 = [0.9, -1.3];% VAR的子文章= varm (“不变”C基于“增大化现实”技术的基于“增大化现实”技术,协方差的5 *眼(2));dgp1 =文章;dgp1。β= Beta1; dgp2 = dgp; dgp2.Beta = Beta2; dgp3 = dgp; dgp3.Beta = Beta3;
创建一个完全指定经建会动态回归模型的文章。
文章= msVAR (mc, [dgp1;dgp2;dgp3]);
模拟数据的文章
模拟数据外生系列通过生成1000高斯分布的观测平均值为0和方差100。
rng (1);%的再现性X = 10 * randn (1000 1);
生成一个随机响应路径长度为1000的文章。指定子模型回归模拟外生数据组件。
Data =模拟(文章,1000,“X”,X);
数据
1000 - 1的向量的模拟响应。
创建模型估计
创建一个部分指定经建会动态回归模型具有相同结构的数据生成过程,但指定一个未知的转移矩阵和未知的回归系数。指定的真实值常量和AR系数矩阵。
害虫=南(3);mc = dtmc(害虫);mdl = varm (2, 1);mdl。常数= C;mdl。基于“增大化现实”技术=基于“增大化现实”技术;mdl。β= NaN(2,1); Mdl = msVAR(mcEst,[mdl; mdl; mdl]);
因为常量的值和AR系数矩阵中指定Mdl
,估计
把他们作为估计的等式约束。
创建模型包含初始值
创建一个完全指定经建会动态回归模型具有相同的结构Mdl
,但设置所有有价值的参数初始值和设置参数与等式约束中指定它们的值Mdl
。
P0 = (1/3) * 1 (3);mc0 = dtmc (P0);mdl0 = varm (“不变”C基于“增大化现实”技术的基于“增大化现实”技术,协方差的、眼(2));mdl01 = mdl0;mdl01。β= [0.1;-0.1]; mdl02 = mdl0; mdl02.Beta = [0.5;-0.5]; mdl03 = mdl0; mdl03.Beta = [1;-1]; Mdl0 = msVAR(mc0,[mdl01; mdl02; mdl03]);
估计模型
符合模型的模拟数据。指定的外生数据回归组件。情节loglikelihood EM算法的每次迭代。
图EstMdl =估计(Mdl Mdl0,数据,“X”,X,“IterationPlot”,真正的);
评估的准确性
比较估计回归系数向量和矩阵转换到自己的真实值。
Beta1
Beta1 =2×10.2000 - -0.4000
Beta1Estimate = EstMdl.Submodels(1)度量
Beta1Estimate =2×10.1596 - -0.4040
Beta2
Beta2 =2×10.6000 - -1.0000
Beta2Estimate = EstMdl.Submodels(2)度量
Beta2Estimate =2×10.5888 - -0.9771
Beta3
Beta3 =2×10.9000 - -1.3000
Beta3Estimate = EstMdl.Submodels(3)度量
Beta3Estimate =2×10.8987 - -1.2991
P
P =3×30.1000 - 0.9000 0.8000 0.1000 0.1000 0.2000 0.6000 0.2000 0
PEstimate = EstMdl.Switch.P
PEstimate =3×30.7787 0.0856 0.1357 0.1366 0.6906 0.1727 0.0086 0.0787 0.9127
输入参数
Y
- - - - - -观察到的响应数据
数字矩阵
观察到的响应数据估计
适合的模型,指定为一个numObs
——- - - - - -numSeries
数字矩阵。
numObs
是样本容量。numSeries
响应变量的数量(Mdl.NumSeries
)。
行对应于观测,最后一行包含最新的观测。列对应单个响应变量。
Y
代表presample响应系列的延续Y0
。
数据类型:双
斧头
- - - - - -轴的情节loglikelihood为每个迭代
轴
对象
轴的情节loglikelihood每次迭代时“IterationPlot”
名称-值参数是真正的
指定为一个轴
对象。
默认情况下,估计
阴谋,当前轴(gca
)。
如果“IterationPlot”
是假
,估计
忽略了斧头
。
名称-值参数
指定可选的双参数作为Name1 = Value1,…,以=家
,在那里的名字
参数名称和吗价值
相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。
R2021a之前,用逗号来分隔每一个名称和值,并附上的名字
在报价。
例子:Y0, Y0, X, X, IterationPlot,真的
使用矩阵Y0
presample反应所需的估计,在每个子模型包括线性回归组件组成的预测数据X
和指定的回归系数,情节loglikelihood每个迭代。
Y0
- - - - - -Presample响应数据
数字矩阵
Presample响应数据,指定为逗号分隔组成的“Y0”
和一个numPreSampleObs
——- - - - - -numSeries
数字矩阵。
presample观测的数量numPreSampleObs
必须足够的初始化的基于“增大化现实”技术条款所有的子。如果numPreSampleObs
超过任何国家的基于“增大化现实”技术的顺序,估计
使用最新的观测。默认情况下,Y0
是初始段的Y
,这减少了有效的样本大小。
数据类型:双
S0
- - - - - -初始状态概率
非负数字矢量
初始状态概率,指定为逗号分隔组成的“S0”
和一个非负数字向量的长度numStates
。
估计
规范化S0
产生一个分布。
默认情况下,S0
是一个稳态分布计算渐近
。
估计
更新S0
在每个迭代中使用预期的初始分布的平滑概率。
例子:“S0”, 0.2 0.2 0.6
例子:“S0”, [0 1]
指定状态2为初始状态。
数据类型:双
X
- - - - - -预测数据
数字矩阵|单元格数值矩阵的向量
预测数据用来评估回归的所有的子组件Mdl
,指定为逗号分隔两人组成的“X”
细胞和一个数字矩阵或向量的数值矩阵。
使用相同的一个子集预测在每个州,指定X
作为一个矩阵numPreds
列,至少numObs
行。列对应不同的预测变量。子用关联矩阵的列,在秩序,子模型预测的数量。列的数量β
的属性Mdl.SubModels (
确定的外生变量回归组件的子模型j
)
。如果超过的行数j
numObs
,然后估计
使用最新的观测。
使用不同的预测在每个州,指定一个细胞这样的矩阵和向量numStates
。
默认情况下,估计
忽略了回归组件Mdl
。
数据类型:双
宽容
- - - - - -收敛公差
0.001
(默认)|积极的数字标量
MaxIterations
- - - - - -最大迭代次数
One hundred.
(默认)|正整数
最大的EM算法的迭代次数,指定为逗号分隔组成的“MaxIterations”
和一个正整数。
例子:“MaxIterations”, 1000年
数据类型:双
IterationPlot
- - - - - -国旗为策划loglikelihood在每个迭代
假
(默认)|真正的
国旗为策划loglikelihood在每个迭代中,指定为逗号分隔组成的“IterationPlot”
在这个表和一个值。
价值 | 描述 |
---|---|
真正的 |
算法终止时,估计 显示一个阴谋的loglikelihood在每个迭代步骤。 |
假 |
估计 没有显示一个阴谋。 |
例子:“IterationPlot”,真的
数据类型:逻辑
输出参数
EstMdl
——估计经建会动态回归模型
msVAR
对象
估计经建会动态回归模型,作为一个返回msVAR
对象。EstMdl
是一份Mdl
有南
值替换参数估计。EstMdl
完全指定。
请注意
行归一化可以改变指定值转移矩阵的输入模型Mdl.Switch.P
。
党卫军
预期的概率平滑状态
数字矩阵
预计平滑状态概率算法终止时,作为一个返回numObs
——- - - - - -numStates
数字矩阵。
h
——处理迭代的阴谋
图形对象
迭代的情节处理,作为一个图形对象返回IterationPlot
是真正的
。
h
包含一个独特的情节标识符,可以使用查询或修改属性的阴谋。
提示
在[4]汉密尔顿警告说:“尽管研究人员可能会使用最普遍的规范,所有的参数变化在大量的政权……在实践中这通常要求数据可以提供以上。”Hamilton recommends model parsimony and selective estimation, to "limit the focus to a few of the most important parameters that are likely to change."
较低的数据生成过程的差异会导致困难状态推理和随后的参数估计。在这种情况下,考虑扩展数据。方差尺度是抛物线。
算法
估计
实现了一个版本的EM算法中描述[2],[3],[4]。给定一个初始模型参数的估计Mdl0
,估计
迭代过程直到收敛:期望的步骤,
估计
适用于光滑的
数据获取的潜伏状态概率推断每个时间步和loglikelihood估计总体数据。最大化的一步,
估计
使用预期的平滑概率从期望步骤之前体重数据更新在每个子模型参数估计。
表面可能性的混合密度转换模型可以包含局部极大值和奇异性[2]。如果是这样的话,最大的本地最大的非零模型方差是最大似然估计(标定)。如果
Mdl0
是在附近的大中型企业,估计
通常是收敛的,但这并不能保证收敛。估计
处理两种类型的约束:约束子模型创新方差和协方差是不支持的。万博1manbetx
估计
计算创新协方差估计后,不管他们的价值观。
引用
[1]萧韦,M。,J. D. Hamilton. "Dating Business Cycle Turning Points." In商业周期的非线性分析(276年对经济分析的贡献,体积)。(c .米拉·罗斯曼和d·冯·eds)。阿姆斯特丹:翡翠集团出版有限公司,2006年。
[2]汉密尔顿,j . D。“分析的时间序列的变化机制。”计量经济学杂志。45卷,1990年,页39 - 70。
[3]汉密尔顿,詹姆斯D。时间序列分析。普林斯顿,纽约:普林斯顿大学出版社,1994年。
[4]汉密尔顿,j . D。“宏观经济制度和政权的转变。”在手册的宏观经济学。(h . Uhlig和j·泰勒、eds)。阿姆斯特丹:爱思唯尔出版社,2016年。
[5]科尔,E。“政权转换模型:股票市场指数的一个例子。”Rotterdam, NL: Econometric Institute, Erasmus School of Economics, 2010.
版本历史
介绍了R2019b
MATLAB命令
你点击一个链接对应MATLAB命令:
运行该命令通过输入MATLAB命令窗口。Web浏览器不支持MATLAB命令。万博1manbetx
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。