Accelerating the pace of engineering and science

# selstruc

Select model order for single-output ARX models

## Syntax

```nn = selstruc(v)
[nn,vmod] = selstruc(v,c)
```

## Description

 Note:   Use selstruc for single-output systems only. selstruc supports both single-input and multiple-input systems.

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}\left(V\right)+\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}\left(V\right)+\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}\left(N\right)}{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.

## Examples

```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)
```