I can see the R package rugarch allows the estimation of GARCH models with exogenous variables in the specification of the variance model:

\begin{aligned} \epsilon_t &= \sqrt{h_t}\eta_t, \\ h_t &= \alpha_0 + \alpha_1 \epsilon_{t-1}^2 + \alpha_2 h_{t-1} + \alpha_3x_{t-1}, \\ \eta_t &\sim N(0,1) \ \textrm{iid}\ \forall \ t. \\ \end{aligned}

I'm wondering what is the log-likelihood function associated with this model. Is it simply the same as with a normal GARCH:

$$\ln f\left(\epsilon_{t}|h_{t}^{2}\right)=-\frac{1}{2}\left(\ln2\pi+\ln h_{t}^{2}+\frac{\left(\epsilon_t\right)^{2}}{h_{t}^{2}}\right),$$


  • 1
    $\begingroup$ In the model specification, $\eta_t$ are also i.i.d. It is an important building block in the construction of the likelihood. $\endgroup$ Commented Feb 2, 2023 at 8:51

1 Answer 1


We know that $$\eta_{t}\sim N(0,1)$$

So it follows that $$\epsilon_t=\sqrt{h_{t}}\eta_{t}\quad\Longleftrightarrow\quad\epsilon_t\,|\,\epsilon_{t-1}\sim N(0,h_{t})$$

Let $\theta=(\alpha_{0},\alpha_{1},\ldots)$ be your parameter set. We can construct the joint distribution for $\epsilon$ as $$\begin{align} L(\theta)=f(\epsilon_{T},\ldots,\epsilon_{0}\,|\,\theta)&=f(\epsilon_{0};\theta)\cdot \prod_{t=1}^{T}f(\epsilon_{t}\,|\,\epsilon_{t-1};\theta)\\ &=f(\epsilon_{0};\theta)\cdot \prod_{t=1}^{T}\frac{1}{\sqrt{2\pi\cdot h_{t}(\theta)}}\exp\bigg(-\frac{\epsilon_{t}^2}{2\cdot h_{t}(\theta)}\bigg)\\ \end{align}$$

$$\begin{align} \Rightarrow\mathcal{L}(\theta)&=\log L(\theta)\\ &=\log f(\epsilon_{0};\theta)-\frac{T}{2}\log(2\pi)-\frac{1}{2}\sum_{t=1}^{T}\bigg[\log h_{t}(\theta)+\frac{\epsilon_{t}^{2}}{h_{t}(\theta)}\bigg] \end{align}$$

  • $\begingroup$ Should there be $\Pi_{t=1}^T$ instead of $\sum_{t=1}^T$ in $L(\theta)$? It might also make sense to use $h_t(\theta)$ in place of $h_t$ as otherwise it may look that $\theta$ only enters in the first element of $\mathcal{L}(\theta)$. $\endgroup$ Commented Feb 2, 2023 at 7:29
  • $\begingroup$ And then if I actually wanted to maximize $\mathcal{L}(\theta)$, should I have to express $h_t$ recursively so that $\mathcal{L}(\theta)$ becomes a function of $\epsilon$s and $\theta$ but not $h$s? (I am thinking about a practical implementation.) $\endgroup$ Commented Feb 2, 2023 at 7:30
  • $\begingroup$ Hey, thanks. What is $\log f(\epsilon_0,\theta)$ in the example above? Thanks $\endgroup$
    – user603
    Commented Feb 2, 2023 at 8:24
  • $\begingroup$ Any thoughts about my second comment? $\endgroup$ Commented Feb 6, 2023 at 13:27
  • $\begingroup$ @RichardHardy I haven't given it much thought or tried to implement it myself, but that seems reasonable to me? $\endgroup$ Commented Feb 7, 2023 at 6:19

Your Answer

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

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