Class representing binarytree nonlinearity estimator for nonlinear ARX models
t=treepartition(Property1,Value1,...PropertyN,ValueN)
t=treepartition('NumberOfUnits',N)
treepartition
is an object that stores the
binarytree nonlinear estimator for estimating nonlinear ARX models.
The object defines a nonlinear function $$y=F(x)$$, where F is
a piecewiselinear (affine) function of x, y is
scalar, and x is a 1bym
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^n1
and
less than or equal to N
.
You can include propertyvalue 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)
set
must be the name of a MATLAB^{®} variable.Property Name  Description 

NumberOfUnits  Integer specifies the number of nodes in the tree. When
you estimate a model containing a For example: treepartition('NumberOfUnits',5) 
Parameters  Structure containing the following fields:

Options  Structure containing the following fields that affect the initial model:

Use treepartition
to specify the nonlinear
estimator in nonlinear ARX models. For example:
m=nlarx(Data,Orders,treepartition('num',5));
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 xspace, such that on each partition element P_{k}, F is a linear mapping. When x belongs to P_{k}, F(x) is given by:
$$F(x)=d+xL+\left(1,x\right){C}_{k},$$
The mapping F and associated partition P of the xspace are computed as follows:
Given the value of J, a dyadic tree with J levels and N = 2^{J–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 C_{k} is computed using the observations on the corresponding partition element P_{k} by the penalized leastsquares algorithm.
When the node k is not a terminating leaf, the partition element P_{k} is cut into two to obtain the partition elements of descendant nodes. The cut is defined by the halfspaces (1,x)B_{k} > 0 or <=0 (move to left or right descendant), where B_{k} is chosen to improve the stability of leastsquare 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 Focus
option in nlarxOptions
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.