`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 Properties | Description | estimate 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.46565 0.92656 0.35415 GARCH{1} 0.31435 0.24992 1.2578 0.20847 ARCH{1} 0.57143 0.32677 1.7487 0.080343

`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.

The software enforces these constraints while estimating a GARCH model:

Covariance-stationarity,

$${\sum}_{i=1}^{P}{\gamma}_{i}+{\displaystyle {\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}+{\displaystyle {\sum}_{j=1}^{Q}{\alpha}_{j}}+\frac{1}{2}{\displaystyle {\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