Select model order for single-output ARX models
nn = selstruc(v) [nn,vmod] = selstruc(v,c)
Note:
Use |
selstruc
is a function to help choose a model
structure (order) from the information contained in the matrix v
obtained
as the output from arxstruc
or ivstruc
.
The default value of c
is 'plot'
.
The plot shows the percentage of the output variance that is not explained
by the model as a function of the number of parameters used. Each
value shows the best fit for that number of parameters. By clicking
in the plot you can examine which orders are of interest. When you
click Select, the variable nn
is
exported to the workspace as the optimal model structure for your
choice of number of parameters. Several choices can be made.
c = 'aic'
gives no plots, but returns in nn
the
structure that minimizes
$$\begin{array}{c}{V}_{\mathrm{mod}}=\mathrm{log}\left(V\left(1+\frac{2d}{N}\right)\right)\\ =\mathrm{log}(V)+\frac{2d}{N},N\gg d\end{array}$$
where V is the loss function, d is
the total number of parameters in the structure in question, and N is
the number of data points used for the estimation. $$\mathrm{log}(V)+\frac{2d}{N}$$ is the Akaike's Information
Criterion (AIC). See aic
for more details.
c = 'mdl'
returns in nn
the
structure that minimizes Rissanen's Minimum Description Length (MDL)
criterion.
$${V}_{\text{mod}}=V\left(1+\frac{d\mathrm{log}(N)}{N}\right)$$
When c
equals a numerical value, the structure
that minimizes $${V}_{\mathrm{mod}}=V\left(1+\frac{cd}{N}\right)$$
is selected.
The output argument vmod
has the same format
as v
, but it contains the logarithms of the accordingly
modified criteria.
load iddata5; data = z5; V = arxstruc(data(1:200),data(201:400),... struc(1:10,1:10,1:10)) nn = selstruc(V,0); %best fit to validation data m = arx(data,nn)