Create Regression Models with MA Errors

These examples show how to create regression models with MA errors using regARIMA. For details on specifying regression models with MA errors using the Econometric Modeler app, see Specify Regression Model with ARMA Errors Using Econometric Modeler App.

Default Regression Model with MA Errors

This example shows how to apply the shorthand regARIMA(p,D,q) syntax to specify the regression model with MA errors.

Specify the default regression model with MA(2) errors:

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

Mdl = regARIMA(0,0,2)
Mdl =
regARIMA with properties:

Description: "ARMA(0,2) Error Model (Gaussian Distribution)"
Distribution: Name = "Gaussian"
Intercept: NaN
Beta: [1×0]
P: 0
Q: 2
AR: {}
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 MA coefficients are at lags 1 and 2.

Pass Mdl into estimate with data to estimate the parameters set to NaN. Though Beta is not in the display, 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.

MA Error Model Without an Intercept

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

Specify the default regression model with MA(2) errors:

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

Mdl = regARIMA('MALags',1:2,'Intercept',0)
Mdl =
regARIMA with properties:

Description: "ARMA(0,2) Error Model (Gaussian Distribution)"
Distribution: Name = "Gaussian"
Intercept: 0
Beta: [1×0]
P: 0
Q: 2
AR: {}
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.

MA Error Model with Nonconsecutive Lags

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

Specify the regression model with MA(12) errors:

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

Mdl = regARIMA('MALags',[1, 12])
Mdl =
regARIMA with properties:

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

The MA coefficients are at lags 1 and 12.

Verify that the MA coefficients at lags 2 through 11 are 0.

Mdl.MA'
ans=12×1 cell array
{[NaN]}
{[  0]}
{[  0]}
{[  0]}
{[  0]}
{[  0]}
{[  0]}
{[  0]}
{[  0]}
{[  0]}
{[  0]}
{[NaN]}

After applying the transpose, the software displays a 12-by-1 cell array. Each consecutive cell contains the corresponding MA coefficient value.

Pass Mdl and data into estimate. The software estimates all parameters that have the value NaN. Then estimate holds ${b}_{2}$ = ${b}_{3}$ =...= ${b}_{11}$ = 0 during estimation.

Known Parameter Values for a Regression Model with MA Errors

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

Specify the regression model with MA(2) errors:

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

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

Mdl = regARIMA('Intercept',0,'Beta',[0.5; -3; 1.2],...
'MA',{0.5, -0.1},'Variance',1)
Mdl =
regARIMA with properties:

Description: "Regression with ARMA(0,2) Error Model (Gaussian Distribution)"
Distribution: Name = "Gaussian"
Intercept: 0
Beta: [0.5 -3 1.2]
P: 0
Q: 2
AR: {}
SAR: {}
MA: {0.5 -0.1} 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.

Regression Model with MA Errors and t Innovations

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

Specify the regression model with MA(2) errors:

$\begin{array}{l}{y}_{t}={X}_{t}\left[\begin{array}{l}0.5\\ -3\\ 1.2\end{array}\right]+{u}_{t}\\ {u}_{t}={\epsilon }_{t}+0.5{\epsilon }_{t-1}-0.1{\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',[0.5; -3; 1.2],...
'MA',{0.5, -0.1},'Variance',1,'Distribution','t')
Mdl =
regARIMA with properties:

Description: "Regression with ARMA(0,2) Error Model (t Distribution)"
Distribution: Name = "t", DoF = NaN
Intercept: 0
Beta: [0.5 -3 1.2]
P: 0
Q: 2
AR: {}
SAR: {}
MA: {0.5 -0.1} 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}_{15}$ distribution.

Mdl.Distribution = struct('Name','t','DoF',15)
Mdl =
regARIMA with properties:

Description: "Regression with ARMA(0,2) Error Model (t Distribution)"
Distribution: Name = "t", DoF = 15
Intercept: 0
Beta: [0.5 -3 1.2]
P: 0
Q: 2
AR: {}
SAR: {}
MA: {0.5 -0.1} at lags [1 2]
SMA: {}
Variance: 1

You can simulate and forecast responses from by passing Mdl to 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.