Why does my data run into "Estimated GARCH model is invalid" error?

2 views (last 30 days)
I run into a warning and an error in a particular iteration of garch analysis inside a for-loop using GARCH(1,1) model to estimate and forecast volatility on financial returns.
Warning Message:
ERROR: Warning: Lower bound constraints are active; standard errors may be inaccurate. \n> In garch.estimate at 699\n In reproCode at 24
Error Message:
ERROR: Error using reproCode (line 24)\nEstimated GARCH model is invalid.\n\nCaused by:\n Error using garch/validateModel (line 767)\n Non-zero degree P requires a non-zero degree Q.

Accepted Answer

MathWorks Support Team
MathWorks Support Team on 11 Oct 2021
Edited: MathWorks Support Team on 17 Nov 2021
This error is caused by limitations on the numerical maximum likelihood. The warning message suggests that the segments of the data to which the GARCH model is fit are getting stuck at suboptimal, local maxima, which drives the ARCH coefficient (and in turn the model parameter Q) to zero. Because Q becomes zero, there is no way for the observed data to affect its own volatility (which is the point of GARCH models), and MATLAB returns an error.
There are three things to check if you are running to similar issues:
1. Make sure that the data itself is well-suited for GARCH analysis.
2. Try switching to a different solver. The FMINCON function uses one of four algorithms to do its job ('sqp', 'interior-point', 'active-set', 'trust-region-reflective'). You can set the solver algorithm by the following syntax:
model = garch(1,1);
ret = your_data;
opts = optimset('fmincon');
opts.Algorithm = 'interior-point';
% use this variable when calling the ESTIMATE function
fit = estimate(model, ret, 'options',opts);
For more information on the FMINCON function and its different options for the 'Algorithm' option, please refer to the following documentation:
https://www.mathworks.com/help/optim/ug/fmincon.html
3. Try manually setting the starting parameters (such as Constant0, GARCH0, and ARCH0) in the ESTIMATE command, using the values of "Constant", "GARCH", and "ARCH" obtained from the previous iteration. You can set the starting parameters by using the following syntax:
constant = obtained_from_previous_iteration;
g0 = obtained_from_previous_iteration;
a0 = obtained_from_previous_iteration;
fit = estimate(model, ret, 'options',opts,'Constant0',constant,'GARCH0',g0,'ARCH0',a0);
For more information about setting the starting parameters of the GARCH model estimation, please refer to the following documentation:
https://www.mathworks.com/help/econ/garch.estimate.html
If the above suggestions do not resolve this issue, please contact the Technical Support Team.

More Answers (0)

Categories

Find more on Conditional Variance Models in Help Center and File Exchange

Products


Release

R2012b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!