Note: This page has been translated by MathWorks. Click here to see

To view all translated materials including this page, select Country from the country navigator on the bottom of this page.

To view all translated materials including this page, select Country from the country navigator on the bottom of this page.

This example shows how to apply the shorthand `regARIMA(p,D,q)`

syntax to specify the regression model with ARMA errors.

Specify the default regression model with ARMA(3,2) errors:

$$\begin{array}{l}{y}_{t}=c+{X}_{t}\beta +{u}_{t}\\ {u}_{t}={a}_{1}{u}_{t-1}+{a}_{2}{u}_{t-2}+{a}_{3}{u}_{t-3}+{\epsilon}_{t}+{b}_{1}{\epsilon}_{t-1}+{b}_{2}{\epsilon}_{t-2}.\end{array}$$

Mdl = regARIMA(3,0,2)

Mdl = regARIMA with properties: Description: "ARMA(3,2) Error Model (Gaussian Distribution)" Distribution: Name = "Gaussian" Intercept: NaN Beta: [1×0] P: 3 Q: 2 AR: {NaN NaN NaN} at lags [1 2 3] SAR: {} MA: {NaN NaN} at lags [1 2] SMA: {} Variance: NaN

The software sets each parameter to `NaN`

, and the innovation distribution to `Gaussian`

. The AR coefficients are at lags 1 through 3, and the MA coefficients are at lags 1 and 2.

Pass `Mdl`

into `estimate`

with data to estimate the parameters set to `NaN`

. The `regARIMA`

model sets `Beta`

to `[]`

and does not display it. If you pass a matrix of predictors ($${X}_{t}$$) into `estimate`

, then `estimate`

estimates `Beta`

. The `estimate`

function infers the number of regression coefficients in `Beta`

from the number of columns in $${X}_{t}$$.

Tasks such as simulation and forecasting using `simulate`

and `forecast`

do not accept models with at least one `NaN`

for a parameter value. Use dot notation to modify parameter values.

This example shows how to specify a regression model with ARMA errors without a regression intercept.

Specify the default regression model with ARMA(3,2) errors:

$$\begin{array}{l}{y}_{t}={X}_{t}\beta +{u}_{t}\\ {u}_{t}={a}_{1}{u}_{t-1}+{a}_{2}{u}_{t-2}+{a}_{3}{u}_{t-3}+{\epsilon}_{t}+{b}_{1}{\epsilon}_{t-1}+{b}_{2}{\epsilon}_{t-2}.\end{array}$$

Mdl = regARIMA('ARLags',1:3,'MALags',1:2,'Intercept',0)

Mdl = regARIMA with properties: Description: "ARMA(3,2) Error Model (Gaussian Distribution)" Distribution: Name = "Gaussian" Intercept: 0 Beta: [1×0] P: 3 Q: 2 AR: {NaN NaN NaN} at lags [1 2 3] SAR: {} MA: {NaN NaN} at lags [1 2] SMA: {} Variance: NaN

The software sets `Intercept`

to 0, but all other parameters in `Mdl`

are `NaN`

values by default.

Since `Intercept`

is not a `NaN`

, it is an equality constraint during estimation. In other words, if you pass `Mdl`

and data into `estimate`

, then `estimate`

sets `Intercept`

to 0 during estimation.

You can modify the properties of `Mdl`

using dot notation.

This example shows how to specify a regression model with ARMA errors, where the nonzero ARMA terms are at nonconsecutive lags.

Specify the regression model with ARMA(8,4) errors:

$$\begin{array}{l}{y}_{t}=c+{X}_{t}\beta +{u}_{t}\\ {u}_{t}={a}_{1}{u}_{1}+{a}_{4}{u}_{4}+{a}_{8}{u}_{8}+{\epsilon}_{t}+{b}_{1}{\epsilon}_{t-1}+{b}_{4}{\epsilon}_{t-4}.\end{array}$$

Mdl = regARIMA('ARLags',[1,4,8],'MALags',[1,4])

Mdl = regARIMA with properties: Description: "ARMA(8,4) Error Model (Gaussian Distribution)" Distribution: Name = "Gaussian" Intercept: NaN Beta: [1×0] P: 8 Q: 4 AR: {NaN NaN NaN} at lags [1 4 8] SAR: {} MA: {NaN NaN} at lags [1 4] SMA: {} Variance: NaN

The AR coefficients are at lags 1, 4, and 8, and the MA coefficients are at lags 1 and 4. The software sets the interim lags to 0.

Pass `Mdl`

and data into `estimate`

. The software estimates all parameters that have the value `NaN`

. Then `estimate`

holds all interim lag coefficients to 0 during estimation.

This example shows how to specify values for all parameters of a regression model with ARMA errors.

Specify the regression model with ARMA(3,2) errors:

$$\begin{array}{l}{y}_{t}={X}_{t}\left[\begin{array}{l}2.5\\ -0.6\end{array}\right]+{u}_{t}\\ {u}_{t}=0.7{u}_{t-1}-0.3{u}_{t-2}+0.1{u}_{t-3}+{\epsilon}_{t}+0.5{\epsilon}_{t-1}+0.2{\epsilon}_{t-2},\end{array}$$

where $${\epsilon}_{t}$$ is Gaussian with unit variance.

Mdl = regARIMA('Intercept',0,'Beta',[2.5; -0.6],... 'AR',{0.7, -0.3, 0.1},'MA',{0.5, 0.2},'Variance',1)

Mdl = regARIMA with properties: Description: "Regression with ARMA(3,2) Error Model (Gaussian Distribution)" Distribution: Name = "Gaussian" Intercept: 0 Beta: [2.5 -0.6] P: 3 Q: 2 AR: {0.7 -0.3 0.1} at lags [1 2 3] SAR: {} MA: {0.5 0.2} at lags [1 2] SMA: {} Variance: 1

The parameters in `Mdl`

do not contain `NaN`

values, and therefore there is no need to estimate `Mdl`

using `estimate`

. However, you can simulate or forecast responses from `Mdl`

using `simulate`

or `forecast`

.

This example shows how to set the innovation distribution of a regression model with ARMA errors to a *t* distribution.

Specify the regression model with ARMA(3,2) errors:

$$\begin{array}{l}{y}_{t}={X}_{t}\left[\begin{array}{l}2.5\\ -0.6\end{array}\right]+{u}_{t}\\ {u}_{t}=0.7{u}_{t-1}-0.3{u}_{t-2}+0.1{u}_{t-3}+{\epsilon}_{t}+0.5{\epsilon}_{t-1}+0.2{\epsilon}_{t-2},\end{array}$$

where $${\epsilon}_{t}$$ has a *t* distribution with the default degrees of freedom and unit variance.

Mdl = regARIMA('Intercept',0,'Beta',[2.5; -0.6],... 'AR',{0.7, -0.3, 0.1},'MA',{0.5, 0.2},'Variance',1,... 'Distribution','t')

Mdl = regARIMA with properties: Description: "Regression with ARMA(3,2) Error Model (t Distribution)" Distribution: Name = "t", DoF = NaN Intercept: 0 Beta: [2.5 -0.6] P: 3 Q: 2 AR: {0.7 -0.3 0.1} at lags [1 2 3] SAR: {} MA: {0.5 0.2} at lags [1 2] SMA: {} Variance: 1

The default degrees of freedom is `NaN`

. If you don't know the degrees of freedom, then you can estimate it by passing `Mdl`

and the data to `estimate`

.

Specify a $${t}_{5}$$ distribution.

Mdl.Distribution = struct('Name','t','DoF',5)

Mdl = regARIMA with properties: Description: "Regression with ARMA(3,2) Error Model (t Distribution)" Distribution: Name = "t", DoF = 5 Intercept: 0 Beta: [2.5 -0.6] P: 3 Q: 2 AR: {0.7 -0.3 0.1} at lags [1 2 3] SAR: {} MA: {0.5 0.2} at lags [1 2] SMA: {} Variance: 1

You can simulate or forecast responses from `Mdl`

using `simulate`

or `forecast`

because `Mdl`

is completely specified.

In applications, such as simulation, the software normalizes the random *t* innovations. In other words, `Variance`

overrides the theoretical variance of the *t* random variable (which is `DoF`

/(`DoF`

- 2)), but preserves the kurtosis of the distribution.

In the **Econometric Modeler** app, you can specify the predictor variables
in the regression component, and the error model lag structure and innovation
distribution of a regression model with
ARMA(*p*,*q*) errors, by following these
steps. All specified coefficients are unknown but estimable parameters.

At the command line, open the

**Econometric Modeler**app.econometricModeler

Alternatively, open the app from the apps gallery (see

**Econometric Modeler**).In the

**Data Browser**, select the response time series to which the model will be fit.On the

**Econometric Modeler**tab, in the**Models**section, click the arrow to display the models gallery.In the models gallery, in the

**Regression Models**section, click**RegARMA**.The

**RegARMA Model Parameters**dialog box appears.Choose the error model lag structure. To specify a regression model with ARMA(

*p*,*q*) errors that includes all AR lags from 1 through*p*and all MA lags from 1 through*q*, use the**Lag Order**tab. For the flexibility to specify the inclusion of particular lags, use the**Lag Vector**tab. For more details, see Specifying Lag Operator Polynomials Interactively. Regardless of the tab you use, you can verify the model form by inspecting the equation in the**Model Equation**section.In the

**Predictors**section, choose at least one predictor variable by selecting the**Include?**check box for the time series.

For example, suppose you are working with the
`Data_USEconModel.mat`

data set and its variables are listed in
the **Data Browser**.

To specify a regression model with AR(3) errors for the unemployment rate containing all consecutive AR lags from 1 through its order, Gaussian-distributed innovations, and the predictor variables

**COE**,**CPIAUCSL**,**FEDFUNDS**, and**GDP**:In the

**Data Browser**, select the`UNRATE`

time series.On the

**Econometric Modeler**tab, in the**Models**section, click the arrow to display the models gallery.In the models gallery, in the

**Regression Models**section, click**RegARMA**..

In the

**regARMA Model Parameters**dialog box, on the**Lag Order**tab, set**Autoregressive Order**to`3`

.In the

**Predictors**section, select the**Include?**check box for the**COE**,**CPIAUCSL**,**FEDFUNDS**, and**GDP**time series.

To specify a regression model with MA(2) errors for the unemployment rate containing all MA lags from 1 through its order, Gaussian-distributed innovations, and the predictor variables

**COE**and**CPIAUCSL**.In the

**Data Browser**, select the`UNRATE`

time series.On the

**Econometric Modeler**tab, in the**Models**section, click the arrow to display the models gallery.In the models gallery, in the

**Regression Models**section, click**RegARMA**.In the

**regARMA Model Parameters**dialog box, on the**Lag Order**tab, set**Moving Average Order**to`2`

.In the

**Predictors**section, select the**Include?**check box for the**COE**and**CPIAUCSL**time series.

To specify the regression model with ARMA(8,4) errors for the unemployment rate containing nonconsecutive lags

$$\begin{array}{c}{y}_{t}=c+{\beta}_{1}CO{E}_{t}+{\beta}_{2}CPIAUCS{L}_{t}+{u}_{t}\\ \left(1-{\alpha}_{1}L-{\alpha}_{4}{L}^{4}-{\alpha}_{8}{L}^{8}\right){u}_{t}=\left(1+{b}_{1}L+{b}_{4}{L}^{4}\right){\epsilon}_{t}\end{array},$$

where

*ε*is a series of IID Gaussian innovations:_{t}In the

**Data Browser**, select the`UNRATE`

time series.**Econometric Modeler**tab, in the**Models**section, click the arrow to display the models gallery.In the models gallery, in the

**Regression Models**section, click**RegARMA**.In the

**regARMA Model Parameters**dialog box, click the**Lag Vector**tab:In the

**Autoregressive Lags**box, type`1 4 8`

.In the

**Moving Average Lags**box, type`1 4`

.

In the

**Predictors**section, select the**Include?**check box for the**COE**and**CPIAUCSL**time series.

To specify a regression model with ARMA(3,2) errors for the unemployment rate containing all consecutive AR and MA lags through their respective orders, the predictor variables

**COE**and**CPIAUCSL**, and*t*-distributed innovations:In the

**Data Browser**, select the`UNRATE`

time series.**Econometric Modeler**tab, in the**Models**section, click the arrow to display the models gallery.In the models gallery, in the

**Regression Models**section, click**RegARMA**.In the

**regARMA Model Parameters**dialog box, click the**Lag Order**tab:Set

**Autoregressive Order**to`3`

.Set

**Moving Average Order**to`2`

.

Click the

**Innovation Distribution**button, then select`t`

.In the

**Predictors**section, select the**Include?**check box for the**COE**and**CPIAUCSL**time series.

The degrees of freedom parameter of the

*t*distribution is an unknown but estimable parameter.

After you specify a model, click **Estimate** to
estimate all unknown parameters in the model.

- Econometric Modeler App Overview
- Specifying Lag Operator Polynomials Interactively
- Create Regression Models with ARIMA Errors
- Specify the Default Regression Model with ARIMA Errors
- Create Regression Models with AR Errors
- Create Regression Models with MA Errors
- Create Regression Models with ARIMA Errors
- Create Regression Models with SARIMA Errors
- Specify ARIMA Error Model Innovation Distribution