主要内容

PolynomialReogressor

为非线性ARX模型指定多项式回归

描述

多项式回归器是由延迟输入和输出变量组成的多项式。例如,yt1)2yt1)ut-1)都是阶数为2的多项式回归器和一个样本的可变时滞。一个PolynomialReogressor对象封装了一组多项式回归器。使用PolynomialReogressor使用使用非线性ARX模型时的对象idnlarx或者nlarx..您可以指定PolynomialReogressor对象与linearreplusserorCustomRogressor对象,并将它们组合成单个组合回归器集。

创造

描述

例子

PREG.= polynomialRegressor(变量、滞后)创造一个PolynomialReogressor中包含输出和输入名称的顺序2的对象变量以及相应的滞后滞后.例如,如果变量包含“y”滞后包含相应的滞后向量(2 - 4),然后使用的回归器“y”yt-2)2yt-4)2

例子

PREG.= polynomialRegressor(变量、滞后订单)创造一个PolynomialReogressor订单对象订购

例子

PREG.= polynomialRegressor(变量、滞后、秩序,UseAbsolute)指定UseAbsolute是否使用变量的绝对值来创建回归器。

例子

PREG.= PolyNomialReogressor(变量,滞后,订单,USEAolute,AllowVariaBlex)指定allowvariablex.是否允许回归器公式中有多个变量。例如,如果变量等于{' y ', ' u '}滞后等于{1,1},和订购等于2,则值为真实allowvariablex.导致包含混合变量的回归yt1)ut-1),以及单变量回归器yt1)2ut1)2

例子

PREG.= polynomialRegressor(变量、滞后、秩序、UseAbsolute、AllowVariableMix AllowLagMix)指定AllowLagMix是否允许回归公式中有不同的滞后。例如,如果变量等于{' y ', ' u '}滞后等于{2,[0 3]}订购等于2,和allowvariablex.等于,则值为真实AllowLagMix导致包含混合滞后的回归utut-3),以及独特的滞后回归yt-2)2ut2,和ut-3)2.请注意,如果您设置allowvariablex.到目前为止真实,则回归量集也将包括yt-2)ut)和yt-2)ut3)。

属性

展开所有

输出和输入变量名称指定为字符串的单元格数组或引用的单元格数组outputName.InputName属性A.iddata.对象。每个条目必须是一个字符串,没有白色空间以外的特殊字符。有关使用此属性的示例,请参阅用多项式回归估计非线性ARX模型

示例:{“日元”,‘u1’}

示例:[z.outputName;z.inputname]'

在每个变量中滞后,指定为1-by-nv非负整数行向量的单元格数组,其中nv是回归变量的总数。每行矢量包含nr指定的整数nr回归对相应变量的滞后。例如,假设您想要以下回归:

  • 输出变量y1y1t1)2y1t-2)2

  • 输入变量u1u1t-3)2

为了获得这些滞后,设置滞后到目前为止{[1 2],3}

如果滞后对应于AN的输出变量idnlarx模型,最小滞后必须大于或等于1。

有关使用此属性的示例,请参阅用多项式回归估计非线性ARX模型

示例:{1}

示例:{(1 2), (1, 3, 4)}

绝对值指示符,用于确定是否使用回归变量的绝对值而不是符号值,指定为具有等于变量数量的长度的逻辑向量。

有关设置此属性的示例,请参阅在多项式回归集中使用绝对值

示例:(真的,假的)

混合变量指示灯确定是否在退币公式中使用多个变量,例如yt1)ut-1),指定为具有等于变量数量的长度的逻辑向量。

有关设置此属性的示例,请参阅在多项式回归术语中使用多元变量

示例:(真的,假的)

混合滞后指标,确定是否在回归器或公式中使用不同的滞后,如utut-3),指定为长度等于变量数量的逻辑向量。

为现有的非线性ARX模型设置此属性SYS.,使用点表示法,如以下命令所示。

有关设置此属性的示例,请参阅在多项式回归术语中使用混合滞后

示例:(真的,假的)

名称的时间变量,指定为有效的MATLAB®与值不同的变量名称变量

示例:“ClockTime”

例子

全部折叠

加载数据并创建一个iddata.对象z采样时间为0.1秒。

负载Twotankdata.yuz = iddata (y、u,'ts', 0.1);

指定具有表单的多项式回归器 u t - 2 2 u t - 4 2 ,和 y t - 1 2

利用z指定变量名。

变量= [z.outputname; z.inputname];

指定滞后。

LAGS = {1,[2 4]};

创建回归量。默认顺序为2

PREG = PolynomialReogressor(变量,滞后)
PREG =变量中的1个回归y1,U1顺序:2变量:{'y1''u1'}滞后:{[1] [2 4]} USEABSOLUTE:[0 0] ALVERVARIABLEIX:0 ALLUALLAGMIX:0 TIMEVARIALE:'T'由此描述的回归器

使用PREG.来估计非线性ARX模型。

sys = nlarx(z,preg)
SYS =带有1个输出和1个输入输入的非线性ARX模型:U1输出:Y1回归:变量中的1个回归位Y1,U1列表所有回归量输出功能:小波网络具有66个单元采样时间:0.1秒状态:使用nlarx估计时域数据“z”。适用于估算数据:95.97%(预测焦点)FPE:5.843E-05,MSE:5.569E-05

查看解释变量。

GetReg(SYS)
ans =3×1个细胞{“y1 (t - 1) ^ 2”}{u1(2) ^ 2的}{u1(第四节)^ 2的}

指定三阶多项式回归 u 1 t - 2 3.

变量='U1';滞后= 2;订单= 3;preg = polynomialregressor(变量,滞后,订单)
pReg = Order 3 regressors in variables u1 Order: 3 variables: {'u1'} lag: {[2]} UseAbsolute: 0 AllowVariableMix: 0 AllowLagMix: 0 TimeVariable: 't'由该集合描述的回归器

创建一个二阶多项式回归集,它使用变量中的3,10和100的滞后y1.以及0和4的滞后变量U1.

var = {'y1''U1'};LAGS = {[3 10 100],[0,4]};

指定y1.回归使用绝对值y1.

UseAbs =(真、假);

创建多项式回归器。

reg = polynomialRegressor (var,滞后2 UseAbs)
reg = Order 2 regressors in variables y1, u1 Order: 2 variables: {'y1' 'u1'} lag: {[3 10 100] [0 4]} UseAbsolute: [1 0] AllowVariableMix: 0 AllowLagMix: 0 TimeVariable: 't'所描述的回归器

创建一个多项式回归器集,包括术语 y 1 t - 1 2 u 1 t - 1 2 ,和 y 1 t - 1 u 1 t - 1

指定变量和滞后。

var = {'y1''U1'};LAGS = {1,1};

指定要创建混合变量回归器。

mixvar = true;

使用二阶多项式回归使用Mixvar..设置第四个位置,代表该位置UseAbsolute财产,到

Reg = PolynomialReogressor(vars,滞后,2,false,mixvar)
reg =变量中的1个回归y1,U1顺序:2变量:{'y1''u1'}滞后:{[1] [1]} useabsolute:[0] arivevariablex:1 allarlagmix:0值:'t'这套描述的回归器

作为一种替代方法,您可以首先使用变量和时滞创建回归器规范,并设置allowvariablex.后来的财产使用点表示法。

Reg1 = PolynomialReogressor(vars,滞后);Reg1.allyVariaMalix = True
Reg1 =变量中的订单2回归y1,U1顺序:2变量:{'y1'u1'}滞后:{[1] [1]} USEABSOLUTE:[0] ariveVariaBlex:1 ariveLagmix:0 TapeVariable:'T'这套描述的回归器

使用reg1.在非线性ARX模型中。

负载Twotankdata.yu;z = iddata (y、u,'ts', 0.1);sys = nlarx(z,reg1);

查看解释变量。

GetReg(SYS)
ans =3×1个细胞{'y1(t-1)^2'} {'u1(t-1)^2'} {'y1(t-1)*u1(t-1)'}

回归器包括混合变量术语。

指定包含表单项的多项式回归集合 u t u t - 3.

指定变量名和滞后。

var = {'y1''U1'};时滞= {2,[0 3]};

初始化一个二阶多项式回归器。

Reg = PolynomialReogressor(vars,滞后);

指定回归器使用混合滞后。

reg。所有owLagMix = true;

使用非线性ARX模型中的回归集合。

负载Twotankdata.yu;z = iddata (y、u,'ts', 0.1);sys = nlarx(z,reg);

查看解释变量。

GetReg(SYS)
ans =4×1细胞{'y1(t-2)^ 2'} {'u1(t)^ 2'} {'u1(t-3)^ 2'} {'u1(t)* u1(t-3)'}

回归包括混合滞后术语。

加载数据并创建一个iddata.对象z

负载Twotankdata.yuz = iddata (y、u,'ts', 0.1);

指定具有表单的多项式回归器 u t - 2 2 u t - 4 2 .还指定表单的线性回归 y t - 1

指定输入延迟。

Ulags = {[2 4]};

指定多项式回归器。默认的回归顺序是2

preg = polynomialregressor(z.inputname,ulags);

指定输出滞后并指定线性回归。

llags = 1;lreg = linearreplorseror(z.outputname,llags);

估计一个非线性ARX模型。

Reg = [PREG; LREG]
reg =2×1对象[2 1]数组多项式回归器,线性回归器对象。------------------------------------ 1。Order 2 regressors in variables u1 Order: 2 variables: {'u1'} lag: {[2 4]} UseAbsolute: 0 AllowVariableMix: 0 AllowLagMix: 0 TimeVariable: 't' ------------------------------------ 2。变量y1中的线性回归变量变量:{'y1'}时滞:{[1]}UseAbsolute: 0 TimeVariable: 't'此集合描述的回归变量
sys = nlarx(z,reg)
SYS =带有1个输出的非线性ARX模型和1个输入输入:U1输出:Y1回归器:1。变量中的线性回归y1 2.变量中的排序2回归所有回归量输出功能:小波网络具有21个单位采样时间:0.1秒状态:使用nlarx估计时域数据“z”。适合估算数据:96.56%(预测焦点)FPE:4.133E-05,MSE:4.059E-05

查看解释变量。

GetReg(SYS)
ans =3×1个细胞{'U1(T-2)^ 2'} {'U1(T-4)^ 2'} {'y1(t-1)'}

加载估计数据Z1,具有一个输入和一个输出,并获得输出和输入名称。

负载Iddata1.Z1;= (z1名字。outputName.Z1.InputName]
名称=1×2细胞{'y1'} {'u1'}

指定l表示为线性回归器的集合 y 1 t - 1 u 1 t - 2 ,和 u 1 t - 5

l = linearreplorseror(名称,{1,[2 5]});

指定P作为多项式回归 y 1 t - 1 2

p =多项式regrarsor(名称(1),1,2);

指定C作为自定义回归 y 1 t - 2 u 1 t - 3. .使用匿名函数句柄来定义该函数。

C = CustomRegressor(名称,{2 3},@(x,y)x。* y)
c =自定义回归线:Y1(T-2)。* U1(T-3)VariaBlestoreGroussorFCN:@(x,y)x。* y变量:{'y1''u1'}滞后:{[2] [3]}矢量化:1值:此集合描述的“T”回归器

在列向量中组合回归器R

r = [l; p; c]
r =3×1对象[3 1] LinearReBoardSer,PolyNomialReogressor,CustomRogressor Objects数组。---------------------------------------------------------中的线性回归y1,u1变量:{'y1''U1'}滞后:{[1] [2 5]} USEABUTURE:[0]时间等变:'T'---------------------------------- 2. Order 2 regressors in variables y1 Order: 2 Variables: {'y1'} Lags: {[1]} UseAbsolute: 0 AllowVariableMix: 0 AllowLagMix: 0 TimeVariable: 't' ------------------------------------ 3. Custom regressor: y1(t-2).*u1(t-3) VariablesToRegressorFcn: @(x,y)x.*y Variables: {'y1' 'u1'} Lags: {[2] [3]} Vectorized: 1 TimeVariable: 't' Regressors described by this set

估计非线性ARX模型R

sys = nlarx (z1, R)
sys =带有1个输出和1个输入输入的非线性ARX模型:U1输出:y1回归器:1。变量中的线性回归y1,u1 2.变量中的1 3.自定义回归:Y1(T-2)。* U1(T-3)所有回归量的列表输出功能:小波网络具有1个单元采样时间:0.1秒状态:使用NLARX估计时域数据“Z1”。适合估算数据:59.73%(预测焦点)FPE:3.356,MSE:3.147

查看完整的回归器集。

GetReg(SYS)
ans =5×1细胞{'y1(t-1)'} {'u1(t-2)'} {'u1(t-5)'} {'y1(t-1)^ 2'} {'y1(t-2)。* U1(T-3)'}
介绍了R2021a