Documentation Center

  • Trial Software
  • Product Updates

AR Model Specifications

Default AR Model

This example shows how to use the shorthand arima(p,D,q) syntax to specify the default AR( $p$ ) model,

$${y_t} = c + {\phi _1}{y_{t - 1}} +  \ldots  + {\phi _p}{y_{t - p}} + {\varepsilon _t}.$$

By default, all parameters in the created model object have unknown values, and the innovation distribution is Gaussian with constant variance.

Specify the default AR(2) model:

model = arima(2,0,0)
model = 

    ARIMA(2,0,0) Model:
    --------------------
    Distribution: Name = 'Gaussian'
               P: 2
               D: 0
               Q: 0
        Constant: NaN
              AR: {NaN NaN} at Lags [1 2]
             SAR: {}
              MA: {}
             SMA: {}
        Variance: NaN

The output shows that the created model object, model, has NaN values for all model parameters: the constant term, the AR coefficients, and the variance. You can modify the created model object using dot notation, or input it (along with data) to estimate.

AR Model with No Constant Term

This example shows how to specify an AR(p) model with constant term equal to zero. Use name-value syntax to specify a model that differs from the default model.

Specify an AR(2) model with no constant term,

$${y_t} = {\phi _1}{y_{t - 1}} + {\phi _2}{y_{t - 2}} + {\varepsilon _t},$$

where the innovation distribution is Gaussian with constant variance.

model = arima('ARLags',1:2,'Constant',0)
model = 

    ARIMA(2,0,0) Model:
    --------------------
    Distribution: Name = 'Gaussian'
               P: 2
               D: 0
               Q: 0
        Constant: 0
              AR: {NaN NaN} at Lags [1 2]
             SAR: {}
              MA: {}
             SMA: {}
        Variance: NaN

The ARLags name-value argument specifies the lags corresponding to nonzero AR coefficients. The property Constant in the created model object is equal to 0, as specified. The model object has default values for all other properties, including |NaN|s as placeholders for the unknown parameters: the AR coefficients and scalar variance.

You can modify the created model object using dot notation, or input it (along with data) to estimate.

AR Model with Nonconsecutive Lags

This example shows how to specify an AR(p) model with nonzero coefficients at nonconsecutive lags.

Specify an AR(4) model with nonzero AR coefficients at lags 1 and 4 (and no constant term),

$${y_t} = 0.2 + 0.8{y_{t - 1}} - 0.1{y_{t - 4}} + {\varepsilon _t},$$

where the innovation distribution is Gaussian with constant variance.

model = arima('ARLags',[1,4],'Constant',0)
model = 

    ARIMA(4,0,0) Model:
    --------------------
    Distribution: Name = 'Gaussian'
               P: 4
               D: 0
               Q: 0
        Constant: 0
              AR: {NaN NaN} at Lags [1 4]
             SAR: {}
              MA: {}
             SMA: {}
        Variance: NaN

The output shows the nonzero AR coefficients at lags 1 and 4, as specified. The property P is equal to 4, the number of presample observations needed to initialize the AR model. The unconstrained parameters are equal to NaN.

Display the value of AR:

model.AR
ans = 

    [NaN]    [0]    [0]    [NaN]

The AR cell array returns four elements. The first and last elements (corresponding to lags 1 and 4) have value NaN, indicating these coefficients are nonzero and need to be estimated or otherwise specified by the user. arima sets the coefficients at interim lags equal to zero to maintain consistency with MATLAB® cell array indexing.

ARMA Model with Known Parameter Values

This example shows how to specify an ARMA(p, q) model with known parameter values. You can use such a fully specified model as an input to simulate or forecast.

Specify the ARMA(1,1) model

$${y_t} = 0.3 + 0.7\phi {y_{t - 1}} + {\varepsilon _t} + 0.4{\varepsilon _{t - 1}},$$

where the innovation distribution is Student's t with 8 degrees of freedom, and constant variance 0.15.

tdist = struct('Name','t','DoF',8);
model = arima('Constant',0.3,'AR',0.7,'MA',0.4,...
						'Distribution',tdist,'Variance',0.15)
model = 

    ARIMA(1,0,1) Model:
    --------------------
    Distribution: Name = 't', DoF = 8
               P: 1
               D: 0
               Q: 1
        Constant: 0.3
              AR: {0.7} at Lags [1]
             SAR: {}
              MA: {0.4} at Lags [1]
             SMA: {}
        Variance: 0.15

Because all parameter values are specified, the created model has no NaN values. The functions simulate and forecast don't accept input models with NaN values.

AR Model with a t Innovation Distribution

This example shows how to specify an AR( $p$ ) model with a Student's t innovation distribution.

Specify an AR(2) model with no constant term,

$${y_t} = {\phi _1}{y_{t - 1}} + {\phi _2}{y_{t - 2}} + {\varepsilon _t},$$

where the innovations follow a Student's t distribution with unknown degrees of freedom.

model = arima('Constant',0,'ARLags',1:2,'Distribution','t')
model = 

    ARIMA(2,0,0) Model:
    --------------------
    Distribution: Name = 't', DoF = NaN
               P: 2
               D: 0
               Q: 0
        Constant: 0
              AR: {NaN NaN} at Lags [1 2]
             SAR: {}
              MA: {}
             SMA: {}
        Variance: NaN

The value of Distribution is a struct array with field Name equal to 't' and field DoF equal to NaN. The NaN value indicates the degrees of freedom are unknown, and need to be estimated using estimate or otherwise specified by the user.

See Also

| | | |

Related Examples

More About

Was this topic helpful?