armax
利用时域数据估计ARMAX、ARMAX、ARMA或ARIMA模型的参数
语法
描述
估计ARMAX或ARMA模型
估计的参数ARMAX或者一个自回归滑动平均sys
= armax (tt
,[na nb nc nk]
)idpoly
模型sys
利用数据中所包含的时间表变量tt
.软件使用第一种方法ν变量作为输入和下一个纽约变量作为输出,其中ν而且纽约都是由尺寸决定的注
而且na
,分别。
对于没有输入信号的ARMA模型,使用Sys = armax(tt,na)
.在这种情况下,软件使用第一种方法拟合模型纽约变量。
armax
使用预测误差方法和中指定的多项式顺序执行估计[na nb nc nk]
.模型属性包括估计协方差(参数不确定性)和估计数据与测量数据之间的拟合优度。
从中选择特定的输入和输出通道tt
,使用名称-值语法进行设置“InputName”
而且“OutputName”
对应的时间表变量名。
中的时域数据sys
= armax (数据
,[na nb nc nk]
)iddata
对象数据
.特别是当您想要利用数据对象提供的附加信息(如数据采样时间或实验标记)时,请使用此语法。
初始参数配置
初始条件估计
[
返回估计的初始条件sys
,集成电路
= armax(___)initialCondition
对象。如果您计划使用相同的估计输入数据模拟或预测模型响应,然后将响应与相同的估计输出数据进行比较,请使用此语法。在模拟的第一部分中,结合初始条件产生了更好的匹配。
例子
估计ARMAX模型
估计一个ARMAX模型,并查看模型输出与估计数据的拟合情况。
在时间表中加载测量数据tt2
.
负载sdata2tt2
估计一个二阶ARMAX模型 , , 多项式和一个样本周期的传输延迟。
Na = 2;Nb = 2;Nc = 2;Nk = 1;Sys = armax(tt2,[na nb nc nk])
sys =离散时间ARMAX模型:A(z)y(t) = B(z)u(t) + C(z)e(t) A(z) =1 - 1.512 z^-1 + 0.7006 z^-2 B(z) = -0.2606 z^-1 + 1.664 z^-2 C(z) =1 - 1.604 z^-1 + 0.7504 z^-2采样时间:0.1秒参数化:多项式阶数:na=2 nb=2 nc=2 nk=1自由系数数:6使用“polydata”、“getpvec”、“getcov”表示参数及其不确定性。状态:在时域数据“tt2”上使用ARMAX估计。拟合估计数据:85.89%(预测焦点)FPE: 1.086, MSE: 1.054
输出显示包含估计参数和估计细节的多项式。下状态
,拟合估计数据
结果表明,估计模型具有超前1步的预测精度,准确率在80%以上。
将模型模拟输出与实测数据进行比较。
比较(tt2 sys)
模拟模型与实测数据的拟合与估计拟合基本一致。
ARMA模型
估计ARMA模型,并将其响应与测量输出和AR模型进行比较。
加载包含时间序列的数据ymat9
与噪音。
负载sdata9ymat9
用一阶ARMA模型估计四阶ARMA模型 多项式。
Na = 4;Nc = 1;Sys = armax(ymat9,[na nc]);
估计一个四阶AR模型。
Sys_ar = ar(ymat9,na);
将模型输出与实测数据进行比较。
比较(ymat9 sys sys_ar)
ARMA模型对数据拟合较好。
指定评估选项
根据测量数据估计ARMAX模型,并指定估计选项。
加载数据并创建一个iddata
对象。初始化选项集选择
,并设置为焦点
,SearchMethod
,MaxIterations
,显示
.然后使用更新后的选项集估计ARMAX模型。
负载twotankdata;Z = iddata(y,u,0.2);opt = armaxOptions;opt.Focus =“模拟”;opt.SearchMethod =“lm”;opt.SearchOptions.MaxIterations = 10;opt.Display =“上”;Sys = armax(z,[2 2 2 1],opt);
进度查看器中显示的模型的测量组件的终止条件是达到了最大迭代次数。
为了改进结果,使用更大的值重新估计模型MaxIterations
,或在先前估计的模型上继续迭代,如下所示:
Sys2 = armax(z,sys);比较(z, sys, sys2)
在哪里sys2
的参数sys
提高对数据的拟合。
正则化的ARMAX模型
通过转换正则化ARX模型来估计正则化ARMAX模型。
加载数据。
负载regularizationExampleData.matm0simdata;
估计一个30阶的不规则ARMAX模型。
M1 = armax(m0simdata(1:50 0),[30 30 30 30 1]);
通过试错确定Lambda值来估计正则化ARMAX模型。
opt = armaxOptions;opt. regulalizing . lambda = 1;M2 = armax(m0simdata(1:50 0),[30 30 30 1],opt);
通过转换正则化ARX模型,然后进行降阶,得到低阶ARMAX模型。
opt1 = arxOptions;[L,R] = arxRegul(m0simdata(1:50 0),[30 30 1]);opt1.Regularization。Lambda = L;opt1.Regularization。R = R;M0 = arx(m0simdata(1:50 0),[30 30 1],opt1);Mr = idpoly(balred(idss(m0),7));
将模型输出与数据进行比较。
opt2 = compareOptions(“InitialCondition”,“z”);比较(m0simdata(150:结束),m1, m2,先生,opt2);
ARIMA模型
估计单变量时间序列数据的四阶ARIMA模型。
加载包含有噪声的时间序列的数据。
负载iddata9z9;
对输出信号进行积分,用积分结果代替原输出信号z9
.
z9。y=cumsum(z9.y);
用一阶ARIMA模型估计四阶ARIMA模型
设定多项式“IntegrateNoise
”真正的
.
模型= armax(z9,[4 1],“IntegrateNoise”,真正的);
使用提前10步预测预测模型输出,并将预测输出与估计数据进行比较。
比较(z9、模型、10)
迭代估计ARMAX模型
根据实测数据迭代估计不同阶数的ARMAX模型。
负载dryer2
数据并对多项式顺序的组合进行估计na
,注
,数控
,输入延时nk
.
负载dryer2;Z = iddata(y2,u2,0.08,“Tstart”, 0);Na = 2:4;Nc = 1:2;Nk = 0:2;模型= cell(1,18);Ct = 1;为I = 1:3 na_ = na(I);Nb_ = na_;为J = 1:2 nc_ = nc(J);为K = 1:3 nk_ = nk(K);模型{ct} = armax(z,[na_ nb_ nc_ nk_]);Ct = Ct +1;结束结束结束
将估计的模型堆叠起来,并将其模拟响应与估计数据进行比较z
.
model = stack(1, Models {:});比较(z,模型)
使用状态空间模型初始化ARMAX模型参数
加载估计数据。
负载iddata2z2
从估计数据估计一个3阶的状态空间模型。
Sys0 = n4sid(z2,3);
使用先前估计的状态空间模型来初始化参数来估计ARMAX模型。
Sys = armax(z2,sys0);
获得初始条件
加载数据。
负载iddata1icz1i
估计一个二阶ARMAX模型sys
返回初始条件集成电路
.
Na = 2;Nb = 2;Nc = 2;Nk = 1;[sys,ic] = armax(z1i,[na nb nc nk]);集成电路
A: [2x2 double] X0: [2x1 double] C: [0 1] Ts: 0.1000
集成电路
是一个initialCondition
的空闲响应sys
的初始状态向量X0
.你可以合并集成电路
当你模拟的时候sys
与z1i
输入信号,并与响应进行比较z1i
输出信号。
输入参数
tt
- - - - - -基于时间表的估计数据
时间表|单元格时间表数组。
估计数据,指定为a时间表
它使用了一个规则间隔的时间向量。tt
包含表示输入和输出通道的变量。对于多实验数据,tt
单元格数组的时间表的长度不
,在那里不
是实验的数量吗
该软件确定输入和输出通道的数量,用于从指定的多项式顺序的维度进行估计。输入/输出通道的选择取决于是否“InputName”
而且“OutputName”
指定名称-值参数。
如果
“InputName”
而且“OutputName”
没有指定,那么软件使用第一种ν的变量tt
作为输入和下一个纽约的变量tt
作为输出。如果
“InputName”
而且“OutputName”
,然后软件使用指定的变量。指定的输入和输出名称的个数必须与ν而且纽约.对于可以估计没有输入的时间序列模型的函数,
“InputName”
不需要指定。
有关使用估计数据类型的详细信息,请参见系统识别工具箱中的数据域和数据类型.
u
,y
- - - - - -矩阵估计数据
矩阵|矩阵单元阵列
估计数据,为SISO系统指定为逗号分隔的对N年代-by-1实值矩阵,包含均匀采样的输入和输出时域信号值。在这里,N年代是样本的数量。
对于MIMO系统,请指定u
,y
作为一个输入/输出矩阵对,具有以下维度:
u
- - - - - -N年代——- - - - - -Nu,在那里Nu是输入的数量。y
- - - - - -N年代——- - - - - -Ny,在那里Ny是输出的数量。
对于多实验数据,请指定u
,y
作为一对1 × -Ne单元格数组,其中Ne是实验的次数。所有实验的采样次数必须匹配。
对于只包含输出而没有输入的时间序列数据,请指定y
只有。
有关使用估计数据类型的详细信息,请参见系统识别工具箱中的数据域和数据类型.
[na nb nc nk]
- - - - - -多项式的订单
整行向量|整数矩阵的行向量|标量
模型的多项式阶数和延迟,指定为1 × 4向量或矩阵向量[na nb nc nk]
.多项式的阶数等于该多项式中要估计的系数的个数。
对于没有输入的ARMA或ARIMA时间序列模型[na nb nc nk]
来(na数控)
.有关示例,请参见ARMA模型.
对于一个模型纽约输出和ν输入:
na
多项式的阶数是多少一个(问),指定为纽约——- - - - - -纽约非负整数矩阵。注
多项式的阶数是多少B(问) + 1,指定为an纽约——- - - - - -ν非负整数矩阵。数控
多项式的阶数是多少C(问),指定为长度为非负整数的列向量纽约.nk
输入-输出延迟,也称为传输延迟,是否指定为纽约——- - - - - -ν非负整数矩阵。nk
在ARMAX模型中由B多项式。
有关示例,请参见估计ARMAX模型.
init_sys
- - - - - -初始化参数配置系统
离散时间线性模型
系统的初始参数化配置sys
,指定为离散时间线性模型。你获得init_sys
通过使用测量数据或使用命令直接构造来执行估计,例如idpoly
而且中的难点
.
如果init_sys
是一个ARMAX模型armax
的参数值init_sys
作为估算的初始猜测。来配置的初始猜测和约束一个(问),B(问),C(问),使用结构
的属性init_sys
.例如:
来指定的初始猜测一个(问)期限
init_sys
,设置init_sys.Structure.A.Value
作为最初的猜测。属性的约束B(问)期限
init_sys
:集
init_sys.Structure.B.Minimum
到最低限度B(问)系数值。集
init_sys.Structure.B.Maximum
到最大限度B(问)系数值。集
init_sys.Structure.B.Free
来表明B(问)系数可以自由估计。
如果init_sys
是不是一个多项式模型带ARMAX结构,软件先转换init_sys
转到ARMAX模型。armax
使用结果模型的参数作为估计的初始猜测sys
.
如果选择
未指定,且init_sys
是通过估计得到的,那么估计的选项从何而来init_sys.Report.OptionsUsed
使用。
有关示例,请参见使用状态空间模型初始化ARMAX模型参数.
选择
- - - - - -估计选项
armaxOptions
选项设置
用于ARMAX模型识别的估计选项,指定为armaxOptions
选项设置。指定的选项选择
包括以下内容:
初始条件处理——使用此选项确定如何设置或估计初始条件。
输入和输出数据偏移量——使用这些选项在估计期间从数据中删除偏移量。
正则化——在估计过程中,使用此选项来控制偏差和方差误差之间的权衡。
名称-值参数
指定可选参数对为Name1 = Value1,…,以=家
,在那里名字
参数名称和价值
对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。
在R2021a之前,使用逗号分隔每个名称和值,并将其括起来名字
在报价。
例子:“InputDelay”,2
对所有输入通道应用两个采样周期的输入延迟
InputDelay
- - - - - -输入延迟
0
(默认)|整数标量|正整数向量
输入延迟表示为采样时间的整数倍,指定为逗号分隔的对,由“InputDelay”
和以下其中之一:
Nu-by-1向量,其中Nu是输入的数量-每个条目都是一个数值,表示对应输入通道的输入延迟。
标量值-对所有输入通道应用相同的延迟。
0
—无输入延迟。
例子:armax(data,[2 1 1 0],'InputDelay',1)
用一阶估计二阶ARX模型B而且C输入延迟为两个样本的多项式。
IODelay
- - - - - -运输延误
0
(默认)|标量|矩阵
每个输入-输出对的传输延迟,表示为采样时间的整数倍,并指定为由逗号分隔的对组成“IODelay”
和以下其中之一:
Ny——- - - - - -Nu矩阵,Ny输出的数量和Nu是输入的数量-每个条目都是一个整数值,表示对应输入-输出对的传输延迟。
标量值-对所有输入-输出对应用相同的延迟。
“IODelay”
是有用的替代nk
秩序。你可以提出因式max (nk-1, 0)
滞后于“IODelay”
价值。为nk
> 1,armax (na, nb、nk)
等于armax (na, nb 1 IODelay, nk-1)
.
IntegrateNoise
- - - - - -在噪声信道中增加积分器
假
(默认)|逻辑向量
在噪声信道中添加的积分器,指定为由逗号分隔的对组成“IntegrateNoise”
和一个长度的逻辑向量Ny,在那里Ny是输出的数量。
设置“IntegrateNoise”
来真正的
对于模型中的特定输出结果
在哪里 是噪声信道中的积分器,e(t).
使用“IntegrateNoise”
来创建ARIMA或ARIMAX模型。
有关示例,请参见ARIMA模型.
输出参数
sys
- ARMAX模型
idpoly
对象
拟合给定估计数据的ARMAX模型,作为离散时间返回idpoly
对象。该模型是使用指定的模型顺序、延迟和估计选项创建的。
有关所使用的估计结果和选项的信息存储在报告
模型的属性。报告
具有以下字段。
报告字段 | 描述 | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
状态 |
模型状态的总结,表明模型是通过构造创建的还是通过估计获得的。 |
||||||||||||||||||
方法 |
使用估计命令。 |
||||||||||||||||||
InitialCondition |
在模型估计期间对初始条件的处理,作为以下值之一返回:
属性时如何处理初始条件,此字段特别有用 |
||||||||||||||||||
适合 |
估计的定量评估,作为结构返回。看到损失函数和模型质量度量有关这些质量度量的更多信息。该结构有以下字段:
|
||||||||||||||||||
参数 |
模型参数估计值。 |
||||||||||||||||||
OptionsUsed |
用于估计的选项集。如果没有配置自定义选项,则这是一组默认选项。看到 |
||||||||||||||||||
RandState |
估计开始时随机数流的状态。空的, |
||||||||||||||||||
DataUsed |
用于估计的数据的属性,作为具有以下字段的结构返回。
|
||||||||||||||||||
终止 |
用于预测误差最小化的迭代搜索的终止条件,作为具有以下字段的结构返回:
对于不需要数值搜索优化的估计方法,请使用 |
有关使用的更多信息报告
,请参阅评估报告.
集成电路
-初始条件
initialCondition
对象|对象数组initialCondition
值
估计的初始条件,返回为initialCondition
对象的对象数组initialCondition
值。
对于单个实验数据集,
集成电路
以状态空间形式表示传递函数模型的自由响应(一个而且C矩阵)到估计的初始状态(x0).对于一个多实验数据集用Ne实验中,
集成电路
对象数组是长度的吗Ne其中包含一组initialCondition
每个实验的值。
如果armax
返回集成电路
的值0
你知道你有非零的初始条件,设置“InitialCondition”
选项armaxOptions
来“估计”
并将更新后的选项集传递给armax
.例如:
opt = armaxOptions(“InitialCondition”,“估计”) [sys,ic] = armax(data,np,nz,opt)
“汽车”
设置“InitialCondition”
使用“零”
初始条件对整个估计误差最小化过程的影响可以忽略不计时的方法。指定“估计”
确保软件估计值集成电路
.
有关更多信息,请参见initialCondition
.有关使用此参数的示例,请参见获得初始条件.
更多关于
ARMAX模型
ARMAX (Autoregressive Moving Average with Extra Input)模型结构为:
差分方程更简洁的写法是
在哪里
-按时间输出
-杆数
- 0 + 1的个数
-数目C系数
-在输入影响输出之前出现的输入采样数,也称为死时间在系统中
—当前输出所依赖的以前的输出
-当前输出所依赖的先前和延迟输入
—白噪声扰动值
的参数na
,注
,数控
是ARMAX型号的订单,和nk
就是延迟。问是延迟运算符。具体地说,
ARMA时间序列模型
ARMA(自回归移动平均)模型是一个特殊的情况ARMAX模型没有输入通道。ARMA单输出模型结构由下式给出:
ARIMAX模型
ARMAX(额外输入的自回归集成移动平均)模型结构与ARMAX模型相似,只是它在噪声源中包含了一个积分器e (t):
ARIMA模型
ARIMA(自回归综合移动平均)模型结构是没有输入的ARIMA模型的简化:
算法
一种迭代搜索算法最小化鲁棒二次预测误差准则。当满足下列条件之一时,迭代终止:
达到最大迭代次数。
期望的改进小于规定的公差。
无法找到较低的标准值。
您可以使用。获取有关停止条件的信息sys.Report.Termination
.
使用armaxOptions
选项集,用于创建和配置影响估计结果的选项。特别是,设置搜索算法属性,如MaxIterations
而且宽容
,使用“SearchOptions”
财产。
当您没有为迭代搜索指定初始参数值作为初始模型时,它们将在一个特殊的四阶段LS-IV算法中构造。
加固的截止值是基于先进。ErrorThreshold
估计选项和从初始参数估计的残差的估计标准偏差。在最小化过程中不重新计算截止值。默认情况下,不执行健壮化;的默认值ErrorThreshold
选项为0。
为了确保只测试稳定预测器对应的模型,算法对预测器进行稳定性测试。一般来说,两个 而且 (如果适用)必须在单位圆内全部为零。
最小化信息显示在屏幕上时,估计选项“显示”
是“上”
或“全部”
.当“显示”
是“全部”
,当前和以前的参数估计值都以列向量形式显示,参数按字母顺序列出。给出了准则函数(代价)的值,给出了高斯-牛顿向量及其范数。当“显示”
是“上”
时,只显示符合条件的值。
参考文献
[1] Ljung, L。系统识别:用户的理论,第二版。上马鞍河,新泽西州:Prentice-Hall PTR, 1999。参见关于计算估算的章节。
版本历史
在R2006a中引入MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入该命令来运行该命令。Web浏览器不支持MATLAB命令。
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。