完善
类:dssm
细化初始参数以帮助扩散状态空间模型估计
描述
输入参数
Mdl
- - - - - -扩散状态空间模型
dssm
模型对象
包含未知参数的扩散状态空间模型,指定为dssm
返回的模型对象dssm
.
对于显式创建的状态空间模型,软件估计所有的状态空间模型
南
系数矩阵中的值(Mdl。一个
,Mdl。B
,Mdl.C
,Mdl。D
)和初始状态均值和协方差矩阵(Mdl。Mean0
而且Mdl.Cov0
).有关显式和隐式模型创建的详细信息,请参见dssm
.对于隐式创建的状态空间模型,您可以使用参数到矩阵映射函数指定模型结构和未知参数的位置。隐式地创建一个状态空间模型来估计复杂模型、施加参数约束并估计初始状态。参数映射函数还可以容纳额外的输出参数。
请注意
Mdl
不存储观察到的响应或预测器数据。在必要时使用适当的输入和名值对参数提供数据。
Y
- - - - - -观察到的响应数据
数字矩阵|数值向量的单元向量
观察到的响应数据Mdl
适合,指定为数值矩阵或数值向量的单元格向量。
如果
Mdl
那么对于观测方程是时不变的吗Y
是一个T——- - - - - -n矩阵。矩阵的每一行对应一个周期,每一列对应模型中的一个特定观测值。因此,T样本量和n是每个周期的观测数。最后一行Y
包含最新的观察结果。如果
Mdl
时间是否随观测方程变化Y
是一个T-by-1单元格向量。Y {t}
包含一个nt-周期观测值的维向量t,在那里t= 1,…,T.中的系数矩阵的相应维数Mdl.C {t}
而且Mdl。D {t}
必须与矩阵一致吗Y {t}
所有时期都适用。最后一个细胞Y
包含最新的观察结果。
假设你创建了Mdl
通过隐式地指定一个参数到矩阵的映射函数,并且该函数具有观察到的响应或预测器的输入参数。然后,映射函数在MATLAB中建立观测响应和预测器数据的链接®的值重写Y
.
南
元素表示缺失的观察结果。有关卡尔曼滤波器如何容纳缺失观测的详细信息,请参见算法.
数据类型:双
|细胞
params0
- - - - - -未知参数的初始值
数值向量
数值最大似然估计的未知参数的初始值,指定为数值向量。
的要素params0
对应于状态空间模型矩阵中的未知参数一个
,B
,C
,D
,和可选的初始状态均值Mean0
协方差矩阵Cov0
.
如果你创建了
Mdl
显式地(即通过指定矩阵而不使用参数到矩阵的映射函数),然后软件映射的元素参数个数
来南
S在状态空间模型矩阵和初始状态值。该软件搜索南
S列,按照顺序一个
,B
,C
,D
,Mean0
,Cov0
.如果你创建了
Mdl
隐式地(即通过使用参数到矩阵映射函数指定矩阵),然后在参数到矩阵映射函数中为状态空间模型矩阵、初始状态值和状态类型设置初始参数值。
数据类型:双
名称-值参数
指定可选参数对为Name1 = Value1,…,以=家
,在那里的名字
参数名称和价值
对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。
在R2021a之前,使用逗号分隔每个名称和值,并将其括起来的名字
在报价。
预测
- - - - - -预测数据
[]
(默认)|数字矩阵
观测方程中回归分量的预测器数据,指定为由逗号分隔的对组成“预测”
和一个T——- - - - - -d数字矩阵。T是例数和d是预测变量的数量。行t对应于周期内观测到的预测因子t(Zt)的扩展观测方程
换句话说,预测器系列可以作为观察平减指数。β是一个d——- - - - - -n软件用所有其他参数估计回归系数的时不变矩阵。
为n每个周期的观测值,软件将所有预测器序列回归到每个观测值上。
如果你指定
预测
,然后Mdl
必须是时不变的。否则,软件将返回一个错误。默认情况下,软件从状态空间模型中排除一个回归组件。
数据类型:双
输出参数
例子
拟合时不变扩散状态空间模型时的参数细化
假设一个潜在的过程是一个随机游走。因此,状态方程为
在哪里 为均值为0,标准差为1的高斯分布。
生成100个观察值的随机序列 ,假设该系列从1.5开始。
T = 100;rng (1);%用于再现性u = randn(T,1);X = cumsum([1.5;u]);X = X(2:结束);
进一步假设潜在过程受附加测量误差的影响。因此,观测方程为
在哪里 为均值为0,标准差为1的高斯分布。
使用随机潜伏状态过程(x
)和观测方程来生成观测值。
y = x + randn(T,1);
潜伏过程和观测方程共同构成了一个状态空间模型。假设状态是一个平稳的AR(1)过程。那么要估计的状态空间模型为
指定系数矩阵。使用南
未知参数的值。
A = NaN;B = NaN;C = 1;D = NaN;
通过传递系数矩阵来创建扩散状态空间模型dssm
并指定状态类型为弥漫。
StateType = 2;Mdl = dssm(A,B,C,D,“StateType”, StateType);
Mdl
是一个dssm
模型对象。软件将初始状态的均值和方差设置为0和正
.使用命令窗口中的显示来验证模型是否正确指定。
找到一组用于估计的良好起始参数。
Params0 = [1 1 1];%任意选择的初始值Output = refine(Mdl,y,params0);
输出
是一个1乘5的结构数组,包含推荐的初始参数值。
选择最大对数似然对应的初始参数值
logL = cell2mat({Output.LogLikelihood})';[~,maxLogLIndx] = max(logL)
maxLogLIndx = 3
refinedParams0 = Output(maxLogLIndx)。参数
refinedParams0 =1×30.9781 0.8965 0.9336
描述=输出(maxLogLIndx)。描述
描述= '松散的内部点'
产生最高对数似然值的算法是拟牛顿
,这是第一个结构体
在结构数组中输出
.
估计Mdl
使用refinedParams0
,为细化初始参数值的向量。
EstMdl =估计(Mdl,y,refinedParams0,“磅”(负无穷,0,0));
方法:最大似然(fmincon)有效样本容量:99对数似然:-179.018 Akaike信息准则:364.036贝叶斯信息准则:371.851 | Coeff Std Err t Stat Prob --------------------------------------------------- c(1) | 0.97805 0.02947 33.18393 0 c(2) | 0.89651 0.18465 4.85529 0.00000 c(3) | 0.93355 0.15187 6.14707 0 | |最终状态Std Dev t Stat Prob x(1) | -3.95108 0.72269 -5.46719 0
AR模型系数在1的两个标准误差范围内,表明状态过程是随机游走。
改进包含回归分量的扩散状态空间模型估计
假设失业率和名义国民生产总值(nGNP)之间的关系是线性的。进一步假设失业率是一个AR(1)系列。在状态空间形式中,该模型是
地点:
失业率是什么时候t.
为观察到的失业率以nGNP的对数( ).
状态扰动的高斯级数是否具有均值为0和未知的标准差 .
加载Nelson-Plosser数据集,其中包含失业率和nGNP系列数据。
负载Data_NelsonPlosser
通过取失业率的第一个差值并将nGNP转换为一系列回报来预处理数据。的序列删除对应的观测值南
失业率系列开始时的数值。
isNaN = any(ismissing(DataTable),2);包含nan的标记句点gnpn = dattable . gnpn (~isNaN);y = dattable . ur (~isNaN);Y = diff(Y);T = size(y,1);Z = [ones(T,1) price2ret(gnpn)];
本例继续使用没有的系列南
值。然而,使用卡尔曼滤波器框架,该软件可以容纳包含缺失值的系列。
指定系数矩阵。
A = NaN;B = NaN;C = 1;
使用。创建状态空间模型dssm
通过提供系数矩阵并指定状态值来自扩散分布。弥漫规范表明完全不知道初始分布的矩。
StateType = 2;Mdl = dssm(A,B,C,“StateType”, StateType);
Mdl
是一个dssm
模型对象。
找到一组用于估计的良好起始参数。
Params0 = [150 1000];%任意选择的初始值贝塔a0 = [1 -100];输出= refine(Mdl,y,params0,“预测”, Z,“Beta0”, Beta0);
输出
是一个1乘5的结构数组,包含推荐的初始参数值。
选择最大对数似然对应的初始参数值。
logL = cell2mat({Output.LogLikelihood})';[~,maxLogLIndx] = max(logL)
maxLogLIndx = 5
refinedParams0 = Output(maxLogLIndx)。参数
refinedParams0 =1×40.2070 -1.3229 1.3610 -24.8848
描述=输出(maxLogLIndx)。描述
描述= '起始值收缩'
产生最高对数似然值的算法是Nelder-Mead单纯形
,它是结构数组中的第二个结构体输出
.
估计Mdl
使用经过细化的初始参数值refinedParams0
.
EstMdl =估计(Mdl,y,refinedParams0(1:(end - 2)),“预测”, Z,...“Beta0”,refinedParams0((end - 1):end));
方法:最大似然(fminunc)有效样本量:60对数似然:-101.924 Akaike info criterion: 211.849 Bayesian info criterion: 220.292 | Coeff Std Err t Stat Prob ---------------------------------------------------------- c(1) | 0.20700 0.12330 1.67891 0.09317 c(2) | -1.32287 0.08415 -15.71964 0 y <- z(1) | 1.36101 0.23736 5.73388 0 y <- z(2) | -24.88484 1.78021 -13.97861 0 | |最终状态Std Dev t Stat Prob x(1) | 1.21611 0 Inf 0
提示
算法
卡尔曼滤波器通过不更新对应于缺失观测值的过滤状态估计来容纳缺失数据。换句话说,假设您的数据在周期有一个缺失的观测值t.然后,对时期进行状态预测t,在前面的基础上t- 1个观测值,相当于对周期的过滤状态t.
版本历史
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入该命令来运行该命令。Web浏览器不支持MATLAB命令。万博1manbetx
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。