This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English verison of the page.

Note: This page has been translated by MathWorks. Please click here
To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.

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
AlgorithmAlgorithm for minimizing the negative loglikelihood function'sqp'
DisplayLevel of display for optimization progress'off'
DiagnosticsDisplay for diagnostic information about the function to be minimized'off'
ConstraintToleranceTermination tolerance on constraint violations1e-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);
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',...
% @fmincon is the function handle for fmincon
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

   Options not used by current Algorithm ('sqp')
   Default properties:
       FunctionTolerance: 1.0000e-06
    HessianApproximation: 'not applicable'
              HessianFcn: []
      HessianMultiplyFcn: []
             HonorBounds: 1
     SubproblemAlgorithm: 'factorization'

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

Objective:                            @(X)Mdl.nLogLikeGaussian(X,V,E,Lags,1,maxPQ,T,nan,trapValue)
Gradient:                             finite-differencing
Hessian:                              finite-differencing (or Quasi-Newton)

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

   End diagnostic information
    GARCH(1,1) Conditional Variance Model:
    Conditional Probability Distribution: Gaussian

                                  Standard          t     
     Parameter       Value          Error       Statistic 
    -----------   -----------   ------------   -----------
     Constant       0.431452      0.465646       0.926567
     GARCH{1}       0.314346      0.249922        1.25777
      ARCH{1}       0.571428      0.326773         1.7487


    • 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,


  • 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,


  • Positivity constraints on the GARCH and ARCH coefficients

  • Positivity on the sum of ARCH and leverage coefficients,


  • 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

See Also

| |

Related Topics

Was this topic helpful?