La representación ARMA(m,p) de GARCH(p,q) es :
\begin{align*} \left[1-\alpha(L)-\beta(L)\right]r_{t}^{2} = w + [1- \beta(L)] v_{i} \end{align*} donde \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}
Luego Engle & Bollerslev (1) desarrollaron el modelo IGARCH utilizando el nuevo polinomio $\Phi (L)$ definido como : \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} donde $\Phi(L) $ es un polinomio de orden $m-1$ y $\phi(0)=1$ .
El Igarch se define de la siguiente manera:
\begin{align*} \Phi(L) (1-L) r_{t}^{2} = w + \left[1-\beta(L) \right]v_{i} \end{align*}
El modelo figarch es simplemente:
\begin{align*} \Phi(L) (1-L)^{d} r_{t}^{2} = w + \left[1-\beta(L)\right] v_{i} \end{align*}
Así que creo que hay un error tipográfico en la documentación de rugarch: página 15: $\Phi(L)=\sum_{i=1}^{m-1}\Phi_{i}L^{i}$ debe ser $\Phi(L)=1-\sum_{i=1}^{m-1}\Phi_{i}L^{i}$.
Finalmente entendí que $ \Phi(L)= 1 - \alpha (L) $ (página 16) que se usa en la ecuación 60 de la documentación de rugarch. Hoy he jugado un poco con rugarch y noté que:
el coeficiente alpha
en la salida corresponde al coeficiente $\Phi_{i}$ de la fórmula.
rugarch no imprime los coeficientes $\alpha_{i}$ (a pesar de que están etiquetados como alpha
), la definición $ \Phi(L)= 1 - \alpha (L) $ tiene sentido si $\alpha (L)$ corresponde al polinomio $\alpha (L)=\sum_{i=1}^{m-1} \Phi_{i}L^{i} $ con $\alpha (0)=0$. El problema es que la documentación también utiliza el símbolo $\alpha (L)$ para definir el polinomio arch y esto es muy confuso...
Entonces, resumiendo, la implementación de FIGARCH en rugarch corresponde a FIGARCH(p,d,f) donde f es el orden de $\Phi(L)$ (f=m-1)
Así que el Figarch(1,d,1) (=p,d,f) corresponde a;
\begin{align*} (1-\Phi_{1} L) (1-L)^{d} \epsilon_{t}^{2} = w + [1-\beta_{1}L] \eta_{i} \end{align*}
También la documentación no indica si los coeficientes alpha
especificados como entrada a un FIGARCH corresponden a los coeficientes $\alpha_{i}$ o $\Phi_{i}$. Si estoy en lo correcto, corresponden a los coeficientes $\Phi_{i}$.
Nota: En el momento de escribir esto, el modelo FIGARCH es una característica reciente de rugarch (los registros de cambios muestran que se agregó el 30-10-2017, hace un año) por lo que puede explicar por qué la documentación no es clara. Además, el registro de cambios indica que está restringido a (1,d,1). El paquete rugarch tiene una muy buena reputación. Es un proyecto de código abierto y gratuito y agradezco al autor principal Alexios Ghalanos y a todos los colaboradores !
¿FIGARCH(p,d,q
) es confuso? ¡Usemos FIGARCH(p,d,f
)!
Los académicos suelen emplear FIGARCH(p,d,q) para describir en realidad FIGARCH(p,d,f) donde f se refiere al orden de $\Phi(L)$. En mi opinión, esto es muy perturbador porque estamos acostumbrados a asociar la letra q
con el orden del polinomio garch $\alpha(L)$. Desafortunadamente, creo que esto se debe a Baillie mismo, porque no lo dijo explícitamente en su documento (en su documento la letra q
corresponde al orden de $\Phi(L)$ y no al orden de $\alpha(L)$). Sé que es solo una letra, pero puede causar un gran malentendido...
Para ser claro, el FIGARCH(p,d,f) corresponde a :
- 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*}
Así que para el Figarch(1,d,1) si $d=0$ entonces tenemos un garch(1,1) estándar donde $ \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*}
He escrito un pequeño código con rugarch que muestra que Figarch(1,0,1) = Garch(1,1). Ver a continuación:
library(rugarch)
set.seed(99)
# especificar el modelo GARCH(1,1)
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))
# simular proceso GARCH(1,1)
garch11.sim = ugarchpath(garch11.spec, n.sim=40000)
# especificar 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 debe ser > 0 en rugarch
# Ajustar un FIGARCH(1,0,1) a un GARCH(1,1)
FGARCH.fit = ugarchfit(spec=specFigarch, data=garch11.sim@path$seriesSim, solver.control=list(trace = 1))
# estimar coeficientes FIGARCH(1,0,1)
coef(FGARCH.fit)
# "alpha_{1}" corresponde a phi_{1} = alpa_{1} + beta_{1}
# así que deberías obtener algo cercano a phi_{1} = 0.15 + 0.6 = 0.75 para "alpha1" .
# beta1 debería ser cercano a 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.
PD Elegí la letra f
para el orden de $\Phi(L)$ porque suena como el comienzo de "figarch" y "phi"... ^^