主要内容

含回归分量的状态空间模型预测观测

这个例子展示了如何估计一个包含回归成分的回归模型,然后从拟合的模型中预测观测值。

假设失业率变化与名义国民生产总值(nGNP)增长率之间的线性关系值得关注。进一步假设失业率的第一个差值是ARMA(1,1)系列。在状态空间形式中,该模型是

x 1 t x 2 t ϕ θ 0 0 x 1 t - 1 x 2 t - 1 + 1 1 u 1 t y t - β Z t x 1 t + σ ε t

地点:

  • x 1 t 是当时失业率的变化吗t

  • x 2 t 为MA(1)效应的虚拟状态。

  • y 1 t 是观察到的失业率以本地生产总值增长率扣除后的变化( Z t ).

  • u 1 t 为状态扰动的高斯序列,其均值为0,标准差为1。

  • ε t 观测创新的高斯级数是否具有均值0和标准差 σ

加载Nelson-Plosser数据集,其中包含失业率和nGNP系列。

负载Data_NelsonPlosser

对数据进行预处理,取nGNP系列的自然对数,以及每个系列的第一差值。另外,去掉起始部分每个系列的值。

isNaN = any(ismissing(DataTable),2);包含nan的标记句点gnpn = dattable . gnpn (~isNaN);u = dattable . ur (~isNaN);T = size(gnpn,1);%样本量Z = [ones(t -1,1) diff(log(gnpn))];Y = diff(u);

虽然本例删除了缺失值,但该软件可以在卡尔曼滤波器框架中容纳包含缺失值的序列。

为了确定模型对观测值的预测效果,可以去掉最后10个观测值进行比较。

numPeriods = 10;%预测范围isY = y(1:end-numPeriods);样本内观测值%oosY = y(end- numperiods +1:end);%样本外观测值ISZ = Z(1:end-numPeriods,:);%样本内预测因子OOSZ = Z(end- numperiods +1:end,:);%样本外预测因子

指定系数矩阵。

A = [NaN NaN;0 0];B = [1;1);C = [10];D = NaN;

使用指定状态空间模型舰导弹

Mdl = ssm(A,B,C,D);

估计模型参数。属性指定回归组件及其初始值,以进行优化“预测”而且“Beta0”名称-值对参数。限制估计 σ 对所有正的实数。为了数值稳定性,在软件计算参数协方差矩阵时指定Hessian,使用“CovMethod”名称-值对参数。

Params0 = [0.3 0.2 0.1];%任意选择[EstMdl,estParams] =估计(Mdl,isY,params0,“预测”ISZ,...“Beta0”(0.1 - 0.2),“磅”(负负0负,负),“CovMethod”“海赛”);
方法:最大似然(fmincon)样本量:51对数似然:-87.2409赤井信息准则:184.482贝叶斯信息准则:194.141 | Coeff Std Err t Stat Prob ---------------------------------------------------------- c(1) | -0.31780 0.19429 -1.63572 0.10190 c(2) | 1.21242 0.48882 2.48032 0.01313 c(3) | 0.45583 0.63930 0.71302 0.47584 y <- z(1) | 1.32407 0.26313 5.03201 0 y <- z(2) | -24.48733 1.90115 -12.88024 0 | |最终状态Std Dev Stat Prob x(1) | -0.38117 0.42842 -0.88971 0.37363 x(2) | 0.23402 0.66222 0.35339 0.72380

EstMdl是一个舰导弹模型,您可以使用点表示法访问它的属性。

在预报视界上的预报观测。EstMdl不存储数据集,因此必须将其传递给适当的名称-值对参数。

[fY,yMSE] = forecast(EstMdl,numPeriods,isY,“Predictors0”ISZ,...“PredictorsF”OOSZ,“β”, estParams (end-1:结束));

财政年度是一个10乘1的向量包含预测的观测,和yMSE是一个包含预测观测值方差的10 × 1向量。

得到95% wald型预测区间。将预测观测值与它们的真实值和预测间隔绘制出来。

预测区间(:,1)= fY - 1.96*平方根(yMSE);预测区间(:,2)= fY + 1.96*平方根(yMSE);figure h = plot(dates(end- numperiods -9:end- numperiods),isY(end-9:end),“- k”...日期(end-numPeriods + 1:结束),oosY,“- k”...日期(end-numPeriods + 1:结束),财政年度,“——r”...日期(end-numPeriods + 1:结束),ForecastIntervals,“b”...日期(end-numPeriods: end-numPeriods + 1),...[isY(结束)* (3,1),[oosY (1); ForecastIntervals (: 1)]],”:k”...“线宽”2);包含(“时间”) ylabel (“失业率的变化”)传说(h ((1, 3, 4)) {“观察”“预测反应”...“95%预测区间”})标题(“失业率的观察和预测变化”

图中包含一个轴对象。标题为“失业率的观察和预测变化”的轴对象包含8个类型线对象。这些对象代表观察结果,预测响应,95%预测区间。

这个模型似乎很好地预测了失业率的变化。

另请参阅

|||

相关的例子

更多关于