I am currently working on a project to compare different GARCH(1,1) models on a financial data set. I use the rugarch package in R, and everthing seemed fine at first. However, now that I have started to introduce the actual theory I have run into problems regarding the Fractionally Integrated GARCH (FIGARCH) introduced in R. Baillie et al..

A short recap:

The regular GARCH(1,1) is defined as

$$r_t = \sigma_t\epsilon_t, ~~~ \sigma_t^2 = \omega + \alpha r_{t-1}^2 + \beta\sigma_{t-1}^2.$$

Rewriting this model yields the ARMA representation:

$$r_t =\omega + (\alpha + \beta) r_{t-1}^2 + v_t - \beta v_{t-1}^2,$$

where $v_t = r_t^2 - \sigma_t^2$. Now R. Baillie et al. defines the IGARCH:

$$\phi(L)(1-L)r_t^2 = \omega + [1-\beta(L)]v_t,$$

where $L$ is the backshift operator and $\phi(L)$ defined by $\phi(L) \equiv [1-\alpha(L) - \beta(L)](1-L)^{-1}$ and is of order $m-1$, where $m$ is $\max\{p,q\}$.

They then says that replacing the $(1-L)$ with $(1-L)^d$ for $0<d<1$ yields the FIGARCH.

Now turning our attention to p. 15 in the dokumentation for the rugarch package we see that $\phi(L)$ is defined differently here, namely: $\phi(L) \equiv [1-\alpha(L)].$ Also, they include $0$ and $1$ in $d$ and specify that when $d=0$ is collapses to the regular GARCH and when $d=1$ to the IGARCH.

Now to my confusion/question:

In the FIGARCH(1,1) how should I define $\phi$ since it is of order zero according to R. Baillie et al.? Setting it equal to zero I doesn't do any good as well.

When I use the $\phi$ defined in the rugarch package for a FIGARCH(1,1) and setting $d$ to either 0 or 1, I cannot obtain the original GARCH either way. I simply need a $\beta$ term. Is there a mistake in the rugarch package in terms of the $\phi$? And does setting $d$ to either 0 or 1 actually make sense?

I have tried simply setting $\phi = (1-\alpha L - \beta L)$; however, this does not comply with setting $d=1$, as you then obtain a term containing the second order lagged value.

Has anyone encountered this problem before or are able to cast some light on the subject anyhow? Thank you.


The ARMA(m,p) representation of GARCH(p,q) is :

\begin{align*} \left[1-\alpha(L)-\beta(L)\right]r_{t}^{2} = w + [1- \beta(L)] v_{i} \end{align*} where \begin{align} &\alpha (L) =\sum_{i=1}^{q} \alpha_{i} L^{i} \qquad , \alpha (0)=0 \\ &\beta (L) =\sum_{i=1}^{p} \beta_{i} L^{i} \qquad , \beta (0)=0 \\ &m = \text{max}(p,q) \end{align}

Next Engle & Bollerslev (1) developed the IGARCH model using the new polynomial $\Phi (L)$ defined as : \begin{equation} \Phi (L) = 1- \sum_{i=1}^{m-1} \Phi_{i}L^{i} =\left[1-\alpha(L)-\beta(L)\right] (1-L)^{-1} \end{equation} where $\Phi(L) $ is a polynomial of order $m-1$ and $\phi(0)=1$ .

The Igarch is defined as follows :

\begin{align*} \Phi(L) (1-L) r_{t}^{2} = w + \left[1-\beta(L) \right]v_{i} \end{align*}

The figarch model is simply:

\begin{align*} \Phi(L) (1-L)^{d} r_{t}^{2} = w + \left[1-\beta(L)\right] v_{i} \end{align*}

So I think there is a typo in the rugarch documentation: page 15: $\Phi(L)=\sum_{i=1}^{m-1}\Phi_{i}L^{i}$ must be $\Phi(L)=1-\sum_{i=1}^{m-1}\Phi_{i}L^{i}$.

I finally understood the $ \Phi(L)= 1 - \alpha (L) $ (page 16) that is used in equation 60 of the rugarch documentation. I have played a bit with rugarch today and I noticed that:

the alpha coefficient in the output corresponds to the $\Phi_{i}$ coefficient of the formula.

rugarch doesn't print the $\alpha_{i}$ coefficients (despite they are labelled alpha), the definition $ \Phi(L)= 1 - \alpha (L) $ make sense if $\alpha (L)$ corresponds to the polynomial $\alpha (L)=\sum_{i=1}^{m-1} \Phi_{i}L^{i} $ with $\alpha (0)=0$. The problem is that the documentation also uses the symbol $\alpha (L)$ to define the arch polynomial and this is very confusing...

So to sum up the FIGARCH implementation in rugarch corresponds to FIGARCH(p,d,f) where f is the order of $\Phi(L)$ (f=m-1)

So the Figarch(1,d,1) (=p,d,f) corresponds to;

\begin{align*} (1-\Phi_{1} L) (1-L)^{d} \epsilon_{t}^{2} = w + [1-\beta_{1}L] \eta_{i} \end{align*}

Also the documentation does not indicate if the alpha coefficients specify as an input to a FIGARCH corresponds to the $\alpha_{i}$ or $\Phi_{i}$ coefficients. If I'm correct they correspond to the $\Phi_{i}$ coefficients.

Remark: At the time of writing, FIGARCH model is a recent feature of rugarch (the changelogs shows it has been added at 2017-10-30 - one year ago) so it may explain why the documentation is unclear. Also changelog indicates it is restricted to (1,d,1). the rugarch package has a very good reputation. It is a free, open source project and I thank the main author Alexios Ghalanos- and all the contributors !

FIGARCH(p,d,q) is confusing ? Let's use FIGARCH(p,d,f) !

Scholars usually employ FIGARCH(p,d,q) to describe in reality FIGARCH(p,d,f) where f refers to the order of $\Phi(L)$. In my opinion, this is very disturbing because we are used of associating the letter q with the order of the garch polynomial $\alpha(L)$. Unfortunately I think this is due to Baillie himself, because he didn't explicitly say it in his paper (in his paper the letter q corresponds to the order of $\Phi(L)$ and not to the order of $\alpha(L)$). I know it just a letter but it can cause a great misunderstanding...

To be clear, the FIGARCH(p,d,f) corresponds to :

  • Figarch(1,d,1)
    \begin{align*} \Phi(L) (1-L)^{d} \epsilon_{t}^{2} = w + [1-\beta_{1}L] \eta_{i} \\ \end{align*}
  • Figarch(1,d,0)
    \begin{align*} (1-L)^{d} \epsilon_{t}^{2} = w + [1-\beta_{1}L] \eta_{i} \end{align*}
  • Figarch(0,d,1)
    \begin{align*} \Phi(L) (1-L)^{d} \epsilon_{t}^{2} = w + \eta_{i} \end{align*}

So for the Figarch(1,d,1) if $d=0$ then we have a standard garch(1,1) where $ \phi_{1} = \alpha_{1}+ \beta_{1}$ : \begin{align*} \Phi(L) (1-L)^{d} \epsilon_{t}^{2} = w + [1-\beta_{1}L] \eta_{i} \\ (1-\Phi_{1} L) \epsilon_{t}^{2} = w + [1-\beta_{1}L] \eta_{i} \\ \end{align*}

I have written a small code with rugarch that show that Figarch(1,0,1) = Garch(1,1). See below:


# specify GARCH(1,1) model
garch11.spec = ugarchspec(variance.model = list(garchOrder=c(1,1)),
                          mean.model = list(armaOrder=c(0,0)),
                          fixed.pars=list(mu = 0, omega=0.1, alpha1=0.15,beta1 = 0.6))
# simulate GARCH(1,1) process
garch11.sim = ugarchpath(garch11.spec, n.sim=40000)

# specify FIGARCH(1,0,1) 
specFigarch = ugarchspec(mean.model=list(armaOrder=c(0,0)),
                  variance.model = list(model = "fiGARCH",submodel="GARCH", garchOrder = c(1,1)),
                  fixed.pars=list(delta = 0.00001)) # delta must be > 0 in rugarch

# Fit a FIGARCH(1,0,1) to a GARCH(1,1)
FGARCH.fit = ugarchfit(spec=specFigarch, data=garch11.sim@path$seriesSim, solver.control=list(trace = 1))

# estimate FIGARCH(1,0,1) coefficients


# "alpha_{1}"  corresponds to  phi_{1} = alpa_{1} + beta_{1}
# so you should get something close to  phi_{1} = 0.15  + 0.6 = 0.75 for "alpha1" .
# beta1 should be close to 0.6

(1) Engle, R. F., & Bollerslev, T. (1986). Modelling the persistence of Conditional Variances. Econometric Reviews, 5(1), 1–50.

(2) Baillie, R. T., Bolleslev, T., & Ole Mikkelsen, H. (1996). Fractionally integrated generalized autoregressive conditional heteroskedasticity. Journal of Econometrics, 6, 3–30.

PS I choosed the letter f for the order of $\Phi(L)$ because it sounds like the beginning of "figarch" and "phi"... ^^

  • $\begingroup$ Thanks for the answer, I appreciate your help; however, I fail to see how the beta lag operator is defined as you say it is. The original authors states it as $\sum_{i=1}^q \beta_i L^i$. How do you justify your definition? Wouldn't you obtain two $r_t^2$ terms when you move it to the other side of the equal sign? And the second thing: I still fail to see how the order of $m-1$ comes into play, or specifically how you divide by $(1-L)$ in the case of an order of (1,1) and setting $d=0$? Can you clarify? Thank you. $\endgroup$ – Morten Andersen Nov 27 '18 at 7:36
  • $\begingroup$ Also your sum for the $\phi$ terms are negative and the author of the rugarch package states it without the 1 and positive. Will you also elaborate this choice? $\endgroup$ – Morten Andersen Nov 27 '18 at 7:47
  • $\begingroup$ I have edited my post, I hope I answered your questions. $\endgroup$ – Malick Nov 30 '18 at 0:46
  • $\begingroup$ This makes much more sense now. Thank you. I don't have much time to go over it at the moment, so if you don't mind, I'll inspect it further during the weekend and accept your answer then if I don't find any questions/problems. $\endgroup$ – Morten Andersen Nov 30 '18 at 9:05
  • $\begingroup$ Don't you need a Lag operator on $\beta_1$ in your definition of the FIGARCH$(1,d,1)$, that is: $(1-\Phi_1 L)(1-L)^d \epsilon_t^2 = w + [1-\beta_1 L]\eta_t$ or am I mistaken again? I cannot seem to get the calculations right without adding the lag operator to $\beta_1$. $\endgroup$ – Morten Andersen Dec 12 '18 at 11:40

Your Answer

By clicking "Post Your Answer", you agree to our terms of service, privacy policy and cookie policy

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