主要内容

模拟

类:舰导弹

状态空间模型的蒙特卡罗模拟

描述

例子

YX=模拟(MdlnumObs模拟观测的一个样本路径(Y)和州(X)从一个完全指定的,状态空间模型Mdl).软件模拟numObs每个样本路径上的观察和状态。

YX=模拟(MdlnumObs名称,值返回模拟响应和带有一个或多个指定的附加选项的状态名称,值对参数。

例如,指定路径的数量或模型参数值。

例子

YXUE=模拟(___此外,模拟状态扰动(U)和观测创新(E)使用前面语法中的任何输入参数。

输入参数

全部展开

的标准状态空间模型舰导弹返回的模型对象舰导弹估计.一个标准的状态空间模型具有有限的初始状态协方差矩阵元素。也就是说,Mdl不能是dssm模型对象。

如果Mdl没有完全指定(即,Mdl包含未知参数),然后使用参数个数名称,值对参数。否则,软件将抛出一个错误。

生成变量的每个路径的周期数,指定为正整数。

如果Mdl是一个时变模型,则系数矩阵对应的单元向量长度必须至少为numObs

如果numObs是否小于周期数Mdl能不能支万博1manbetx持,那么软件只使用矩阵中的第一个numObs对应于系数矩阵的单元向量的单元。

数据类型:

名称-值参数

指定可选参数对为Name1 = Value1,…,以=家,在那里的名字参数名称和价值对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。

在R2021a之前,使用逗号分隔每个名称和值,并将其括起来的名字在报价。

生成变量的样例路径数,由逗号分隔的对组成“NumPaths”一个正整数。

例子:“NumPaths”,1000年

数据类型:

状态空间模型中未知参数的值,指定为逗号分隔的对,由“参数”和一个数值向量。

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

  • 如果你创建了Mdl显式地(即通过指定矩阵而不使用参数到矩阵的映射函数),然后软件映射的元素参数个数S在状态空间模型矩阵和初始状态值。该软件搜索S列按顺序排列一个BCDMean0,Cov0

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

如果Mdl包含未知参数,则必须指定它们的值。否则,软件将忽略的值参数个数

数据类型:

输出参数

全部展开

模拟的观察结果,返回为数值向量的矩阵或单元格矩阵。

如果Mdl是一个定常模型那么,关于观察结果Y是一个numObs——- - - - - -n——- - - - - -numPaths数组中。也就是说,每行对应一个周期,每列对应模型中的一个观测值,每页对应一个样本路径。最后一行对应最新的模拟观测结果。

如果Mdl是一个时变模型那么,关于观察结果Y是一个numObs——- - - - - -numPaths向量的单元矩阵。Y {t j}包含长度向量nt周期的模拟观测t样本路径的j.最后一行Y包含最新的模拟观测集。

数据类型:细胞|

模拟的状态,返回为数值矩阵或单元格矩阵的向量。

如果Mdl那么对于状态来说是定常模型吗X是一个numObs——- - - - - -——- - - - - -numPaths数组中。也就是说,每行对应一个周期,每列对应模型中的一个状态,每页对应一个示例路径。最后一行对应最新的模拟状态。

如果Mdl是一个随状态变化的模型吗X是一个numObs——- - - - - -numPaths向量的单元矩阵。X {t j}包含长度向量t周期的模拟状态t样本路径的j.最后一行X包含最新的模拟状态集。

模拟的状态扰动,返回为向量的矩阵或单元矩阵。

如果Mdl那么对于状态扰动,模型是时不变的吗U是一个numObs——- - - - - -h——- - - - - -numPaths数组中。也就是说,每行对应一个周期,每列对应模型中的一个状态扰动,每页对应一个样本路径。最后一行对应最新的模拟状态扰动。

如果Mdl是一个时变模型,关于状态扰动,那么U是一个numObs——- - - - - -numPaths向量的单元矩阵。U {t j}包含长度向量ht周期内的模拟状态扰动t样本路径的j.最后一行U包含最新的模拟状态干扰集。

数据类型:细胞|

模拟观测创新,返回为数值向量的矩阵或单元矩阵。

如果Mdl那么,对于观测创新来说,模型是定常的吗E是一个numObs——- - - - - -h——- - - - - -numPaths数组中。也就是说,每行对应一个周期,每列对应模型中的一个观测创新,每页对应一个样本路径。最后一行对应的是最新的模拟观测创新。

如果Mdl是一个时变模型相对于观测创新,那么E是一个numObs——- - - - - -numPaths向量的单元矩阵。E {t j}包含长度向量ht周期的模拟观测创新t样本路径的j.最后一行E包含最新的模拟观测集。

数据类型:细胞|

例子

全部展开

假设一个潜在过程是一个AR(1)模型。状态方程是

x t 0 5 x t - 1 + u t

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

生成100个观察值的随机序列 x t ,假设该系列从1.5开始。

T = 100;ARMdl = arima(基于“增大化现实”技术的, 0.5,“不变”0,“方差”1);X0 = 1.5;rng (1);%用于再现性x =模拟(ARMdl,T,“Y0”, x0);

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

y t x t + ε t

在哪里 ε t 为均值为0,标准差为0.75的高斯分布。潜伏过程和观测方程共同构成了一个状态空间模型。

使用随机潜伏状态过程(x)和观测方程来生成观测值。

y = x + 0.75*randn(T,1);

指定四个系数矩阵。

A = 0.5;B = 1;C = 1;D = 0.75;

使用系数矩阵指定状态空间模型。

Mdl = ssm(A,B,C,D)
Mdl =状态空间模型类型:ssm状态向量长度:1观测向量长度:1状态扰动向量长度:1观测创新向量长度:1模型支持的样本量:无限状态变量:x1, x2,…万博1manbetx状态扰动:u1, u2,…观测序列:y1, y2,…观测创新:e1, e2,…状态方程:x1(t) = (0.50)x1(t-1) + u1(t)观测方程:y1(t) = x1(t) + (0.75)e1(t)初始状态分布:初始状态表示x1 0初始状态协方差矩阵x1 x1 1.33状态类型x1平稳

Mdl是一个舰导弹模型。使用命令窗口中的显示来验证模型是否正确指定。该软件推断状态过程是平稳的。随后,软件将初始状态均值和协方差设置为AR(1)模型平稳分布的均值和方差。

模拟状态和观察的每个路径。指定路径跨越100个周期。

[simY,simX] =模拟(Mdl,100);

simY是模拟响应的100 × 1向量。simX是模拟状态的100 × 1向量。

用模拟状态绘制真实状态值。此外,将观察到的响应与模拟的响应绘制成图。

图subplot(2,1,1) plot(1:T,x,“- k”1: T, simX“:r”“线宽”2)标题({“真状态值和模拟状态”})包含(“时间”) ylabel (“状态”)({传奇“真实状态值”“模拟状态值”}) subplot(2,1,2) plot(1:T,y,“- k”1: T, simY“:r”“线宽”2)标题({“观察反应和模拟反应”})包含(“时间”) ylabel (“响应”)({传奇观察到的反应的“模拟反应”})

图中包含2个轴对象。axis对象1的标题为True State Values和simulate States,包含2个类型为line的对象。这些对象表示真实状态值,模拟状态值。标题为“观察到的响应”和“模拟的响应”的坐标轴对象2包含2个类型为line的对象。这些对象表示观察到的响应,模拟的响应。

默认情况下,模拟在状态空间模型中为每个状态和观测模拟一条路径。为了进行蒙特卡罗研究,指定要模拟大量的路径。

若要从状态空间模型生成变量,请为所有未知参数指定值。

显式地创建这个状态空间模型。

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

在哪里 u t 而且 ε t 均值为0,方差为1的独立高斯随机变量。假设初始状态均值和方差均为1,且状态为平稳过程。

A = NaN;B = NaN;C = 1;D = NaN;Mean0 = 1;Cov0 = 1;stateType = 0;Mdl = ssm(A,B,C,D,“Mean0”mean0,“Cov0”cov0,“StateType”, stateType);

模拟100个来自Mdl.设自回归系数为0.75,状态扰动标准差为0.5,观测创新标准差为0.25。

Params = [0.75 0.5 0.25];y =模拟(Mdl,100,“参数”、参数);图;情节(y);标题“模拟反应”;包含“时间”

图中包含一个轴对象。标题为“模拟响应”的axes对象包含一个类型为line的对象。

该软件搜索值按照A, B, C, D, Mean0和Cov0的顺序列。元素的顺序参数个数应该与这次搜索相对应。

假设失业率的变化( x 1 t )和名义国民生产总值增长率( x 3. t )可以用下面的状态空间模型形式表示。

x 1 t x 2 t x 3. t x 4 t ϕ 1 θ 1 γ 1 0 0 0 0 0 γ 2 0 ϕ 2 θ 2 0 0 0 0 x 1 t - 1 x 2 t - 1 x 3. t - 1 x 4 t - 1 + 1 0 1 0 0 1 0 1 u 1 t u 2 t

y 1 t y 2 t 1 0 0 0 0 0 1 0 x 1 t x 2 t x 3. t x 4 t + σ 1 0 0 σ 2 ε 1 t ε 2 t

地点:

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

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

  • x 3. t 当时的国民生产总值增长率是多少t

  • x 4 t 是MA(1)效应的虚拟状态 x 3. t

  • y 1 t 是观察到的失业率变化。

  • y 2 t 为观察到的nGNP增长率。

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

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

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

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

负载Data_NelsonPlosser

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

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

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

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

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

指定系数矩阵。

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

使用指定状态空间模型舰导弹.验证模型规范是否与状态空间模型一致。

Mdl = ssm(A,B,C,D)
Mdl =状态空间模型类型:ssm状态向量长度:4观测向量长度:2状态扰动向量长度:2观测创新向量长度:2模型支持的样本量:无限估计未知参数:8状态变量:x1, x2,…万博1manbetx状态扰动:u1, u2,…观测序列:y1, y2,…观测创新:e1, e2,…未知参数:c1, c2,…状态方程:x1(t) = (c1)x1(t-1) + (c3)x2(t-1) + (c4)x3(t-1) + u1(t) x2(t) = u1(t) x3(t) = (c2)x1(t-1) + (c5)x3(t-1) + (c6)x4(t) + u2(t) x4(t) = u2(t)观测方程:y1(t) = x1(t) + (c7)e1(t) y2(t) = x3(t) + (c8)e2(t)初态分布:未指定初态均值。初始状态协方差矩阵未指定。未指定状态类型。

估计模型参数,并使用一组随机的初始参数值进行优化。限制估计 σ 1 而且 σ 2 对所有正数,实数使用“磅”名称-值对参数。为了数值稳定性,在软件计算参数协方差矩阵时指定Hessian,使用“CovMethod”名称-值对参数。

rng (1);Params0 = rand(8,1);[EstMdl,estParams] =估计(Mdl,isY,params0,...“磅”,[-Inf -Inf -Inf -Inf -Inf -Inf -Inf 0 0],“CovMethod”“海赛”);
方法:最大似然(fmincon)样本量:51对数似然:-170.92赤井信息准则:357.84贝叶斯信息准则:373.295 | t统计概率多项式系数Std犯错  ---------------------------------------------------- c (1) c(2) | | 0.06750 0.16548 0.40791 0.68334 -0.01372 0.05887 -0.23302 0.81575摄氏度(3)0 c(4) | | 2.71201 0.27039 10.03006 0.83815 2.84585 0.29452 0.76836摄氏度(5)c(6) | | 0.06274 2.83469 0.02213 0.98234 0.05196 2.56872 0.02023 0.98386摄氏度(7)c(8) | | 0.00273 2.40769 0.00113 0.99910 0.00016 0.13942 0.00113 0.99910 | |最终状态性病Dev t统计概率(1)| -0.00000 0.00273 -0.00033 0.99973 x (2) | 0.12237 - 0.929540.13164 0.89527 x(3) | 0.04049 0.00016 256.74447 0 x(4) | 0.01183 0.00016 72.51089 0

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

过滤估计的状态空间模型,并从最终周期中提取过滤的状态及其方差。

[~,~,Output] = filter(EstMdl,isY);

修改估计的状态空间模型,使初始状态均值和协方差是过滤后的状态及其最终周期的协方差。这建立了预测范围内的模拟。

EstMdl1 = EstMdl;EstMdl1。Mean0=Output(end).FilteredStates; EstMdl1.Cov0 = Output(end).FilteredStatesCov;

模拟5 e5从拟合的状态空间模型观测的路径EstMdl.指定模拟每个周期的观测值。

numPaths = 5e5;simmy =模拟(EstMdl1,10,“NumPaths”, numPaths);

SimY是一个10——- - - - - -2——- - - - - -numPaths包含模拟观测的数组。一排排的SimY对应于周期,列对应于模型中的观察结果,页对应于路径。

估计预测观测值及其在预测视界内的95%置信区间。

MCFY = mean(SimY,3);CIFY =分位数(SimY,[0.025 0.975],3);

估计理论预测波段。

[Y,YMSE] = forecast(EstMdl,10,isY);Lb = Y -根号(YMSE)*1.96;Ub = Y +根号(YMSE)*1.96;

将预测观测值与它们的真实值和预测间隔绘制出来。

figure h = plot(dates(end- numperiods -9:end),[isY(end-9:end,1);oosY(:,1)],“- k”...日期(end-numPeriods + 1:结束),MCFY (end-numPeriods + 1:结束,1),“。r”...日期(end-numPeriods + 1:结束),CIFY (end-numPeriods + 1:最终,1,1),“- b”...日期(end-numPeriods + 1:结束),CIFY (end-numPeriods + 1:结束,1,2),“- b”...日期(end-numPeriods + 1:结束),Y (: 1),”:c '...日期(end-numPeriods + 1:结束),磅(:1),“m”...日期(end-numPeriods + 1:结束),乌兰巴托(:1),“m”...“线宽”3);包含(“时间”) ylabel (“失业率的变化”)传说(h((1、2、6)){“观察”“MC预测”...“95%预测区间”理论预测的...“95%理论区间”},“位置”“最佳”)标题(“失业率的观察和预测变化”

图中包含一个轴对象。标题为“失业率的观察和预测变化”的轴对象包含7个类型线对象。这些对象代表观测值、MC预测、95%预测区间、理论预测、95%理论区间。

figure h = plot(dates(end- numperiods -9:end),[isY(end-9:end,2);oosY(:,2)],,“- k”...日期(end-numPeriods + 1:结束),MCFY (end-numPeriods + 1:结束,2),“。r”...日期(end-numPeriods + 1:结束),CIFY (end-numPeriods + 1:结束,2,- 1),“- b”...日期(end-numPeriods + 1:结束),CIFY (end-numPeriods + 1:最终,2,2),“- b”...日期(end-numPeriods + 1:结束),Y (:, 2),”:c '...日期(end-numPeriods + 1:结束),磅(:,2),“m”...日期(end-numPeriods + 1:结束),乌兰巴托(:,2),“m”...“线宽”3);包含(“时间”) ylabel (国民生产总值增长率)传说(h((1、2、6)){“观察”“MC预测”...'95% MC间隔'理论预测的“95%理论区间”},...“位置”“最佳”)标题(“观察和预测的国民生产总值增长率”

图中包含一个轴对象。标题为“观察到的和预测的nGNP增长率”的轴对象包含7个类型为线的对象。这些对象代表观测值、MC预测、95% MC区间、理论预测、95%理论区间。

提示

用给出的响应模拟关节条件后验分布的状态simsmooth

参考文献

[1]德宾J.和S. J.库普曼。状态空间方法的时间序列分析.牛津:牛津大学出版社,2012年。