# Example of ARX model estimation

Here, we use the `ARX` class to estimate parameters and structure. ARX model is defined as follows:

where is the system output, is vector of unknown parameters, is an vector of data-dependent regressors, and noise is assumed to be Normal distributed .

Special cases include:...

## Mathematical background:

This particular model belongs to the exponential family, hence it has conjugate distribution of the Gauss-inverse-Wishart form (class egiw). See, [reference] for details.

For this model, structure estimation is a form of model selection procedure. Specifically, we compare hypotheses that the data were generated by the full model with hypotheses that some regressors in vector are redundant. The number of possible hypotheses is then the number of all possible combinations of all regressors.

## Software implementation:

Estimation with this class of model is perfromed by class ARX which is derived from class BMEF (estimation of exponential family). The posterior density ( ARX::_epdf() ) is class egiw, which represents Gauss-inverse-Wishart density.

Structure estimation is implemented in method ARX::structure_est() which uses brute force tree search approach.

## Examples of Use:

There are many ways how to use the object.

- Pure C++, as it is used in unit testing of the class arx, arx_test.cpp
- C++ application with UI configuration file, arx_test_ui
- Matlab interface, arx_matlab