Estimate AR and ARMA Models

Definition of AR and ARMA Models

For a single-output signal y(t), the AR model is given by the following equation:


The AR model is a special case of the ARX model with no input.

The ARMA model for a single-output time series is given by the following equation:


The ARMA structure reduces to the AR structure for C(q)=1. The ARMA model is a special case of the ARMAX model with no input.

For more information about polynomial models, see What Are Polynomial Models?.

For information on models containing noise integration see Estimate ARIMA Models

Estimating Polynomial Time-Series Models in the App

Before you begin, you must have accomplished the following:

To estimate AR and ARMA models using the System Identification app:

  1. In the System Identification app, select Estimate > Polynomial Models to open the Polynomial Models dialog box.

  2. 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. For information about each model structure, see Definition of AR and ARMA Models.


    OE and BJ structures are not available for time series models.

  3. In the Orders field, specify the model orders, as follows:

    • 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.

  4. (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.


    IV is not available for multiple-output data.

  5. Select the Add noise integration check box if you want to include an integrator in noise source e(t). This selection changes an AR model into an ARI model (Ay=e1q1) and an ARMA model into an ARIMA model (Ay=C1q1e(t)).

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

  7. 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 choosing it automatically.

  8. 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.

    To omit estimating uncertainty, select None. Skipping uncertainty computation might reduce computation time for complex models and large data sets.

  9. 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.

  10. 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 — Equals the 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 — Shows the actual versus expected improvements in the fit.

  11. Click Estimate to add this model to the Model Board in the System Identification app.

  12. (Prediction-error method only) To stop the search and save the results after the current iteration has been completed, 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.

  13. 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.

Estimating AR and ARMA Models at the Command Line

You can estimate AR and ARMA models at the command line. The estimated models are represented by idpoly model objects. For more information about models objects, see What Are Model Objects?.

The following table summarizes the commands and specifies whether single-output or multiple-output models are supported.

Commands for Estimating Polynomial Time-Series Models

Method NameDescription

Noniterative, least-squares method to estimate linear, discrete-time single-output AR models.


Iterative prediction-error method to estimate linear ARMAX models.


Noniterative, least-squares method for estimating linear AR models.


Noniterative, instrumental variable method for estimating single-output AR models.

The following code shows usage examples for estimating AR models:

% For scalar signals
m = ar(y,na)
% For multiple-output vector signals
m = arx(y,na)
% Instrumental variable method
m = ivar(y,na)
% For ARMA, do not need to specify nb and nk
th = armax(y,[na nc])

The ar command provides additional options to let you choose the algorithm for computing the least-squares from a group of several popular techniques from the following methods:

  • Burg (geometric lattice)

  • Yule-Walker

  • Covariance