## Estimate AR and ARMA Models

AR and ARMA models are autoregressive parametric models that have no measured inputs. These models operate on time series data.

The AR model contains a single polynomial

*A*that operates on the measured output. For a single-output signal*y*(*t*), the AR model is given by the following equation:$$A(q)y(t)=e(t)$$

The ARMA model adds a second polynomial

*C*that calculates the moving average of the noise error. The ARMA model for a single-output time series is given by the following equation:$$A(q)y(t)=C(q)e(t)$$

The ARMA structure reduces to the AR structure for

*C*(*q*) = 1.

The AR and ARMA model structures are special cases of the more general ARX and ARMAX model structures, which do provide for measured inputs. You can estimate AR and ARMA models at the command line and in the app.

For information about:

Time series models, see What Are Time Series Models?

Polynomial models, see What Are Polynomial Models?

Autoregressive time series models containing noise integration, see Estimate ARIMA Models

### Estimate AR and ARMA Models at the Command Line

Estimate AR and ARMA models at the command line by using `ar`

,
`arx`

, `ivar`

, or
`armax`

with estimation data that contains only output
measurements. These functions return estimated models that are represented by
`idpoly`

model objects.

**Selected Commands for Estimating Polynomial AR and ARMA Time-Series
Models**

Function | Description |
---|---|

`ar` | Noniterative, least-squares method to estimate linear, discrete-time, single-output AR models. Provides algorithmic options including lattice-based approaches and the Yule-Walker covariance approach. Example: |

`arx` | Noniterative, least-squares method for estimating linear AR models. Supports multiple outputs. Assumes white noise. Example: |

`ivar` | Noniterative, instrumental variable method for estimating single-output AR models. Insensitive to noise color. Example: |

`armax` | Iterative prediction-error method to estimate linear ARMA models. Example: |

For more detailed usage information and examples, as well as information on other
models that these functions can estimate, see `ar`

, `arx`

, `ivar`

, and `armax`

.

### Estimate AR and ARMA Time Series Models in the App

Before you begin, complete the following steps:

Prepare the data, as described in What Are Time Series Models?.

Estimate model order, as described in Preliminary Step – Estimating Model Orders and Input Delays.

For multiple-output AR models only, specify the model-order matrix in the MATLAB

^{®}workspace before estimation, as described in Polynomial Sizes and Orders of Multi-Output Polynomial Models.

Estimate AR and ARMA models using the System Identification app by following these steps.

In the System Identification app, select

**Estimate**>**Polynomial Models**to open the Polynomial Models dialog box.In the

**Structure**list, select the polynomial model structure you want to estimate from the following options:`AR:[na]`

`ARMA:[na nc]`

This action updates the options in the Polynomial Models dialog box to correspond with this model structure.

In the

**Orders**field, specify the model orders.For single-output models, enter the model orders according to the sequence displayed in the

**Structure**field.For multiple-output ARX models, enter the model orders directly, as described in Polynomial Sizes and Orders of Multi-Output Polynomial Models. Alternatively, enter the name of the matrix

`NA`

in the MATLAB Workspace browser that stores model orders, which is`Ny`

-by-`Ny`

.

To enter model orders and delays using the Order Editor dialog box, click

**Order Editor**.(AR models only) Select the estimation

**Method**as**ARX**or**IV**(instrumental variable method). For more information about these methods, see Polynomial Model Estimation Algorithms.Select

**Add noise integration**if you want to include an integrator in noise source*e*(*t*). This selection changes an AR model into an ARI model ($$Ay=\frac{e}{1-{q}^{-1}}$$) and an ARMA model into an ARIMA model ($$Ay=\frac{C}{1-{q}^{-1}}e(t)$$).In the

**Name**field, edit the name of the model or keep the default. The name of the model must be unique in the Model Board.In the

**Initial state**list, specify how you want the algorithm to treat initial states. For more information about the available options, see Specifying Initial States for Iterative Estimation Algorithms.If you get an inaccurate fit, try setting a specific method for handling initial states rather than specifying automatic selection.

In the

**Covariance**list, select`Estimate`

if you want the algorithm to compute parameter uncertainties. Effects of such uncertainties are displayed on plots as model confidence regions.If you do not want the algorithm to estimate uncertainty, select

`None`

. Skipping uncertainty computation can reduce computation time for complex models and large data sets.Click

**Regularization**to obtain regularized estimates of model parameters. Specify regularization constants in the Regularization Options dialog box. For more information, see Regularized Estimates of Model Parameters.To view the estimation progress at the command line, select the

**Display progress**check box. During estimation, the following information is displayed for each iteration:Loss function — Determinant of the estimated covariance matrix of the input noise.

Parameter values — Values of the model structure coefficients you specified.

Search direction — Changes in parameter values from the previous iteration.

Fit improvements — Actual versus expected improvements in the fit.

Click

**Estimate**to add this model to the Model Board in the System Identification app.For the prediction-error method, only, to stop the search and save the results after the current iteration completes, click

**Stop Iterations**. To continue iterations from the current model, click the**Continue iter**button to assign current parameter values as initial guesses for the next search and start a new search. For the multi-output case, you can stop iterations for each output separately. Note that the software runs independent searches for each output.To plot the model, select the appropriate check box in the

**Model Views**area of the System Identification app.

You can export the model to the MATLAB workspace for further analysis by dragging it to the **To
Workspace** rectangle in the System Identification app.