The ARX
(AutoregRessive with eXogeneous input) 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:
This particular model belongs to the exponential family, hence it has conjugate distribution (i.e. both prior and posterior) of the Gauss-inverse-Wishart form. See [ref]
Estimation of this family can be achieved by accumulation of sufficient statistics. The sufficient statistics Gauss-inverse-Wishart density is composed of:
For online estimation with stationary parameters can be easily achieved by collecting the sufficient statistics described above recursively.
Extension to non-stationaly parameters, can be achieved by operation called forgetting. This is an approximation of Bayesian filtering see [Kulhavy]. The resulting algorithm is defined by manipulation of sufficient statistics:
where is the forgetting factor, typically roughly corresponding to the effective length of the exponential window by relation:
Hence, corresponds to estimation on exponential window of effective length 10 samples.
Statistics are called alternative statistics, their role is to stabilize estimation. It is easy to show that for zero data, the statistics converge to the alternative statistics.
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.
However, due to property known as nesting in exponential family, these hypotheses can be tested using only the posterior statistics. (This property does no hold for forgetting ). Hence, for low dimensional problems, this can be done by a tree search (method bdm::ARX::structure_est()). Or more sophisticated algorithm [ref Ludvik]
Estimation of the ARX model is implemented in class bdm::ARX.
frg
, egiw
class, i.e. attributes V
and nu
are established for convenience.The best way to experiment with this object is to run matlab script arx_test.m
located in directory ./library/tutorial. See Running experiment
estimator
with ARX data fields this page is out of date, as the user info concept has been changed for detailed description.
estimator.frg
, to values <1. You should see increased lower and upper bounds on the estimates. system.theta
, you should note that poles close to zero are harder to identify.