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"... ^^