bssm
描述
bssm
创建一个bssm
对象,代表一个贝叶斯线性状态空间模型,从指定parameter-to-matrix映射函数,定义了结构、状态空间模型和测井参数的先验分布函数。可以在状态空间模型定常或时变状态或观察变量,xt或yt分别可以多元系列。国家干扰和高斯或学生的观察创新t随机变量。
一般来说,bssm
对象指定状态空间模型的先验分布和特征。即模型对象是一个模板供进一步使用。具体地说,将数据合并到后验分布的模型分析,通过适当的模型对象和数据目标函数。
或者,舰导弹
对象提供了一个替代的贝叶斯视图状态空间模型。除了广泛的操作状态空间模型舰导弹
对象提供,您可以使用ssm2bssm
切换到一个标准的线性状态空间模型的贝叶斯视图通过将指定的舰导弹
对象一个bssm
对象相等的。因为舰导弹
函数允许您创建一个标准的线性状态空间模型通过显式地指定系数矩阵,standard-to-Bayesian模型转换可以方便简单的状态空间模型。
创建
语法
描述
有几种方法可以创建一个bssm
对象代表了一个贝叶斯:状态空间模型
创建之前模型——直接创建一个
bssm
对象,代表之前的模型中,通过使用bssm
函数和指定parameter-to-matrix映射函数和日志参数的先验分布函数。这种方法适应状态空间模型简单通过复杂的结构。更多细节,请参阅下面的语法。标准模型转换为贝叶斯先验模型——把一个指定的标准,线性状态空间模型,一个
舰导弹
对象,bssm
通过模型对象ssm2bssm
函数。转换后的贝叶斯模型状态空间结构具有相同的标准模型。使用这种方法对于简单的状态空间模型,当你喜欢指定明确的系数矩阵。你可以选择指定的日志前密度参数。有关详细信息,请参见ssm2bssm
和舰导弹
。后估计模型——通过一个
bssm
对象代表之前的模型中,观察到的响应数据,初始参数值估计
函数来获得一个bssm
对象代表一个后模型。更多细节,请参阅估计
。
创建状态空间模型贝叶斯对象PriorMdl
= bssm (ParamMap
,ParamDistribution
)PriorMdl
之前,模型和高斯状态扰动和观察创新,使用parameter-to-matrix映射函数ParamMap
,你写日志先验分布的参数。
的ParamMap
函数映射的集合线性状态空间模型参数Θ定常或时变系数矩阵一个,B,C,D。除了系数矩阵,ParamMap
可以映射任何以下数量:
初始状态均值和方差
Mean0
和Cov0
状态类型
StateType
泄气的观测数据
DeflatedData
以适应观测方程中回归组件
的ParamDistribution
密度函数接受Θ并返回相应的日志。
PriorMdl
是一个模板,用于指定Θ联合先验分布和状态空间模型的结构。
集属性代表国家分布的扰动和观察创新使用名称-值参数。例如,PriorMdl
= bssm (ParamMap
,ParamDistribution
,名称=值
)bssm (ParamMap ParamDistribution ObservationDistribution =结构(“名称”,“t”,“景深”,6))
指定t分布在6个自由度为所有观察创新变量ut在贝叶斯状态空间模型。
输入参数
ParamMap
- - - - - -Parameter-to-matrix映射函数
函数处理
Parameter-to-matrix映射函数,确定数据的可能性,指定为一个函数处理形式@
,在那里fcnName
是函数名。fcnName
ParamMap
设置ParamMap
财产。对象的功能bssm
计算数据的可能性标准卡尔曼滤波器另外,概率条件的参数。
假设
MATLAB的名称吗®指定参数Θ状态空间模型如何映射到函数的系数矩阵,可选地,其他特征状态空间模型。然后,paramMap
一定是这种形式。paramMap
函数[A, B, C, D, Mean0 Cov0, StateType, DeflateY] =paramMap(θotherInputs…)…结束
是一个θ
numParams
1数字向量的线性状态空间模型参数Θ作为第一个输入参数。函数可以接受其他投入在随后的位置。ParamMap
返回此表中状态空间模型参数。数量 输出的位置 描述 一个t 1 要求状态转换关系系数矩阵
一个
Bt 2 Ct 3 Dt 4 μ0 5 可选初始状态平均向量
Mean0
Σ0 6 可选初始状态协方差矩阵
Cov0
StateType
7 DeflatedData
8 可选的阵列响应数据泄气的预测数据,提供一个回归组件的观测方程
下标t表明,参数时变(忽略下标为定常参数)。
跳过指定一个可选的输出参数,设置参数
[]
在函数体。例如,跳过指定Mean0
,设置Mean0 = [];
的函数。的默认值
Mean0
,Cov0
,StateType
,请参阅算法。
指定参数后验分布中包含通过设置他们的价值一个条目的第一个输入参数
并设置项的系数值。例如,下面的行定义一维定常状态空间模型θ
一个=θ(1);B =θ(2);C = 1;D =θ(3);
如果
只需要输入参数向量参数,您可以创建的paramMap
bssm
对象通过调用:
Mdl = bssm (@paramMap,……)
一般来说,创建的bssm
对象通过调用:
Mdl = bssm (@ (θ)paramMap(θotherInputArgs…)…)
例子:bssm (@ (params)
指定parameter-to-matrix映射函数paramFun
(@ParamDistributionθ,y, z))
接受状态空间模型的参数paramFun
θ
,观察反应y
和预测数据z
。
提示
一个最佳实践是集StateType
每个州的ParamMap
对下列原因:
默认情况下,软件生成
StateType
可能不准确,但默认选择。例如,软件无法区分一个常数1状态和一个静态状态。软件不能推断出
StateType
理论上的数据,因为数据来自观测方程。状态方程的实现是不可见的。
数据类型:function_handle
ParamDistribution
- - - - - -日志状态空间模型联合概率密度函数的参数Π(Θ)
函数处理
日志状态空间模型联合概率密度函数的参数Π(Θ),指定为一个函数处理形式@
,在那里fcnName
是函数名。fcnName
ParamDistribution
设置ParamDistribution
财产。
假设
是MATLAB函数定义的名字Θ的联合先验分布。然后,logPrior
一定是这种形式。logPrior
函数logpdf=logPrior(θotherInputs…)…结束
是一个θ
numParams
1数字Θ向量线性状态空间模型的参数。的元素
必须对应于这些的θ
ParamMap
。函数可以接受其他投入在随后的位置。
是代表日志数字标量Θ联合概率密度的输入logpdf
。θ
如果ParamDistribution
只需要输入参数向量参数,您可以创建的bssm
对象通过调用:
Mdl = bssm (…, @logPrior)
一般来说,创建的bssm
对象通过调用:
Mdl = bssm (…, @ (θ)logPrior(θ,otherInputArgs…))
提示
因为之前界外密度评价是0,界外的日志前密度参数设置参数负
。
数据类型:function_handle
属性
ParamMap
- - - - - -Parameter-to-matrix映射函数
函数处理
Parameter-to-matrix映射函数,存储为一个函数句柄和设定的ParamMap
输入参数。ParamMap
完全指定状态空间模型的结构。
数据类型:function_handle
ParamDistribution
- - - - - -参数分布表示
函数处理|数字矩阵
StateDistribution
- - - - - -分布的扰动过程
“高斯”
(默认)|“t”
|特征向量|结构数组
自从R2022b
分布的扰动过程,指定为一个分布在这个表名称或结构数组。bssm
作为一个结构数组存储价值。
分布 | 的名字 | 变量支持金宝app | 结构数组 | Hyperparameter估计支持金宝app |
---|---|---|---|---|
标准高斯 | “高斯” |
多元 | 结构(“名字”、“高斯”) |
不适用 |
学生的t | “t” |
多元 | 结构(“名字”,“t”,“景深”, |
是的 |
适用于所有指定的分布状态扰动过程变量。
对学生的t地理分布:
如果你提供一个结构数组,您必须指定的
“名称”
和“景深”
字段。你可以改变hyperparameter值通过使用点符号在您创建模型。例如,
Mdl.Distribution。景深= 3
。为了便于后取样,
bssm
代表多元学生的t规模分布变量作为inverse-gamma混合物。更多细节,请参阅潜变量的方差t-Distributed错误。
更多细节分布hyperparameters,明白了分布Hyperparameters。
例子:结构(“名字”,“t”,“景深”,6)
指定一个t分布与6
自由度状态扰动过程。
ObservationDistribution
- - - - - -分布的观察创新的过程
“高斯”
(默认)|“t”
|“混合”
|“拉普拉斯”
|“skewnormal”
|特征向量|结构数组
自从R2022b
分布的观察创新过程,指定为一个分布在这个表名称或结构数组。bssm
作为一个结构数组存储价值。
分布 | 的名字 | 变量支持金宝app | 结构数组 | Hyperparameter估计支持金宝app |
---|---|---|---|---|
标准高斯 | “高斯” |
多元 | 结构(“名字”、“高斯”) |
不适用 |
学生的t | “t” |
多元 | 结构(“名字”,“t”,“景深”, |
是的 |
有限高斯混合 | “混合” |
单变量 | 结构(“名字”、“混合”,“重”, |
没有 |
拉普拉斯 | “拉普拉斯” |
单变量 | 结构(“名字”、“拉普拉斯”) |
不适用 |
斜正常 | “skewnormal” |
单变量 | 结构(“名字”、“skewnormal”、“三角洲”, |
是的 |
指定的分布适用于所有观察创新过程变量。不过,您可以指定不同的高斯混合政权之间的均值和方差的变量。
对学生的t地理分布:
如果你提供一个结构数组,您必须指定的
“名称”
和“景深”
字段。你可以改变hyperparameter值通过使用点符号在您创建模型。例如,
Mdl.Distribution。景深= 3
。为了便于后取样,
bssm
代表多元学生的t规模分布变量作为inverse-gamma混合物。更多细节,请参阅潜变量的方差t-Distributed错误。
为有限高斯混合分布,
bssm
集体制(混合组件)的数量的元素的数量
。因此,指定重要的情况下,分布有多个政权,至少必须指定重量
。重量
更多细节分布hyperparameters,明白了分布Hyperparameters。
例子:结构(“名字”,“t”,“景深”,6)
指定一个t分布与6
自由度状态扰动过程。
例子:结构(“名字”、“混合”,“意思”,[1],“体重”,[0.6 - 0.4])
单变量指定一个two-regime高斯混合模型观察创新变量。政权的权重0.6
和0.4
。政权意味着向量[1]
。默认所有政权是方差1
。
例子
创建定常状态空间模型贝叶斯与已知和未知参数
创建一个贝叶斯状态空间模型包含两个独立的、静止的,自回归的状态。观察结果的确定性和两个州(换句话说,模型不实施观察错误 )。象征性地,方程组
任意假设的先验分布 , , , 是独立的高斯随机变量平均值为0.5,方差为1。
的本地函数部分包含两个功能需要指定状态空间模型贝叶斯。您可以使用函数只在这个脚本。
的paramMap
函数接受一个向量的状态空间模型的未知参数和返回所有以下数量:
一个
= 。B
= 。C
= 。D
= 0。Mean0
和Cov0
是空数组[]
,指定默认值。StateType
= ,表明每个状态是静止的。
的paramDistribution
函数接受相同的未知参数向量一样paramMap
,但它返回之前的日志密度参数的当前值。指定参数值在参数空间日志前密度负
。
建立状态空间模型的贝叶斯处理直接通过传递函数paramMap
和paramDistribution
来bssm
。
Mdl = bssm (@paramMap @priorDistribution)
Mdl =映射状态空间模型,定义了一个:@paramMap日志参数先验分布密度:@priorDistribution
Mdl
是一个bssm
模型指定结构和状态空间模型的状态空间模型参数的先验分布。因为Mdl
包含未知值,它是一个模板后评估。
本地函数
这个示例使用以下功能。paramMap
parameter-to-matrix映射函数和吗priorDistribution
日志先验分布的参数。
函数[A, B, C, D, Mean0 Cov0, StateType] = paramMap(θ)=[θ(1)0;0θ(2)];B =[θ(3)0;0θ(4)];C = [1];D = 0;Mean0 = [];% MATLAB使用默认的初始状态的意思Cov0 = [];% MATLAB使用初始状态协方差StateType = [0;0);%两个静止的状态结束函数logprior = priorDistribution(θ)paramconstraints = [(abs(θ(1))> = 1)(abs(θ(2))> = 1)…(θ(3)θ(4)< < 0)(0)];如果(和(paramconstraints) logprior =无穷;其他的mu0 = 0.5 *(元素个数(θ),1);sigma0 = 1;p = normpdf(θ,mu0, sigma0);logprior =总和(日志(p));结束结束
建立状态空间模型时变贝叶斯
创建一个时变,状态空间模型贝叶斯与这些特征:
从时间1到250年,马状态方程包括静止的AR(2)和(1)模型,分别观察模型的加权和两个国家。
从251年到500年时期,状态模型只包括第一AR(2)模型。
和 是单位矩阵。
之前的密度是平的。
象征性地,是状态空间模型
写一个函数,用于指定参数θ
状态空间模型映射到矩阵,初始状态的时刻,和国家类型。将该代码保存为一个文件命名timeVariantParamMap.m
在你的MATLAB®路径。另外,开放访问函数的例子。
函数[A, B, C, D, Mean0 Cov0, StateType] = timeVariantParamMapBayes(θ,T)%时变,状态空间模型贝叶斯参数映射函数%的例子。这个函数将向量映射参数状态方程矩阵% (A, B, C, D),初始状态值和初始状态方差% (Mean0和Cov0),状态(StateType)的类型。从阶段1%通过T / 2,模型是一个静止的AR(2)和一个马(1)模型,%和观测模型的加权和两个国家。从%时期通过T, T / 2 + 1状态模型AR(2)模型。的%(见日志先验分布执行参数约束% flatPriorBSSM.m)。T1 =地板(T / 2);T2 = T - T1 - 1;A1 ={[θ(1)θ(2)0 0;1 0 0 0;0 0 0θ(4);0 0 0 0]};B1 ={[θ(3)0;0 0;0 1;0 1]}; C1 = {theta(5)*[1 0 1 0]}; D1 = {theta(6)}; Mean0 = [0.5 0.5 0 0]; Cov0 = eye(4); StateType = [0 0 0 0]; A2 = {[theta(1) theta(2) 0 0; 1 0 0 0]}; B2 = {[theta(3); 0]}; A3 = {[theta(1) theta(2); 1 0]}; B3 = {[theta(3); 0]}; C3 = {theta(7)*[1 0]}; D3 = {theta(8)}; A = [repmat(A1,T1,1); A2; repmat(A3,T2,1)]; B = [repmat(B1,T1,1); B2; repmat(B3,T2,1)]; C = [repmat(C1,T1,1); repmat(C3,T2+1,1)]; D = [repmat(D1,T1,1); repmat(D3,T2+1,1)];结束
编写一个函数,它指定了一个联合平之前和参数约束。将该代码保存为一个文件命名flatPriorBSSM.m
在MATLAB的路径上。另外,开放访问函数的例子。
函数logprior = flatPriorBSSM(θ)% flatPriorBSSM计算平之前的日志密度为8%变量θ(见timeVariantParamMapBayes.m)。日志的概率%为参数在参数空间是无穷。%θ(1)和θ(2)滞后1和滞后2项在一个静止的AR (2)%的模型。的特征值需要在AR(1)表示%单位圆。evalsAR2 = eig([θ(1)θ(2);1 0]);evalsOutUC =总和(abs (evalsAR2) > = 1) > 0;%的标准偏差干扰和错误(θ(3),θ(6),%和θ(8))需要积极。nonnegsig1 =θ(3)< = 0;nonnegsig2 =θ(6)< = 0;nonnegsig3 =θ(8)< = 0;paramconstraints = [evalsOutUC nonnegsig1…nonnegsig2 nonnegsig3];如果总和(paramconstraints) > 0 logprior =无穷;其他的logprior = 0;%之前密度正比于1的所有值%在参数空间。结束结束
创建一个bssm
对象表示状态空间模型贝叶斯的对象。供应parameter-to-matrix映射函数timeVariantParamMapBayes
作为单独处理的函数θ
通过设置时间序列长度为500。
numObs = 500;Mdl = bssm(@(θ)timeVariantParamMapBayes(θ,numObs) @flatPriorBSSM)
Mdl =映射状态空间模型,定义了一个:@(θ)timeVariantParamMapBayes(θ,numObs)日志参数先验分布密度:@flatPriorBSSM
指定t分布式状态扰动
这个例子显示了如何指定国家干扰学生的状态空间模型的贝叶斯t分布式为了模型过度峰度的状态方程。的例子显示了如何准备自由度参数后验估计和示例完全指定分布。
考虑到贝叶斯在状态空间模型创建定常状态空间模型贝叶斯与已知和未知参数,但假设干扰分布作为一个学生的状态 随机变量。
创建的模型通过传递函数处理本地函数表示状态空间模型的结构和模型参数的先验分布 。指定的分布状态干扰学生的 。
Mdl = bssm (@paramMap @priorDistribution StateDistribution =“t”);Mdl.StateDistribution
ans =结构体字段:名称:“t”景深:南
Mdl
是一个bssm
模型。房地产Mdl.StateDistribution
是一个结构数组指定的分布状态扰动。这个领域景深
是南
默认情况下,这意味着
分布的自由度
配置了所有状态空间模型未知参数估计
。
您可以指定一个固定值自由度两种方式:
通过设置景深领域积极的标量使用点符号
通过再现
bssm
模型和提供一个结构数组指定名称和分布的自由度
指定该自由度通过使用这两种方法都是6。
Mdl.StateDistribution。景深= 6
Mdl =映射状态空间模型,定义了一个:@paramMap日志参数先验分布密度:@priorDistribution自由度的t分布状态方程:6
statedist =结构(“名称”,“t”,“景深”6);Mdl2 = bssm (@paramMap、@priorDistribution StateDistribution = statedist)
Mdl2 =映射状态空间模型,定义了一个:@paramMap日志参数先验分布密度:@priorDistribution自由度的t分布状态方程:6
Mdl
和Mdl2
是相等的。
本地函数
函数[A, B, C, D, Mean0 Cov0, StateType] = paramMap(θ)=[θ(1)0;0θ(2)];B =[θ(3)0;0θ(4)];C = [1];D = 0;Mean0 = [];% MATLAB使用默认的初始状态的意思Cov0 = [];% MATLAB使用初始状态协方差StateType = [0;0);%两个静止的状态结束函数logprior = priorDistribution(θ)paramconstraints = [(abs(θ(1))> = 1)(abs(θ(2))> = 1)…(θ(3)θ(4)< < 0)(0)];如果(和(paramconstraints) logprior =无穷;其他的mu0 = 0.5 *(元素个数(θ),1);sigma0 = 1;p = normpdf(θ,mu0, sigma0);logprior =总和(日志(p));结束结束
指定日志卡方分布观察创新
模型波动聚类,您可以指定 分布式观察创新通过设置适当的混合权重,政权7-regime高斯混合分布的均值和方差。
考虑到贝叶斯在状态空间模型创建定常状态空间模型贝叶斯与已知和未知参数,但假设observation-innovations过程是分布式的 随机变量。
创建一个结构数组与以下字段和值。
场
的名字
与价值“混合”
场
重量
与价值(
0.0089 0.0541 0.1338 0.2761 0.2923 0.1494 0.0854]场
的意思是
与价值(-9.3202 -5.3145 -3.4147 -1.7097 - -0.4531 0.3975 - 1.1925)
场
方差
与价值(3.2793 2.4574 1.8874 1.3121 0.8843 0.5898 0.4995)。^ 2
重量= (0.0089 0.0541 0.1338 0.2761 - 0.2923 0.1494 - 0.0854);μ= (-9.3202 -5.3145 -3.4147 -1.7097 - -0.4531 0.3975 - 1.1925);sigma2 = (3.2793 2.4574 1.8874 1.3121 0.8843 0.5898 0.4995)。^ 2;ObsInnovDist =结构(“名称”,“混合”,“重量”、体重、…“的意思是”亩,“方差”,sigma2);
创建的模型通过传递函数处理本地函数表示状态空间模型的结构和模型参数的先验分布
。使用结构数组ObsInnovDist
指定的分布观察创新就是定义一个与hyperparameters有限高斯混合
分布。
Mdl = bssm (@paramMap、@priorDistribution ObservationDistribution = ObsInnovDist);Mdl.ObservationDistribution
ans =结构体字段:名称:“混合物”重量:[0.0089 0.0541 0.1338 0.2761 0.2923 0.1494 0.0854]说:[-9.3202 -5.3145 -3.4147 -1.7097 -0.4531 0.3975 1.1925]方差:[10.7538 6.0388 3.5623 1.7216 0.7820 0.3479 - 0.2495)
Mdl
是一个bssm
模型。房地产Mdl.ObservationDistribution
是一个结构数组指定的分布observation-innovations过程。所有分布hyperparameters完全指定。
情节的分布观察创新。比较的高斯混合表示 而真正的 分布。
r =元素个数(重量);LogChi2GMMdl = gmdistribution(μ”,重塑(sigma2 1 1, r),重量);gmPDF = @ (x) arrayfun (@ (x0) pdf (x0 LogChi2GMMdl), x);logchi2PDF = @ (x)((1 /√(2 *π))* exp ((x-exp (x)) / 2));图fplot (gmPDF,[5] -10年)在fplot (logchi2PDF”——r”)标题(“日志卡方分布:高斯混合与真正的“)传说(“高斯混合”,“真正的”位置=“最佳”)
分布几乎相同的出现。
本地函数
函数[A, B, C, D, Mean0 Cov0, StateType] = paramMap(θ)=[θ(1)0;0θ(2)];B =[θ(3)0;0θ(4)];C = [1];D = 0;Mean0 = [];% MATLAB使用默认的初始状态的意思Cov0 = [];% MATLAB使用初始状态协方差StateType = [0;0);%两个静止的状态结束函数logprior = priorDistribution(θ)paramconstraints = [(abs(θ(1))> = 1)(abs(θ(2))> = 1)…(θ(3)θ(4)< < 0)(0)];如果(和(paramconstraints) logprior =无穷;其他的mu0 = 0.5 *(元素个数(θ),1);sigma0 = 1;p = normpdf(θ,mu0, sigma0);logprior =总和(日志(p));结束结束
创建包含回归组件缩小观测模型
考虑回归美国的失业率上和实际国民生产总值(RGNP)率,假设产生的创新是一个ARMA(1,1)过程。状态方程形式的关系
地点:
是ARMA过程。
马是一个虚拟的状态(1)的效果。
是观察到的失业率泄气的一个常数和RGNP率( )。
是一个iid高斯系列代表0和标准偏差1。
加载Nelson-Plosser数据集,其中包含一个表数据表
失业率和RGNP系列、等系列。
负载Data_NelsonPlosser
创建一个变量数据表
代表原始RGNP系列的回报。因为price-to-returns转换减少样本量,前置液系列南
。
数据表。RGNPRate =[南;price2ret (DataTable.GNPR)];T =身高(数据表);
创建变量的回归。代表失业率作为观察系列和常数和RGNP系列通货紧缩的数据 。
Z =[的(T, 1) DataTable.RGNPRate];y = DataTable.UR;
写一个函数,用于指定参数θ
状态空间模型映射到矩阵,将默认的初始状态的时刻,指定状态类型和指定了回归。将该代码保存为一个文件命名armaDeflateYBayes.m
在你的MATLAB®路径。另外,打开这个例子来访问功能。
函数[A, B, C, D, Mean0 Cov0, StateType, DeflatedY] = armaDeflateYBayes(θ,y, Z)%定常,状态空间模型贝叶斯参数映射函数%的例子。这个函数将向量映射参数状态方程%矩阵(A, B, C, D),默认值和初始状态%的默认初始状态方差(Mean0和Cov0),状态的类型% (StateType),泄气的观察(DeflatedY)。之前的日志%分布执行参数约束(见flatPriorDeflateY.m)。(θ=θ(1)(2);0 0];B = [1;1);C =[θ(3)0];D = 0;Mean0 = [];Cov0 = [];StateType = [0 0];DeflatedY = y - Z *[θ(4); theta(5)];结束
编写一个函数,它指定了一个联合平之前和参数约束。将该代码保存为一个文件命名flatPriorDeflateY.m
在MATLAB的路径上。另外,打开这个例子来访问功能。
% 2022年版权MathWorks公司。函数logprior = flatPriorDeflateY(θ)% flatPriorDeflateY计算平之前的日志密度五个%变量θ(见armaDeflateYBayes.m)。日志的概率%为参数在参数空间是无穷。θ%θ(1)和(2)是基于“增大化现实”技术和马在静止的条件% ARMA(1,1)模型。基于“增大化现实”技术的术语必须在单位圆内。AROutUC = abs(θ(1))> = 1;%的标准差(θ(3))必须积极创新。nonnegsig1 =θ(3)< = 0;paramconstraints = [AROutUC nonnegsig1];如果总和(paramconstraints) > 0 logprior =无穷;其他的logprior = 0;%之前密度正比于1的所有值%在参数空间。结束结束
创建一个bssm
对象代表贝叶斯状态空间模型。指定parameter-to-matrix映射函数的单独处理函数的参数θ
。
Mdl = bssm(@(θ)armaDeflateYBayes(θ,y, Z), @flatPriorDeflateY)
Mdl =映射状态空间模型,定义了一个:@(θ)armaDeflateYBayes(θ,y, Z)日志参数先验分布密度:@flatPriorDeflateY
更多关于
贝叶斯线性状态空间模型
一个状态空间模型贝叶斯贝叶斯的标准线性吗状态空间模型Θ的向量模型参数视为随机变量联合先验分布Π(Θ)和前组成的联合后验分布和数据计算的可能性标准卡尔曼滤波器Π(Θ|yt)。
一般来说,一个线性、多元时变系统的状态空间模型,高斯方程
为t= 1,…,T所在:
是一个米t维状态向量描述的动力学,可能是不可见的,现象t。初始状态分布(x0)的意思μ0(
Mean0
)和协方差矩阵Σ0(Cov0
)。是一个nt维观测向量描述如何衡量美国观察家时期t。
是一个kt在时间维向量白噪音的干扰t。所有的障碍都是多元高斯分布或多元学生的t分布式的,νu的自由度。
是一个ht维的白噪音向量观察创新时期t。所有的创新都是多元高斯分布或多元学生的t分布式的,νε的自由度。
εt和ut是不相关的。
为定常状态空间模型,
是行t的T——- - - - - -d矩阵的预测Z。每一列的Z对应于一个预测,每一行一个连续的时期。如果观察到多变量,那么所有预测缩小每个观察。
β是一个d——- - - - - -n的回归系数矩阵Zt。
一个t,Bt,Ct,Dt,β(当)模型参数向量Θ任意收集。联合Θ的先验分布Π(Θ)和Θ的联合后验分布Π(Θ|yt,Zt)。
下面的定义描述每个模型参数和状态的特征,以及如何配置它们的输出ParamMap
。
状态转换关系系数矩阵一个t
的状态转换关系系数矩阵一个t是一个矩阵或单元向量矩阵的指定美国如何xt预计过渡时期t——1t,尽管t= 1,…,T。换句话说,在期间预期的状态转换关系方程t是E(xt|xt1)=一个txt1。
对于定常状态空间模型,输出一个
是一个米——- - - - - -米矩阵,米是状态变量的数量。
对于时变状态空间模型,输出一个
是一系列的矩阵表示为一个吗T维单元阵列,{t}
包含一个米t——- - - - - -米t- 1状态转换关系系数矩阵。如果状态变量的数量变化t——1t,米t≠米t- 1。
State-Disturbance-Loading系数矩阵Bt
的state-disturbance-loading系数矩阵Bt是一个矩阵或细胞矩阵的向量指定添加剂错误结构的干扰ut在状态转换关系方程t——1t,尽管t= 1,…,T。换句话说,在状态转换关系方程t是xt=一个txt1+Btut。
对于定常状态空间模型,输出B
是一个米——- - - - - -k矩阵,米状态变量的数量和吗k是一些国家的骚乱。的数量B * (B)
所有时间是state-disturbance协方差矩阵。
对于时变状态空间模型,B
是一个T维单元阵列,B {t}
包含一个米t——- - - - - -ktstate-disturbance-loading系数矩阵。如果状态变量的数量或状态扰动变化时期t,矩阵维度之间B {t - 1}
和B {t}
有所不同。的数量{t} * (B {t}”)
时期是state-disturbance协方差矩阵吗t
。
Measurement-Sensitivity系数矩阵Ct
的measurement-sensitivity系数矩阵Ct是一个矩阵或单元向量矩阵的指定美国如何xt在期间预计将线性组合吗t形成了观察,yt,尽管t= 1,…,T。换句话说,预期的观察方程t是E(yt|xt)=Ctxt。
对于定常状态空间模型,输出C
是一个n——- - - - - -米矩阵,n观测变量和的数量吗米是状态变量的数量。
对于时变状态空间模型,输出C
是一个T维单元阵列,C {t}
包含一个nt——- - - - - -米tmeasurement-sensitivity系数矩阵。如果状态或观察变量的数量变化t,矩阵维度之间C {t - 1}
和C {t}
有所不同。
Observation-Innovation系数矩阵Dt
的observation-innovation系数矩阵Dt是一个矩阵或单元向量矩阵的指定添加剂观测的误差结构创新εt在观测方程t,尽管t= 1,…,T。换句话说,观察方程t是yt=Ctxt+Dtεt。
对于定常状态空间模型,输出D
是一个n——- - - - - -h矩阵,n观测变量和的数量吗h是观察的数量的创新。的数量D * (D ')
所有时间是observation-innovation协方差矩阵。
对于时变状态空间模型,输出D
是一个T维单元阵列,D {t}
包含一个nt——- - - - - -ht矩阵。如果观测变量的数量或观察创新变化的时期t,那么矩阵维度之间D {t - 1}
和D {t}
有所不同。的数量D {t} * (D {t}”)
时期是observation-innovation协方差矩阵吗t
。
国家的特点
其他国家特征包括初始状态的时刻,每个状态的动态行为的描述。
您可以选择指定的状态特征包括额外的输出参数ParamMap
后所需的系数矩阵。
Mean0
——初始状态的意思是μ0,一个米1数字向量,米州的数量吗x1。Cov0
Σ-初始状态协方差矩阵0,一个米——- - - - - -米半正定矩阵。StateType
——状态动态行为指标,米1数字向量。这个表总结了可用类型的初始状态分布。价值 状态动态行为指标 0
静止的(例如,ARMA模型) 1
常数1(即状态为1的概率1) 2
分散、非平稳的(例如,随机游走模型、季节性线性时间序列),或静态 例如,假设状态方程有两个状态变量:第一个状态变量是一个AR(1)过程,第二个状态变量是随机漫步。通过设置指定初始分布类型
StateType = [0;2);
在ParamMap
函数。
静态
一个静态不会改变的价值在整个样本,也就是说, 对所有t= 1,…,T。
潜变量的方差t分布式错误
为了便于后取样,多元的学生t分布式状态扰动和观察创新都表示为inverse-gamma规模混合物,inverse-gamma随机变量在哪里潜变量的方差。
明确地,假设米维状态扰动ut是iid多元t规模分布和位置0,我米和自由度νu。作为一个规模inverse-gamma混合物
地点:
潜在的变量ζtinverse-gamma形状和规模νu/ 2。
是一个米维多元标准高斯随机变量。
多元t分布式观察创新同样可以分解的。
您可以访问ζt通过编写一个定制的输出函数,它返回字段指定错误类型,StateVariance
或ObservationVariance
。更多细节,请参阅OutputFunction
名称-值参数,输出
输出参数。
提示
加载数据到MATLAB工作区创建模型。
创建parameter-to-matrix映射函数和日志先验分布函数作为自己的文件。
指定一个日志χ21分布的观察创新过程εt,设置
ObservationDistribution
结构数组结构(“重量”,
,地点:重量
“的意思是”,μ
“差异”,sigma2
)
是重量
(0.0089 0.0541 0.1338 0.2761 - 0.2923 0.1494 - 0.0854)
。
是μ
(-9.3202 -5.3145 -3.4147 -1.7097 - -0.4531 0.3975 - 1.1925)
。
是sigma2
(3.2793 2.4574 1.8874 1.3121 0.8843 0.5898 0.4995)。^ 2
。
算法
分布Hyperparameters
此表描述了支持分布hyperparameters,金宝app和它们的值和默认值。
分布 | 错误的支持金宝app | Hyperparameter | 字段名 | 价值 | 默认的 |
---|---|---|---|---|---|
学生的t | 多元ut(状态),εt(观察) | 自由度参数 | “景深” |
积极的数字标量,南 ,或一个函数处理。您必须指定值。 |
当你指定一个结构数组,您必须指定“景深” 。否则,默认值是南 。 |
有限高斯混合 | 单变量εt | 重量(概率分布)r政权 | “重量” |
长度r负的向量。
|
1 |
方法r政权 | “的意思是” |
长度r有限数字行向量 |
0 (1) |
||
方差为r政权 | “方差” |
长度r有限数字行向量 |
(1, |
||
斜正常 | 单变量εt | 分布规模 和形状是δ | “δ” |
数值标量或南 |
南 |
bssm
修复hyperparameters指定的数值。对于一个
南
或一个函数处理,支持的值,金宝appbssm
将hyperparameter未知。因此,bssm
对象函数估计他们通过计算后验分布与所有其他在Θ未知参数。hyperparameter的价值决定了其先验分布。为
南
之前,是平的。一个函数处理(支持金宝app
“景深”
),相关的日志先验分布函数表示。函数的形式,
是一个数字标量。x
函数logpdf=logPrior(xotherInputs…)…结束
@ (x)日志(normpdf (x, 7日1))
。
行为状态空间模型
为每个状态变量
的默认值j
Mean0
和Cov0
取决于StateType (
:j
)如果
StateType (
(静止状态),j
)= 0bssm
使用平稳分布生成初始值。如果您提供所有值的系数矩阵(也就是说,您的模型没有未知参数),bssm
生成初始值。否则,在估算软件生成的初始值。如果
StateType (
(持续)j
)= 1Mean0 (
是j
)1
和Cov0 (
是j
)0
。如果
StateType (
(不稳定或分散状态),j
)= 2Mean0 (
是0,j
)Cov0 (
是j
)1 e7
。
为静态状态整个样本不等于1,软件不能赋值到退化,初始状态分布。因此,设置
StateType
静态的州2
。因此,软件将静态状态视为不稳定和分配静态扩散的初始分布。bssm
模型没有商店观察反应或预测数据。提供必要的数据无论使用适当的输入或名称-值对参数。DeflateY
是deflated-observation数据,它提供一个回归组件的观测方程。例如,在这个函数,线性回归组件,Y
是观察到的向量响应和Z
是向量的预测数据。函数[A, B, C, D, Mean0 Cov0, StateType, DeflateY] =ParamFun(θ,Y, Z)…DeflateY = Y - params (9) - params (10) * Z;…结束
引用
[1]黑斯廷斯,威尔弗雷德·K。“使用马尔可夫链蒙特卡罗抽样方法及其应用”。生物统计学57(1970年4月):97 - 109。https://doi.org/10.1093/biomet/57.1.97。
[2]的大都市,尼古拉斯Rosenbluth,阿里安娜。W。,Rosenbluth, Marshall. N., Teller, Augusta. H., and Teller, Edward. "Equation of State Calculations by Fast Computing Machines."《物理化学》杂志上(1953年6月21日):1087 - 92。https://doi.org/10.1063/1.1699114。
版本历史
介绍了R2022aR2023a:单边Hodrick-Prescott滤波器应用于时间序列
的hpfilter
函数实现了片面Hodrick-Prescott过滤器。而默认的双边滤波器使用整个输入每个观测时间序列来过滤yt、单边滤波器只使用之前和现在的观察来过滤yt。
指定片面Hodrick-Prescott过滤器设置FilterType
可选名称-值参数“一边倒”
。
R2022b:假设非高斯,厚尾分布状态扰动和观察创新流程
bssm
使您能够承担学生的t分布的条件分布状态扰动或观察的创新过程。这些错误设置适合当过程或测量误差过度峰度(或者是厚尾或leptokuric)。
指定分布的误差过程使用以下名称参数当您创建一个bssm
对象:
StateDistribution
——状态扰动过程的分布ObservationDistribution
-分布的观察创新过程
MATLAB命令
你点击一个链接对应MATLAB命令:
运行该命令通过输入MATLAB命令窗口。Web浏览器不支持MATLAB命令。金宝app
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。