Actualmente estoy jugando con el gran paquete rugarch en R. Sin embargo, traté de probar la funcionalidad del regresor externo. He implementado un proceso GARCH(1,1) y lo he comparado con un proceso GARCH(0,1) al que he añadido los rendimientos cuadrados retardados como regresor externo. Los resultados deberían ser los mismos pero no lo son. ¿Alguien sabe dónde está mi error? Muchas gracias de antemano por vuestra ayuda.
library(rugarch)
library(quantmod)
getSymbols('C', from = '2000-01-01')
C = adjustOHLC(C, use.Adjusted = TRUE)
R_d = ROC(Cl(C), na.pad = FALSE)
extReg = R_d[1:length(R_d)-1]^2
spec = ugarchspec(mean.model = list(armaOrder = c(0, 0),include.mean = FALSE), variance.model = list(model = 'sGARCH', garchOrder = c(1, 1)), distribution = 'norm')
spec2 = ugarchspec(mean.model = list(armaOrder = c(0, 0),include.mean = FALSE), variance.model = list(model = 'sGARCH', garchOrder = c(0, 1),external.regressors=extReg), distribution = 'norm')
fit = ugarchfit(data = R_d[2:length(R_d),1], spec = spec)
fit2 = ugarchfit(data = R_d[2:length(R_d),1], spec = spec2)
Los coeficientes del modelo de ajuste son:
omega: 2.1038530309075e-06
alpha1: 0.0863073049030114
beta1: 0.912692551076183
Los coeficientes del modelo fit2 son:
omega: 8.17097079205033e-07
beta1: 0.999316873189476
vxreg1: 1.01005006640392e-08
0 votos
¡Excelente pregunta! He replicado tus resultados, estoy obteniendo la misma salida. Es curioso...
0 votos
Acabo de descubrir que al multiplicar los rendimientos(R_d) por 100 los coeficientes son casi idénticos. Para el ajuste del modelo : omega=2,112759, alpha1=0,086474, beta1=0,912525. Para el ajuste del modelo 2: omega=1,941635, beta1=0,912261, vxreg1=0,088643.