主要内容

linearRegressor

为非线性ARX模型指定线性回归器

描述

线性回归器是一个滞后的输出或输入变量,例如yt1)或ut2)。在这里,y项有一个样本的滞后和uTerm有2个样本的滞后。一个linearRegressor对象封装了一组线性回归器。使用linearRegressor当你创建非线性ARX模型时idnlarxnlarxlinearRegressor概括的概念订单在ARX模型中,换句话说(na nb nk)矩阵,以允许绝对值和不连续滞后。使用linearRegressor对象还允许您将线性回归器、多项式回归器和自定义回归器组合在一个回归器集合中。

创建

描述

例子

lReg= linearRegressor(变量、滞后)创建一个linearRegressor中包含输出和输入名称的变量以及相应的滞后滞后

例子

lreg= linearRegressor(变量、滞后useAbsolute)指定在UseAbsolute是否使用变量的绝对值来创建回归器。

属性

全部展开

的输出和输入变量名,指定为字符串的单元格数组或引用OutputNameInputName属性的iddata对象。每个条目必须是除了空格之外没有特殊字符的字符串。有关使用此属性的示例,请参见用线性回归集估计非线性ARX模型

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

例子:[z.OutputName;z.InputName]“

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

  • 输出变量y1y1t1)和y1t2)

  • 输入变量u1u1t3)

为了获得这些滞后,设置滞后{(1 2), 3}

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

有关使用此属性的示例,请参见用线性回归集估计非线性ARX模型

例子:{1}

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

绝对值指示器,决定是否使用回归器变量的绝对值而不是符号值,符号值指定为长度等于变量数量的逻辑向量。有关设置此属性的示例,请参见在线性回归集中使用绝对值

例子:(真的,假的)

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

例子:“ClockTime”

例子

全部折叠

指定一个等价于ARX模型顺序矩阵的线性回归器(4 4 1)

的阶矩阵(4 4 1)指定输入和输出回归器集都包含四个滞后范围从1到4的回归器。例如, u 1 t - 2 表示第二个输入回归器。

指定输出和输入名称。

output_name =“日元”;input_name =‘u1’;名称= {output_name, input_name};

指定输出和输入延迟。

Output_lag = [1 2 3 4];输入延迟= [1 2 3 4];滞后= {output_lag, input_lag};

创建线性回归器对象。

lreg = linearRegressor(名称、滞后)
lreg =变量y1, u1中的线性回归量变量:{'y1' 'u1'}时滞:{[1 2 3 4][1 2 3 4]}UseAbsolute: [0 0] TimeVariable: 't'该集合描述的回归量

加载估计数据并创建一个iddata对象。

负载twotankdataz = iddata (y、u, 0.2);

估计非线性ARX模型。

sys = nlarx (z, lreg)
sys = 1个输出和1个输入的非线性ARX模型输入:u1 Outputs: y1 Regressors:变量y1, u1中的线性回归量所有回归量列表输出函数:11单位小波网络样本时间:0.2秒状态:使用NLARX对时域数据“z”进行估计。拟合估计数据:96.84%(预测焦点)FPE: 3.482e-05, MSE: 3.431e-05

查看解释变量

getreg(系统)
ans =8 x1细胞{y1 (t - 1)的}{‘y1 (2)} {y1(条t - 3)的}{y1(第四节)的}{u1 (t - 1)的}{的u1 (2)} {u1(条t - 3)的}{}“u1(第四节)”

将模型输出与估计数据进行比较。

比较(z, sys)

图中包含一个轴对象。轴对象包含两个类型为line的对象。这些对象表示z (y1), sys: 82.73%。

创建一个线性回归器集,在变量中使用滞后3、10和100日元以及0和4的滞后变量u1

var = {“日元”‘u1’};时滞= {[3 10 100],[0,4]};

指定该日元的绝对值日元

UseAbs =(真、假);

创建线性回归器。

reg = linearRegressor (var,滞后,UseAbs)
reg =变量y1, u1中的线性回归器变量:{'y1' 'u1'} lag: {[3 10 100] [0 4]} UseAbsolute: [1 0] TimeVariable: 't'由该集合描述的回归器

加载估计数据z1,它有一个输入和一个输出,并获取输出和输入名称。

负载iddata1z1;= (z1名字。OutputNamez1.InputName]
名称=1 x2单元格{“日元”}{u1的}

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

L = linearRegressor(names,{1,[2 5]});

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

P = polynomialRegressor(名称(1),1,2);

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

C = customRegressor(names,{2 3},@(x,y)x.*y)
C =自定义回归器:y1(t-2).*u1(t-3) VariablesToRegressorFcn: @(x,y)x。*y Variables: {'y1' 'u1'} lag: {[2] [3]} Vectorized: 1 TimeVariable: 't'由这个集合描述的回归器

在列向量中组合回归器R

R = [L; P C]
R =[3 1]线性回归器,多项式回归器,customregression对象的数组。------------------------------------ 1。线性解释变量y₁,u1变量:{“日元”的u1}滞后:{[1][2 - 5]}UseAbsolute: [0 0] TimeVariable:“t ' ------------------------------------ 2。Order 2 regressors in variables y1 Order: 2 variables: {'y1'} lag: {[1]} UseAbsolute: 0 AllowVariableMix: 0 AllowLagMix: 0 TimeVariable: 't' ------------------------------------自定义回归器:y1(t-2).*u1(t-3) VariablesToRegressorFcn: @(x,y)x。*y Variables: {'y1' 'u1'} lag: {[2] [3]} Vectorized: 1 TimeVariable: 't'由这个集合描述的回归器

估计一个非线性ARX模型R

sys = nlarx (z1, R)
sys = 1个输出和1个输入的非线性ARX模型变量y1 u1 2的线性回归。变量y13的二阶回归量。自定义回归器:y1(t-2).*u1(t-3)所有回归器列表输出函数:1单位小波网络样本时间:0.1秒状态:使用NLARX对时域数据“z1”进行估计。拟合估计数据:59.73%(预测焦点)FPE: 3.356, MSE: 3.147

查看完整的回归器集。

getreg(系统)
ans =5 x1细胞{y1 (t - 1)的}{的u1(2)}{的u1 (t-5)} {y1 (t - 1) ^ 2的}{y1(2)。* u1(条t - 3)}
介绍了R2021a