# Constraints on GARCH parameters

I have been working on a manual implementation of ARMA GARCH (1,1) with: $$\sigma_{t}^2 = \omega + \alpha\epsilon_{t-1}^2 + \beta\sigma_{t-1}^2$$

and estimating parameters through MLE. However, my constant term in GARCH, $$\omega$$, seems to grow without bound as the optimization proceeds. Is there any sort of constraint on the GARCH parameters other than they must all be non-negative and that $$\alpha + \beta < 1$$?

In order to ensure that the conditional variance is always non-negative you have the restrictions $$\omega>0$$, $$\alpha \geq 0$$ and $$\beta\geq 0$$. Also for a weakly stationary process you need have $$\alpha+\beta<1$$. There are other constrains in order to ensure that higher moments exist. For example, assuming normal distributed innovations, you need the parameter restriction $$3\alpha^2+2\alpha\beta+\beta^2<1$$ for a finite fourth moment. However, this should not effect your estimation process, since for many GARCH models higher moments do not exist, when these models are estimated using real financial data. I assume there may be an error in your code, but this is difficult to answer without without seeing the code.
• Thank you very much! At the moment I am feeding my ARMA residuals into GARCH and using that as data. I set $\sigma_0 = \text{Var}(\{\epsilon_i\})$ as an initial guess and march ahead using the GARCH equations, including the first four constraints you mentioned. Since $\epsilon_i = \sigma_i z_i$ I evaluate $\frac{\epsilon_i}{\sigma_i}$ at the PDF to obtain a probability. This is a rough outline for how I am carrying out my GARCH MLE. Is any of this incorrect? Currently I have gotten the code to run by setting an arbitrary constraint that $\omega \leq 1$. Commented Apr 27, 2021 at 20:47
• @CBBAM, you should rather set $\sigma_0^2$, not $\sigma_0$ to be the variance of $\epsilon$. But perhaps this was just a typo. Commented Apr 28, 2021 at 5:30
• @RichardHardy How big of an impact would that change make? At the moment I have it set as the variance of $\{\epsilon_i\}$. I would rerun my code but due to all the optimization it takes quite a bit of time (2-3 days to complete). Commented Apr 28, 2021 at 17:10
• @RichardHardy I changed $\sigma_0^2$ to zero and I'm still getting my constant term to increase without bound. Commented Apr 28, 2021 at 20:07