Modelos DCC GARCH(Correlación Dinámica Condicional)

Los modelos DCC_GARCH, son un tipo de modelos econométricos que se pueden usar para medir,modelar y predecir la volatilidad en las series de manera dinámica.

Sabemos que la volatilidad expresada estadísticamente por la varianza es un valor fijo,o un momento poblacional constante. Mediante estos modelos podemos generar una serie de tiempo que nos ayude a su estudio

Son una evolución de los modelos de CCC, y nos pueden permitir hacer predicciones tanto de la varianza como de la convarianza y correlación cuando tenemos varias series.

Al incluir la especificación GARCH lo que se busca es que existan puntos de equilibrio central de manera que se hace que la volatilidad tienda a un equilibrio.

Como su nombre indica es correlación porque calcularemos el coeficiente de correlación de Pearson de cada par de rentabilidades, condicional porque primero estimaremos un modelo Garch de cada rentabilidad y Dinámica porque el coeficiente de correlación será dinamico en el tiempo. Es decir, variará.

Aquí tienes un tutorial completo haciendo un ejemplo en R studio.Más abajo en el post dejo el código en R usado para que lo copies si lo deseas.

.

CODIGO VIDEO 


###Video DCC – GARCH


## CCC

# Sirven par modelar,medir y predecir la volatillidad de forma
# de manera dinámica y multivariada

#SOn una evolución de los CCC y al usar Garch encontramos
# un punto de equilibrio constante

#install.packages(«quantmod»)
library(quantmod)
#install.packages(«tseries»)
library(tseries)
#install.packages(«fImport»)
library(fImport)
#install.packages(«rugarch») #para ugarchspec
library(rugarch) #rugarch: a package for univariate GARCH fitting, simulation and forecast
#install.packages(«rmgarch»)
library(rmgarch) #dccspec
#install.packages(«ccgarch»)
library(ccgarch)

#install.packages(«fPortfolio»)
library(fPortfolio)
#install.packages(«gtools)
library(gtools)


getSymbols(«EURGBP=X»,src=»yahoo»,from = «2017-02-18»)
getSymbols(«EURUSD=X»,src=»yahoo»,from = «2017-02-18»)
getSymbols(«GBPCHF=X»,src=»yahoo»,from = «2017-02-18»)
getSymbols(«NZDCAD=X»,src=»yahoo»,from = «2017-02-18»)

EURGBP= `EURGBP=X`[,4]

EURUSD= `EURUSD=X`[,4]

GBPCHF= `GBPCHF=X`[,4]
NZDCAD= `NZDCAD=X`[,4]

FX1=cbind(EURUSD,EURGBP)

#Caluclamos los retornos y x 100 para calcularlos en %

FX1=returns(FX1)
FX1=100*FX1[,1:ncol(FX1)]
FX<-as.timeSeries(FX1)
FX<-na.omit(FX)
head(FX)

apply(FX,2,mean)
mu<-matrix(apply(FX,2,mean))
mu1<-t(mu) #media simple Esta media podría calcularse por el metodo de rendimiento simple
plot(FX)
head(FX)

##
#Asumimos una distribución t-student multivariada/ Ver Normal multivariada

dis_garch11<-ugarchspec(mean.model = list(armaOrder = c(0,0), include.mean=F),
variance.model = list(garchOrder = c(1,1),model = «sGARCH»))

#DCC-GARCH — VARIAS DISTRIBUIONES

DCC_garch11<-dccspec(uspec = multispec(replicate(2, dis_garch11)),
dccOrder = c(1,1),distribution = «mvt»)

###2 porque son 2 serie


# APLICAMOS MODELO A NUESTRA TABLA

DCC_garch11_mod<-dccfit(DCC_garch11, data = FX) # FX aquí le fijamos el modelo
DCC_garch11_mod

AICdcc<-infocriteria(DCC_garch11_mod)[1]
AICdcc

plot(DCC_garch11_mod)


#################

#sacar las matrices de correlacion y covarianzas

DCC_garch11_mod@mfit$R
DCC_garch11_mod@mfit$H

gf_cov<-(DCC_garch11_mod@mfit$H[1:1,2:2,])
gf_cov
plot(gf_cov,type=»l»)


### Predicciones

#Predicción con dcc. Está por defecto 1 pero se puede poner las que se desee

Prediccion<-(dccforecast(DCC_garch11_mod))
Prediccion

#n.ahead=100

Prediccion_50<-(dccforecast(DCC_garch11_mod,n.ahead=30))
Prediccion_50
plot(Prediccion_50)


pred_cov<-matrix(Prediccion@mforecast$H[[1]],nrow=2)#Matriz covarianzas pred
pred_cov

pred_cor<-matrix(Prediccion@mforecast$R[[1]],nrow=2)#Matriz correlaciones
pred_cor

#Prediccion@mforecast

#1 fijar los modelos univariados garch
# 2 establecer el modelo dcc y la distribución multivariada
# 3 fijar el modelo sobre nuesta tabla de rentabilidades

# estudiar la volatilidad
# predicciones

21 comentarios en “Modelos DCC GARCH(Correlación Dinámica Condicional)”

    1. Hola, tienes que instalar antes el paquete. Está comentado con un » #». Una vez instalados los podrás ejecutar todos. Yo los tengo comentados porque ya los tengo cargados anteriormente. SI no se te arreglar así deberás poner otra versión anterior de R.

  1. Victor en unos de tus videos desdecargas data de pares de divisas con timeframe de 15 minutos pero veo el codigo muy complicado para mi, tienes una manera mas entendible para hacerlo? Gracias

    1. Más entendible puedo hacerlo pero será difícil actualizar los datos rápido. Es decir, puedo explicar como descargar datos en 15 minutos, pero si lo que quieres es usarlo para operar es probable que no te sirvan porque no te dará tiempo a hacer descarga y usarlos. Ahora,si quieres datos en 15 minutos para estudiarlos sí tengo otras formas de hacerlo y descargar desde el bróker directamente.

  2. Excelente video, Victor!! Me estás ayudando mucho para mi tesis. Eso sí, te quería preguntar qué ventana de tiempo estarías tomando para calcular la correlación y covarianza (bajo la lógica del post «Correlación y Covarianza con Ventana de Tiempo»).

    Gracias y sigue así!

    1. Hola!! Gracias!! En ese post he usado todos los datos descargados. No establecí ventana de tiempo. Dejé pro defecto los parámetros del modelo DCC-Garch con todos los datos que descargué.

  3. Daniela Santillan

    Hola, es que tengo una duda, lo que pasa es que no puedo cargar la libreria ccgarch no aparece ni en el cran de r, solo aparece bayesDccGarch. Me podrias ayudar por favor

    1. Hola Daniela. Si la librería no te carga, puedes cambiar la versión de R y ver si con una versión anterior si te va. Esa librería que has puesto tu bayesDccGarch no la he usado yo, pero quizá sirva también. Habría que mirar la dcoumentación. Pon también en R, ?dccspec o ?dccfit, y miras que te aparece.

  4. Julio Moreno Ruiz

    Hola Victor, tiene muy buenos videos la verdad te felicito, si para la proxima puedes hacer un video de la estimacion de la volatilidad de Ewma o como se hace una prueba de backtesting de un portafolio de acciones, please.

  5. Buen día Victor, quiero saber si me podrías ayudar a entender lo que significa cada uno de los parámetros obtenidos, es decir, dcc alpha, dcc betha y todos los demás. Gracias

    1. Hola David! Si podría, aunque me llevaría un poco de tiempo. Tendría que hacer quizá un pequeño post o video para explicarlo tranquilamente. Igualmente si te parece bien te paso al correo un poco de bibliografía en español donde yo lo estudie para que la puedes ver

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Scroll al inicio