Class representing binary-tree nonlinearity estimator for nonlinear ARX models
treepartition is an object that stores the binary-tree nonlinear estimator for estimating nonlinear ARX models. The object defines a nonlinear function , where F is a piecewise-linear (affine) function of x, y is scalar, and x is a 1-by-m vector. Compute the value of F using evaluate(t,x), where t is the treepartition object at x.
t=treepartition(Property1,Value1,...PropertyN,ValueN) creates a binary tree nonlinearity estimator object specified by properties in treepartition Properties. The tree has the number of leaves equal to 2^(J+1)-1, where J is the number of nodes in the tree and set by the property NumberOfUnits. The default value of NumberOfUnits is computed automatically and sets an upper limit on the actual number of tree nodes used by the estimator.
t=treepartition('NumberOfUnits',N) creates a binary tree nonlinearity estimator object with N terms in the binary tree expansion (the number of nodes in the tree). When you estimate a model containing t, the value of the NumberOfUnits property, N, in t is automatically changed to show the actual number of leaves used—which is the largest integer of the form 2^n-1 and less than or equal to N.
You can include property-value pairs in the constructor to specify the object.
After creating the object, you can use get or dot notation to access the object property values. For example:
% List all property values get(t) % Get value of NumberOfUnits property t.NumberOfUnits
You can also use the set function to set the value of particular properties. For example:
set(t, 'NumberOfUnits', 5)
The first argument to set must be the name of a MATLAB® variable.
Integer specifies the number of nodes in the tree.
When you estimate a model containing a treepartition nonlinearity, the value of NumberOfUnits is automatically changed to show the actual number of leaves used—which is the largest integer of the form 2^n-1 and less than or equal to N (the integer value of units you specify).
Structure containing the following fields:
Structure containing the following fields that affect the initial model:
Use treepartition to specify the nonlinear estimator in nonlinear ARX models. For example:
The following commands provide an example of using advanced treepartition options:
% Define the treepartition object. t=treepartition('num',100); % Set the Threshold, which is a field % in the Options structure. t.Options.Threshold=2; % Estimate the nonlinear ARX model. m=nlarx(Data,Orders,t);
The mapping F is defined by a dyadic partition P of the x-space, such that on each partition element Pk, F is a linear mapping. When x belongs to Pk, F(x) is given by:
where L is 1-by-m vector and d is a scalar common for all elements of partition. Ck is a 1-by-(m+1) vector.
The mapping F and associated partition P of the x-space are computed as follows:
Given the value of J, a dyadic tree with J levels and N = 2J–1 nodes is initialized.
Each node at level 1 < j < J has two descendants at level j + 1 and one parent at level j – 1.
The root node at level 1 has two descendants.
Nodes at level J are terminating leaves of the tree and have one parent.
One partition element is associated to each node k of the tree.
The vector of coefficients Ck is computed using the observations on the corresponding partition element Pk by the penalized least-squares algorithm.
When the node k is not a terminating leaf, the partition element Pk is cut into two to obtain the partition elements of descendant nodes. The cut is defined by the half-spaces (1,x)Bk > 0 or <=0 (move to left or right descendant), where Bk is chosen to improve the stability of least-square computation on the partitions at the descendant nodes.
When the value of the mapping F, defined by the treepartition object, is computed at x, an adaptive algorithm selects the active node k of the tree on the branch of partitions which contain x.
When the idnlarx property Focus is 'Prediction', treepartition uses a noniterative technique for estimating parameters. Iterative refinements are not possible for models containing this nonlinearity estimator.
You cannot use treepartition when Focus is 'Simulation' because this nonlinearity estimators is not differentiable. Minimization of simulation error requires differentiable nonlinear functions.