I have estimated GARCH and GJR-GARCH with several exogenous variables. Some of the exogenous variables have negative coefficients that are statistically significant. For instance, I can write my GJR-GARCH estimate as:

$h_t = 0.213 + 0.011 u_{t-1}^2 + 0.847 h_{t-1} + 0.196 u^2_{t-1}I_{t-1<0} - 0.026 X_{t-1} $

Where $u_{t-1}^2$ is the lagged ARCH term, $I_t$ is the dummy variable that models the asymmetric leverage effect and $X_{t-1}$ is the exogenous variable.

My main concern is that the coefficient of $X_{t-1}$ is negative. How can I verify that my volatility is not negative? Is just a plot of the conditional variance over the in-sample period is enough?

I have tried to estimate the GJR-GARCH-X model, however, I obtained some negative coefficients. I am not sure how to verify that these negative coefficients will cause the volatility to be negative.


1 Answer 1


Positivity of GARCH-X models:

When it comes to GARCH models with exogenous regressors, it is more "tricky" to ensure positivity of the model, due to the unspecified model-dynamics of your exogenous regressor (moreover exogenous regressors can have drastically different characteristics). Without any model-specification on the exogenous regressor $X_{t-1}$, it is common to restrict the parameter-space of the model in order to ensure positivity.

For simplicity, let us vaguely define the GJR-GARCH(1,1)-X model with demeaned returns, $r_t$: \begin{align*} r_t \vert \mathcal{F}_{t-1} &= \varepsilon_t\\ \varepsilon_t &= \sigma_t \cdot z_t\\ \sigma^2_t &= \omega + \alpha \varepsilon_{t-1}^2 + \beta \sigma_{t-1}^2 + \gamma I_{t-1} \varepsilon_{t-1}^2 + \nu X_{t-1}, \end{align*} where $z_t \overset{iid}{\sim} D(0,1)$ is a standardized distribution and

$$I_{t-1} =\begin{cases} 1 & \text{if } \varepsilon_{t-1} < 0 \\ 0 & \text{if } \varepsilon_{t-1} \geq 0 \end{cases}.$$

I have detailed some of my observations:

  • When working under the GJR-GARCH(1,1) positivity is satisfied when we impose $\omega, \beta,\alpha > 0$ and $\alpha + \gamma > 0$. The latter condition is a broader statement than imposing $\alpha, \gamma >0$, since we can allow one of the parameters to become negative (in this case, $\gamma$). I have made an in-depth answer detailing the GJR-GARCH(1,1) model, positivity, covariance stationarity and economical interpretations of the parameter estimates.

  • When working under the GJR-GARCH(1,1)-X we can further ensure positivity by additionally restricting the exogenous regressor such that $\omega + \nu X_{t-1} \geq 0$. Here, we allow $\nu$ to vary freely (since $\omega > 0$) as long as the above condition is satisfied. The primary motivation for the extra restriction, comes from observing the unconditional variance (calculated under assumed covariance stationarity) of the GJR-GARCH-X model:

\begin{equation} \mathbb{V}ar(r_t) = \frac{\omega + \nu \mathbb{E}\left[X_{t-1}\right]}{1 - \alpha - \beta - \kappa \gamma}. \end{equation} In order to ensure non-negative unconditional variance of the return process, we specifically need $\omega + \nu \mathbb{E}\left[X_{t-1}\right] \geq 0$, which is satisfied when imposing $\omega + \nu X_{t-1} \geq 0$ for all $t$.

In conclusion, imposing $\omega, \beta, \alpha > 0$, $\alpha + \gamma > 0$ and $\omega + \nu X_{t-1}>0$, ensures that you obtain non-negative volatility estimates.

When $X_{t-1}$ is strictly positive, it is common to let $\nu \geq 0$. This is also emphasized in the article of Han, H. (2015) that investigates asymptotic results of the GARCH-X model when $X_{t-1}$ follows a fractionally integrated process. In general, it is common in academia to assume a functional form on the exogenous regressor, (see for instance (C1 - C4) in this paper p.699). This is also done in the Realized GARCH model that incorporates intraday data to procure better forecasts (I have detailed this model here, if you're interested). I hope this helps.

  • $\begingroup$ This is very helpful response. However, I have couple of question to ask and will be grateful if you can answer for me: 1- My exogenous variable $X_{t}$ is a news sentiment variable that takes negative values with negative news and positive with positive news i.e. it is not strictly positive. My second question comes in a different comment due to the number of characters restrictions. $\endgroup$
    – Moataz
    Sep 9, 2022 at 18:40
  • $\begingroup$ 2- I am using rugarch package on R for my model, this is my code: ug_spec_x <- ugarchspec(mean.model = list(armaOrder=c(0,0)), variance.model = list(model="sGARCH", garchOrder = c(1,1), external.regressors = matrix(C\$all.news)) ,distribution.model = "std" ) setbounds(ug_spec_x) <- list(vxreg1=c(-1,1)) ugfit_x <- ugarchfit(spec = ug_spec_x, data = C\$GSPC.Adjusted, solver= "solnp") How can I impose the restriction you advised me in my code ? i.e. $\omega + \nu X_{t-1} \geq 0$ $\endgroup$
    – Moataz
    Sep 9, 2022 at 18:41
  • $\begingroup$ Thank you Pleb! I will wait to hear back from you $\endgroup$
    – Moataz
    Sep 10, 2022 at 0:08
  • $\begingroup$ @Moataz Most of the papers I have been skim-reading works with a positive exogenous covariate. In that regard, I would transform my exogenous regressor into a GJR-type equation, $\nu I_{\{{X_{t-1}<0}\}} \varepsilon_{t-1}^2$. This will intuitively, give you an understanding on how negative shocks in your sentimental news covariate, affects future volatility of returns. This is very similar to the original GJR-term. Therefore, be aware that bad news are already "incorporated" into past squared returns and in such case, the original GJR-term will likely catch most of the asymmetrical response. $\endgroup$
    – Pleb
    Sep 10, 2022 at 10:11
  • $\begingroup$ Hi Pleb, thank you for your comemnt and your suggestion. If I followed your suggestion, then my unconditional variance will be $ \frac{\omega}{1- \alpha - \beta - \frac{\gamma}{2} - \nu } $ ? $\endgroup$
    – Moataz
    Sep 10, 2022 at 12:30

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.