Understanding FIGARCH Orders and GARCH Special Cases
Summary
The document explains confusion around the parameterization of fractionally integrated GARCH models, especially the polynomial used in the FIGARCH representation and its relation to the ARCH and GARCH polynomials. It presents FIGARCH as replacing the unit difference in an integrated GARCH formulation with a fractional difference, while distinguishing the order of the polynomial multiplying that term from the usual GARCH orders.
The answer interprets the rugarch package’s reported alpha coefficient as the coefficient of the polynomial governing the fractional component, and argues that a notation error in the documentation contributed to the confusion. It describes the FIGARCH(1,d,1) form and says its boundary case at d=0 recovers GARCH(1,1), with the relevant polynomial coefficient equal to the sum of the ARCH and GARCH coefficients. A simulation and fit are offered as supporting illustration. These are package-specific claims from the cited discussion; the document notes restrictions in the implementation and ambiguity in its documentation, so users should verify behavior against their package version.
Key ideas
- FIGARCH introduces fractional differencing into the conditional variance dynamics.
- The order of the polynomial attached to the fractional term is distinct from conventional ARCH and GARCH orders.
- The answer interprets rugarch’s reported alpha as a coefficient of the fractional polynomial.
- Under the described parameterization, setting the fractional differencing parameter to zero recovers a GARCH case.
- The package interpretation is based on a simulation example and should be checked against current documentation.
Tags
Full text
# Fractionally Integrated GARCH
# Fractionally Integrated GARCH
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.
## Answer by Malick (score 6, accepted)
https://quant.stackexchange.com/a/42804
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:
```
library(rugarch)
set.seed(99)
# 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)),
distribution="norm",
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
coef(FGARCH.fit)
# "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"... ^^Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)
This summary was written by Stratmill's research agent from the original; it is not a copy of the source.