# armax

Estimate parameters of ARMAX, ARIMAX, ARMA, or ARIMA model using time-domain data

## Syntax

## Description

### Estimate ARMAX or ARMA Model

estimates the parameters of an ARMAX or an ARMA
`sys`

= armax(`tt`

,```
[na
nb nc nk]
```

)`idpoly`

model `sys`

using the data contained in the
variables of timetable `tt`

. The software uses the first
*Nu* variables as inputs and the next *Ny* variables
as outputs, where *Nu* and *Ny* are determined from the
dimensions of `nb`

and `na`

, respectively.

For ARMA models, which have no input signals, use ```
sys =
armax(tt,na)
```

. In this case, the software fits the model using the first
*Ny* variables.

`armax`

performs the estimation using the prediction-error method
and the polynomial orders specified in `[na nb nc nk]`

. The model
properties include estimation covariances (parameter uncertainties) and goodness of fit
between the estimated and the measured data.

To select specific input and output channels from `tt`

, use
name-value syntax to set `'InputName'`

and
`'OutputName'`

to the corresponding timetable variable names.

uses the time-domain input and output signals in the comma-separated matrices
`sys`

= armax(`u`

,`y`

,`[na nb nc nk]`

)`u`

,`y`

. The software assumes that the data sample
time is 1 second. To change the sample time, set `Ts`

using name-value
syntax..ARMA Model

uses the time-domain data in the `sys`

= armax(`data`

,```
[na
nb nc nk]
```

)`iddata`

object `data`

. Use this syntax especially when you
want to take advantage of the additional information, such as data sample time or
experiment labeling, that data objects provide.

specifies additional options using one or more name-value arguments. For instance, using
the name-value argument `sys`

= armax(___,`Name,Value`

)`'IntegrateNoise',1`

estimates an ARIMAX or ARIMA model, which
is useful for systems with nonstationary disturbances. Specify
`Name,Value`

after any of the previous input-argument
combinations.

### Configure Initial Parameters

### Specify Additional Estimation Options

### Return Estimated Initial Conditions

`[`

returns the estimated initial conditions as an `sys`

,`ic`

] = armax(___)`initialCondition`

object. Use this syntax if you plan to simulate or predict the model response using the
same estimation input data and then compare the response with the same estimation output
data. Incorporating the initial conditions yields a better match during the first part of
the simulation.

## Examples

## Input Arguments

## Output Arguments

## More About

## Algorithms

An iterative search algorithm minimizes a robustified quadratic prediction error criterion. The iterations are terminated when any of the following is true:

Maximum number of iterations is reached.

Expected improvement is less than the specified tolerance.

Lower value of the criterion cannot be found.

You can get information
about the stopping criteria using `sys.Report.Termination`

.

Use the `armaxOptions`

option set to create and configure options
affecting the estimation results. In particular, set the search algorithm attributes, such as
`MaxIterations`

and `Tolerance`

, using the
`'SearchOptions'`

property.

When you do not specify initial parameter values for the iterative search as an initial model, they are constructed in a special four-stage LS-IV algorithm.

The cutoff value for the robustification is based on the
`Advanced.ErrorThreshold`

estimation option and on the estimated standard
deviation of the residuals from the initial parameter estimate. The cutoff value is not
recalculated during the minimization. By default, no robustification is performed; the default
value of `ErrorThreshold`

option is 0.

To ensure that only models corresponding to stable predictors are tested, the algorithm performs a stability test of the predictor. Generally, both $$C(q)$$ and $$F(q)$$ (if applicable) must have all zeros inside the unit circle.

Minimization information is displayed on the screen when
the estimation option `'Display'`

is `'On'`

or
`'Full'`

. When `'Display'`

is `'Full'`

,
both the current and the previous parameter estimates are displayed in column-vector form, and
the parameters are listed in alphabetical order. Also, the values of the criterion function
(cost) are given and the Gauss-Newton vector and its norm are displayed. When
`'Display'`

is `'On'`

, only the criterion values are
displayed.

## Alternatives

`armax`

does not support continuous-time model estimation. Use
`tfest`

to estimate a continuous-time transfer function model, or `ssest`

to estimate a continuous-time state-space model.

`armax`

supports only time-domain data. For frequency-domain data, use
`oe`

to estimate an Output-Error (OE) model.

## References

[1] Ljung, L. *System
Identification: Theory for the User*, Second Edition. Upper Saddle River, NJ:
Prentice-Hall PTR, 1999. See chapter about computing the estimate.

## Version History

**Introduced in R2006a**