Main Content

In Econometrics Toolbox™, the general form of the innovation process is $${\epsilon}_{t}={\sigma}_{t}{z}_{t}.$$ A conditional variance model specifies the parametric form of the conditional variance process. The innovation distribution corresponds to the distribution of the independent and identically distributed (iid) process *z _{t}*.

For the distribution of *z _{t}*, you can choose a standardized Gaussian or standardized Student’s

$${z}_{t}=\sqrt{\frac{\nu -2}{\nu}}{T}_{\nu},$$

where *T _{ν}* follows a Student’s

The *t* distribution is useful for modeling time series with more extreme values than expected under a Gaussian distribution. Series with larger values than expected under normality are said to have *excess kurtosis*.

**Tip**

It is good practice to assess the distributional properties of model residuals to determine if a Gaussian innovation distribution (the default distribution) is appropriate for your data.

The property `Distribution`

in a model stores the distribution name (and degrees of freedom for the *t* distribution). The data type of `Distribution`

is a `struct`

array. For a Gaussian innovation distribution, the data structure has only one field: `Name`

. For a Student’s *t* distribution, the data structure must have two fields:

`Name`

, with value`'t'`

`DoF`

, with a scalar value larger than two (`NaN`

is the default value)

If the innovation distribution is Gaussian, you do not need to assign a value to `Distribution`

. `garch`

, `egarch`

, and `gjr`

create the required data structure.

To illustrate, consider specifying a GARCH(1,1) model:

Mdl = garch(1,1)

Mdl = garch with properties: Description: "GARCH(1,1) Conditional Variance Model (Gaussian Distribution)" Distribution: Name = "Gaussian" P: 1 Q: 1 Constant: NaN GARCH: {NaN} at lag [1] ARCH: {NaN} at lag [1] Offset: 0

The model output shows that `Distribution`

is a `struct`

array with one field, `Name`

, with the value `"Gaussian"`

.

When specifying a Student’s *t* innovation distribution, you can specify the distribution with either unknown or known degrees of freedom. If the degrees of freedom are unknown, you can simply assign `Distribution`

the value `'t'`

. By default, the property `Distribution`

has a data structure with field `Name`

equal to `"t"`

, and field `DoF`

equal to `NaN`

. When you input the model to `estimate`

, the degrees of freedom are estimated along with any other unknown model parameters.

For example, specify a GJR(2,1) model with an iid Student’s *t* innovation distribution, with unknown degrees of freedom:

GJRMdl = gjr('GARCHLags',1:2,'ARCHLags',1,'LeverageLags',1,... 'Distribution','t')

GJRMdl = gjr with properties: Description: "GJR(2,1) Conditional Variance Model (t Distribution)" Distribution: Name = "t", DoF = NaN P: 2 Q: 1 Constant: NaN GARCH: {NaN NaN} at lags [1 2] ARCH: {NaN} at lag [1] Leverage: {NaN} at lag [1] Offset: 0

The output shows that `Distribution`

is a data structure with two fields. Field `Name`

has the value `"t"`

, and field `DoF`

has the value `NaN`

.

If the degrees of freedom are known, and you want to set an equality constraint, assign a `struct`

array to `Distribution`

with fields `Name`

and `DoF`

. In this case, if the model is input to `estimate`

, the degrees of freedom won’t be estimated (the equality constraint is upheld).

Specify a GARCH(1,1) model with an iid Student’s *t* distribution with eight degrees of freedom:

GARCHMdl = garch('GARCHLags',1,'ARCHLags',1,... 'Distribution',struct('Name','t','DoF',8))

GARCHMdl = garch with properties: Description: "GARCH(1,1) Conditional Variance Model (t Distribution)" Distribution: Name = "t", DoF = 8 P: 1 Q: 1 Constant: NaN GARCH: {NaN} at lag [1] ARCH: {NaN} at lag [1] Offset: 0

The output shows the specified innovation distribution.

After a model exists in the workspace, you can modify its `Distribution`

property using dot notation. You cannot modify the fields of the `Distribution`

data structure directly. For example, `GARCHMdl.Distribution.DoF = 8`

is not a valid assignment. However, you can get the individual fields.

To change the distribution of the innovation process in an existing model to a Student’s *t* distribution with unknown degrees of freedom, type:

`Mdl.Distribution = 't';`

To change the distribution to a *t* distribution with known degrees of freedom, use a data structure:

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

You can get the individual `Distribution`

fields:

tDoF = Mdl.Distribution.DoF

tDoF = 8

To change the innovation distribution from a Student’s *t* back to a Gaussian distribution, type:

`Mdl.Distribution = 'Gaussian'`

Mdl = garch with properties: Description: "GARCH(1,1) Conditional Variance Model (Gaussian Distribution)" Distribution: Name = "Gaussian" P: 1 Q: 1 Constant: NaN GARCH: {NaN} at lag [1] ARCH: {NaN} at lag [1] Offset: 0

The `Name`

field is updated to `"Gaussian"`

, and there is no longer a `DoF`

field.

- Specify GARCH Models
- Specify EGARCH Models
- Specify GJR Models
- Modify Properties of Conditional Variance Models