Documentation

## Optimization Settings for Conditional Variance Model Estimation

### Optimization Options

`estimate` maximizes the loglikelihood function using `fmincon` from Optimization Toolbox™. `fmincon` has many optimization options, such as choice of optimization algorithm and constraint violation tolerance. Choose optimization options using `optimoptions`.

`estimate` uses the `fmincon` optimization options by default, with these exceptions. For details, see `fmincon` and `optimoptions` in Optimization Toolbox.

optimoptions PropertiesDescriptionestimate Settings
`Algorithm`Algorithm for minimizing the negative loglikelihood function`'sqp'`
`Display`Level of display for optimization progress`'off'`
`Diagnostics`Display for diagnostic information about the function to be minimized`'off'`
`ConstraintTolerance`Termination tolerance on constraint violations`1e-7`

If you want to use optimization options that differ from the default, then set your own using `optimoptions`.

For example, suppose that you want `estimate` to display optimization diagnostics. The best practice is to set the name-value pair argument `'Display','diagnostics'` in `estimate`. Alternatively, you can direct the optimizer to display optimization diagnostics.

Define a GARCH(1,1) model (`Mdl`) and simulate data from it.

```Mdl = garch('ARCH',0.2,'GARCH',0.5,'Constant',0.5); rng(1); y = simulate(Mdl,500);```

`Mdl` does not have a regression component. By default, `fmincon` does not display the optimization diagnostics. Use `optimoptions` to set it to display the optimization diagnostics, and set the other `fmincon` properties to the default settings of `estimate` listed in the previous table.

```options = optimoptions(@fmincon,'Diagnostics','on','Algorithm',... 'sqp','Display','off','ConstraintTolerance',1e-7)```
```options = fmincon options: Options used by current Algorithm ('sqp'): (Other available algorithms: 'active-set', 'interior-point', 'sqp-legacy', 'trust-region-reflective') Set properties: Algorithm: 'sqp' ConstraintTolerance: 1.0000e-07 Display: 'off' Default properties: CheckGradients: 0 FiniteDifferenceStepSize: 'sqrt(eps)' FiniteDifferenceType: 'forward' MaxFunctionEvaluations: '100*numberOfVariables' MaxIterations: 400 ObjectiveLimit: -1.0000e+20 OptimalityTolerance: 1.0000e-06 OutputFcn: [] PlotFcn: [] ScaleProblem: 0 SpecifyConstraintGradient: 0 SpecifyObjectiveGradient: 0 StepTolerance: 1.0000e-06 TypicalX: 'ones(numberOfVariables,1)' UseParallel: 0 Show options not used by current Algorithm ('sqp') ```
`% @fmincon is the function handle for fmincon`

The options that you set appear under the `Set by user:` heading. The properties under the `Default:` heading are other options that you can set.

Fit `Mdl` to `y` using the new optimization options.

```ToEstMdl = garch(1,1); EstMdl = estimate(ToEstMdl,y,'Options',options);```
```____________________________________________________________ Diagnostic Information Number of variables: 3 Functions Objective: @(X)Mdl.nLogLikeGaussian(X,V,E,Lags,1,maxPQ,T,nan,trapValue) Gradient: finite-differencing Hessian: finite-differencing (or Quasi-Newton) Constraints Nonlinear constraints: do not exist Number of linear inequality constraints: 1 Number of linear equality constraints: 0 Number of lower bound constraints: 3 Number of upper bound constraints: 3 Algorithm selected sqp ____________________________________________________________ End diagnostic information GARCH(1,1) Conditional Variance Model (Gaussian Distribution): Value StandardError TStatistic PValue _______ _____________ __________ ________ Constant 0.43145 0.46564 0.92656 0.35416 GARCH{1} 0.31435 0.24992 1.2578 0.20847 ARCH{1} 0.57143 0.32677 1.7487 0.080343 ```

### Note

• `estimate` numerically maximizes the loglikelihood function, potentially using equality, inequality, and lower and upper bound constraints. If you set `Algorithm` to anything other than `sqp`, make sure the algorithm supports similar constraints, such as `interior-point`. For example, `trust-region-reflective` does not support inequality constraints.

• `estimate` sets a constraint level of `ConstraintTolerance` so constraints are not violated. An estimate with an active constraint has unreliable standard errors because variance-covariance estimation assumes that the likelihood function is locally quadratic around the maximum likelihood estimate.

### Conditional Variance Model Constraints

The software enforces these constraints while estimating a GARCH model:

• Covariance-stationarity,

`${\sum }_{i=1}^{P}{\gamma }_{i}+{\sum }_{j=1}^{Q}{\alpha }_{j}<1$`

• Positivity of GARCH and ARCH coefficients

• Model constant strictly greater than zero

• For a t innovation distribution, degrees of freedom strictly greater than two

For GJR models, the constraints enforced during estimation are:

• Covariance-stationarity constraint,

`${\sum }_{i=1}^{P}{\gamma }_{i}+{\sum }_{j=1}^{Q}{\alpha }_{j}+\frac{1}{2}{\sum }_{j=1}^{Q}{\xi }_{j}<1$`

• Positivity constraints on the GARCH and ARCH coefficients

• Positivity on the sum of ARCH and leverage coefficients,

`${\alpha }_{j}+{\xi }_{j}\ge 0,\text{\hspace{0.17em}}\text{\hspace{0.17em}}\text{\hspace{0.17em}}j=1,\dots ,Q$`

• Model constant strictly greater than zero

• For a t innovation distribution, degrees of freedom strictly greater than two

For EGARCH models, the constraints enforced during estimation are:

• Stability of the GARCH coefficient polynomial

• For a t innovation distribution, degrees of freedom strictly greater than two