主要内容

完善

类:舰导弹

优化初始参数以辅助状态空间模型估计

描述

例子

完善(MdlYparams0找到拟合状态空间模型时使用的一组初始参数值Mdl响应数据Y,使用初始参数值的粗糙集params0.该软件使用几个例程,并显示每个例程的对数似然和初始参数值。

例子

完善(MdlYparams0名称,值显示带有一个或多个指定的附加选项的例程的结果名称,值对参数。例如,您可以包含一个由预测器和系数的初始值组成的线性回归组件。

例子

输出=完善(___返回结构数组(输出),其中包含一个细化的矢量,初始参数值,对应初始参数值的对数似然,以及软件所使用的获取这些值的方法。您可以使用前面语法中的任何输入参数。

输入参数

全部展开

包含未知参数的标准状态空间模型,指定为舰导弹返回的模型对象舰导弹

  • 对于显式创建的状态空间模型,软件估计所有系数矩阵的值(Mdl。一个Mdl。BMdl.C,Mdl。D),初始状态均值和协方差矩阵(Mdl。Mean0Mdl.Cov0).有关显式和隐式模型创建的详细信息,请参见舰导弹

  • 对于隐式创建的状态空间模型,您可以使用参数到矩阵映射函数指定模型结构和未知参数的位置。隐式地创建一个状态空间模型来估计复杂的模型,施加参数约束,并估计初始状态。参数到映射函数还可以容纳额外的输出参数。

请注意

Mdl不存储观察到的反应或预测数据。在需要的地方使用适当的输入和名称-值对参数提供数据。

观察到的响应数据Mdl是合适的,指定为数字矩阵或数字向量的单元向量。

  • 如果Mdl对于观测方程是时不变的,那么Y是一个T——- - - - - -n矩阵。矩阵的每一行对应一个周期,每一列对应模型中的一个特定观察值。因此,T样品大小和n为每个周期的观测次数。最后一行Y包含了最新的观察结果。

  • 如果Mdl对于观测方程,时间是变化的吗Y是一个T1细胞向量。Y {t}包含一个nt-观测周期的维向量t,在那里t= 1,…,T.中系数矩阵的相应维数Mdl.C {t}Mdl。D {t}必须与矩阵一致吗Y {t}所有的时间。最后一个细胞Y包含了最新的观察结果。

假设你创建了Mdl通过指定参数到矩阵的映射函数,该函数具有观测到的响应或预测器的输入参数。然后,映射函数在MATLAB中建立与观测响应和预测数据的连接®工作区,它覆盖Y

元素表示缺失的观测值。关于卡尔曼滤波如何容纳缺失观测的细节,请参见算法

数据类型:|细胞

数值最大似然估计的未知参数的初值,指定为数值向量。

的元素params0对应状态空间模型矩阵中的未知参数一个BC,D,以及,可选的初始状态均值Mean0和协方差矩阵Cov0

  • 如果你创建的Mdl显式地(即通过指定没有参数到矩阵映射函数的矩阵),然后软件映射参数个数S的状态空间模型矩阵和初始状态值。软件搜索按顺序排列一个BCDMean0Cov0

  • 如果你创建的Mdl隐式地(即通过使用参数到矩阵映射函数指定矩阵),然后在参数到矩阵映射函数中为状态空间模型矩阵、初始状态值和状态类型设置初始参数值。

数据类型:

名称-值参数

指定可选的逗号分隔的对名称,值参数。的名字参数名和价值为对应值。的名字必须出现在引号内。可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家

回归系数的初始值,指定为逗号分隔对,由“Beta0”和一个d——- - - - - -n数字矩阵。d是预测变量的数量(见预测),n观察到的响应序列数(见Y).

默认情况下,Beta0的一般最小二乘估计Y预测

数据类型:

预测数据为观测方程中的回归分量,指定为逗号分隔对组成“预测”和一个T——- - - - - -d数字矩阵。T是经期数和吗d为预测变量的数量。行t对应于在某一时期观测到的预测因子tZt)的扩展观测方程

y t Z t β C x t + D u t

换句话说,预测器系列充当观察平减指数。β是一个d——- - - - - -n软件用所有其他参数估计的回归系数的时不变矩阵。

  • n每个时期的观察,软件回归所有预测序列到每个观察。

  • 如果您指定预测,然后Mdl必须是时不变的。否则,软件返回错误。

  • 默认情况下,软件从状态空间模型中排除回归组件。

数据类型:

输出参数

全部展开

关于初始参数值的信息,作为1乘5结构数组返回。该软件使用五种算法来寻找初始参数值,每个元素输出对应一个算法。

的字段输出

描述
描述

细化算法。

的每个元素输出对应于其中一个算法:

“松界内点”
“Nelder-Mead算法”
“拟牛顿”
起始值扰动的
起始值收缩的

Loglikelihood 初始参数值对应的对数似然。
参数 精细初始参数值的向量。参数的顺序与中的顺序相同params0.如果你把这些初始值传递给估计,可以改善估计结果。

例子

全部展开

假设一个潜在过程是一个随机漫步。状态方程是

x t x t - 1 + u t

在哪里 u t 为高斯分布,均值为0,标准差为1。

随机生成100个观测值 x t ,假设级数从1.5开始。

T = 100;rng (1);%的再现性u = randn (T, 1);x = cumsum ([1.5; u]);x = x(2:结束);

进一步假设潜在过程受到可加性测量误差的影响。观测方程为

y t x t + ε t

在哪里 ε t 为高斯分布,均值为0,标准差为1。

使用随机潜在状态过程(x)和产生观测值的观测方程。

y = x + randn(T,1);

潜过程和观测方程共同构成状态空间模型。假设状态是一个平稳的AR(1)过程。则需要估计的状态空间模型为

x t ϕ x t - 1 + σ 1 u t y t x t + σ 2 ε t

指定系数矩阵。使用未知参数的值。

一个=南;B =南;C = 1;D =南;

使用系数矩阵指定状态空间模型。定义初始状态分布是平稳的StateType名称-值对的论点。

StateType = 0;Mdl =舰导弹(A, B, C, D,“StateType”, StateType);

Mdl是一个舰导弹模型。软件为初始状态的平均值和方差设置值。使用命令窗口中的显示来验证模型是否被正确指定。

将观察结果传递给估计来估计参数。为params0参数不太可能与它们的真实值对应。的下界约束0对于标准差。

Params0 = [-1e7 1e-6 2000];EstMdl =估计(Mdl y params0,“磅”(负无穷,0,0));
警告:由于反演困难,估计器的协方差矩阵无法精确计算。检查参数的可识别性。还可以尝试不同的初始值和其他选项来计算协方差矩阵。
方法:最大似然(fmincon)样本量:100对数似然:-2464.23 Akaike信息准则:4934.46贝叶斯信息准则:4942.27 | t统计概率多项式系数Std犯错  ------------------------------------------------------------ c (1) | -9.99977 9.99977 e + e + 06 05年-10.00000 0 c (2) | 1.23086 e + 05年1.91161 e + 13 c (3) | 2006.86501 - 3.11680 0.00000 - 1.00000 0.00000 - 1.00000 e + 11 | |最终状态性病Dev t统计概率x (1) | -3.37649 1999.42392 -0.00169 0.99865

估计不能聚合,因此结果是不可取的。

完善params0使用完善

输出=提炼(Mdl y params0);logL = cell2mat ({Output.LogLikelihood});[~, maxLogLIndx] = max (logL)
maxLogLIndx = 2
refinedParams0 =输出(maxLogLIndx)。参数
refinedParams0 =1×30.9705 -0.8934 0.9330
描述=输出(maxLogLIndx)。描述
描述= 'Nelder-Mead simplex'

产生最高对数似然值的算法为松界内点,这是第三个结构体在结构数组中输出

估计Mdl使用refinedParams0,为优化后的初始参数值向量。

EstMdl =估计(Mdl y refinedParams0,“磅”(负无穷,0,0));
方法:最大似然(fmincon)样本量:100对数似然:-181.379赤湖信息准则:368.758贝叶斯信息准则:376.574 | t统计概率多项式系数Std犯错  --------------------------------------------------- c (1) 0 c(2) | | 0.97050 0.02863 33.90367 0.89343 0.18521 4.82401 0.00000摄氏度(3)| 0.93303 0.15176 6.14806 0 | |最终状态性病Dev t统计概率x (1) | -3.93007 0.72066 -5.45343 0

估计收敛,使参数估计更可取。AR模型系数在两个标准误差1以内,说明状态过程是随机游走。

假设失业率和名义国民生产总值(nGNP)之间的关系是线性的。进一步假设失业率是一个AR(1)级数。从象征意义和状态空间的形式来看,模型是

数组$ $ \开始{}{1}& # xA;间{t} = \φ间{t - 1} + \σu_ {t} \ \ & # xA; {y_t} -β\ {Z_t} ={间{t}}, & # xA; \{数组}$ $

地点:

  • 美元间{t} $失业率是多少t

  • 美元y_ {t} $是观察到的失业率被nGNP (Z_t美元).

  • $ u_ {t} $状态扰动的高斯序列是否具有均值0和未知标准差\σ美元

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

负载Data_NelsonPlosser

对数据进行预处理,取失业率的第一个差,并将nGNP转换为一系列的收益。去掉与的顺序相对应的观察值在失业率序列开始时的值。

isNaN =任何(ismissing(数据表),2);%包含nan的标记句点gnpn = DataTable.GNPN (~ isNaN);y = DataTable.UR (~ isNaN);y = diff (y);T =大小(y, 1);Z = [ones(T,1) price2ret(gnpn)];

这个例子继续使用这个系列值。然而,使用卡尔曼滤波框架,软件可以容纳包含缺失值的序列。

指定系数矩阵。

一个=南;B =南;C = 1;

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

Mdl =舰导弹(A, B, C);

找到一组好的初始参数用于估计。

Params0 = [150 1000];%任意选择初始值Beta0 = [1 -100];输出=提炼(Mdl y params0,“预测”, Z,“Beta0”, Beta0);

输出是一个包含推荐初始参数值的1乘5结构数组。

选择最大对数似然值对应的初始参数值。

logL = cell2mat ({Output.LogLikelihood});[~,maxLogLIndx] = max(logL) refinedParams0 =输出(maxLogLIndx)。参数描述= Output(maxLogLIndx)。描述
maxLogLIndx = 2 refinedParams0 = 0.0000 -1.3441 1.3477 -24.4336 Description = 'Nelder-Mead simplex'

估计Mdl使用精炼的初始参数值refinedParams0

EstMdl = estimate(Mdl,y,refinedParams0(1:(end - 2))),“预测”, Z,...“Beta0”refinedParams0((- 1)结束:结束));
方法:最大似然(fminunc)样本量:61对数似然:-103.321赤池信息准则:214.642贝叶斯信息准则:223.085 | t统计概率多项式系数Std犯错  ---------------------------------------------------------- c (1) c (2) | | 0.20499 0.12217 1.67793 0.09336 -1.31586 0.08283 -15.88649 0 y < - z (1) | 1.38082 0.23315 5.92241 0 y < - z(2) | -24.87986 1.76909 -14.06365 0 | |最终状态性病Dev t统计概率x(1) | 1.19607 0正0

估计返回合理的参数估计及其相应的标准误差。

提示

  • 状态空间模型的似然曲面可能很复杂,例如,它们可能包含多个局部极大值。如果估计不能收敛,或收敛到一个不令人满意的解完善可能会找到一组更好的初始参数值估计

  • 返回的精制初始参数值完善可能看起来彼此相似params0.选择一组具有经济意义且对应于相对较大对数似然值的估计值。

  • 如果细化尝试失败,那么软件将显示错误并设置相应的日志可能性为.它还将其初始参数值设置为[]

算法

卡尔曼滤波通过不更新与缺失观测相对应的滤波状态估计来容纳缺失数据。换句话说,假设你的数据在某个时期有一个缺失的观察值t.然后是一段时期的状态预测t的基础上t- 1观测值,等于滤波状态为周期t