En este documento, realizaremos un análisis de la volatilidad de los retornos de los activos del S&P 500 y Tesla utilizando un modelo TGARCH (Threshold GARCH). Este modelo permite capturar la asimetría en la volatilidad de los retornos, lo cual es especialmente relevante para activos financieros.
Primero, instalaremos y cargaremos los paquetes necesarios. Si ya tienes los paquetes instalados, no es necesario ejecutar las líneas de instalación.
# Instalar los paquetes si aún no están instalados
if (!require(quantmod)) install.packages("quantmod")
## Cargando paquete requerido: quantmod
## Warning: package 'quantmod' was built under R version 4.4.1
## Cargando paquete requerido: xts
## Warning: package 'xts' was built under R version 4.4.1
## Cargando paquete requerido: zoo
##
## Adjuntando el paquete: 'zoo'
## The following objects are masked from 'package:base':
##
## as.Date, as.Date.numeric
## Cargando paquete requerido: TTR
## Registered S3 method overwritten by 'quantmod':
## method from
## as.zoo.data.frame zoo
if (!require(rugarch)) install.packages("rugarch")
## Cargando paquete requerido: rugarch
## Warning: package 'rugarch' was built under R version 4.4.1
## Cargando paquete requerido: parallel
##
## Adjuntando el paquete: 'rugarch'
## The following object is masked from 'package:stats':
##
## sigma
install.packages("quantmod")
## Warning: package 'quantmod' is in use and will not be installed
install.packages("rugarch")
## Warning: package 'rugarch' is in use and will not be installed
library(quantmod)
library(rugarch)
Descargar datos históricos de precios para S&P 500 y Tesla
getSymbols(c("^GSPC", "TSLA"), src = "yahoo", from = "2020-01-01", to = Sys.Date())
## [1] "GSPC" "TSLA"
sp500 <- Cl(GSPC)
tesla <- Cl(TSLA)
Los modelos de volatilidad se aplican generalmente a los retornos en lugar de a los precios. Calculamos los retornos logarítmicos diarios. Calcular los retornos logarítmicos diarios
returns_sp500 <- dailyReturn(sp500, type = "log")
returns_tesla <- dailyReturn(tesla, type = "log")
El modelo TGARCH es útil en finanzas porque captura el fenómeno conocido como “efecto apalancamiento” o “asimetría de la volatilidad”, donde los retornos negativos aumentan la volatilidad futura más que los retornos positivos. Esto es común en los mercados financieros, donde las caídas de precios suelen generar mayor incertidumbre y riesgo que los aumentos.
spec_tgarch <- ugarchspec(
variance.model = list(model = "fGARCH", submodel = "TGARCH", garchOrder = c(1, 1)),
mean.model = list(armaOrder = c(0, 0)),
distribution.model = "norm" # Puede cambiarse a "std" para una distribución t-student
)
fit_tgarch_sp500 <- ugarchfit(spec = spec_tgarch, data = returns_sp500)
fit_tgarch_tesla <- ugarchfit(spec = spec_tgarch, data = returns_tesla)
summary(fit_tgarch_sp500)
## Length Class Mode
## 1 uGARCHfit S4
summary(fit_tgarch_tesla)
## Length Class Mode
## 1 uGARCHfit S4
plot(sigma(fit_tgarch_sp500), main = "Volatilidad Condicional TGARCH - S&P 500", ylab = "Volatilidad", col = "blue")
plot(sigma(fit_tgarch_tesla), main = "Volatilidad Condicional TGARCH - Tesla", ylab = "Volatilidad", col = "red")
par(mfrow = c(2,1))
plot(sigma(fit_tgarch_sp500), main = "Volatilidad Condicional TGARCH - S&P 500", ylab = "Volatilidad", col = "orange")
plot(sigma(fit_tgarch_tesla), main = "Volatilidad Condicional TGARCH - Tesla", ylab = "Volatilidad", col = "green")
forecast_sp500 <- ugarchforecast(fit_tgarch_sp500, n.ahead = 5)
forecast_sp500
##
## *------------------------------------*
## * GARCH Model Forecast *
## *------------------------------------*
## Model: fGARCH
## fGARCH Sub-Model: TGARCH
##
## Horizon: 5
## Roll Steps: 0
## Out of Sample: 0
##
## 0-roll forecast [T0=2024-10-25]:
## Series Sigma
## T+1 0.0003605 0.007171
## T+2 0.0003605 0.007415
## T+3 0.0003605 0.007647
## T+4 0.0003605 0.007868
## T+5 0.0003605 0.008077
El resultado mostrado corresponde a una predicción realizada con un modelo TGARCH para los próximos 5 días. Vamos a interpretar cada parte del pronóstico.
Detalles del modelo Model: fGARCH: Indica que el modelo utilizado es un modelo GARCH generalizado. Sub-Model: TGARCH: El submodelo específico es un TGARCH, lo que significa que está capturando la asimetría en la volatilidad; es decir, los impactos diferentes de los shocks positivos y negativos sobre la volatilidad. Horizonte de la predicción Horizon: 5: El horizonte de predicción es de 5 días, lo que significa que se están haciendo pronósticos para los próximos 5 días. Roll Steps: 0 y Out of Sample: 0: Indican que no se han utilizado pasos de ajuste continuo ni datos fuera de la muestra para esta predicción. Predicción de la volatilidad La tabla muestra los pronósticos para los próximos 5 días, donde:
T+1, T+2, …, T+5 representan los días futuros para los cuales se está haciendo la predicción. Series: Indica el valor esperado del proceso (en este caso, la varianza condicional). Aquí, se muestra constante en 0.0003605, lo que sugiere que el nivel de varianza condicional no cambia significativamente durante el período de predicción. Sigma: Representa la desviación estándar (raíz cuadrada de la varianza condicional) predicha para cada día. Esto es una medida de la volatilidad esperada. Interpretación de los valores de Sigma T+1 (0.007171): Para el primer día de pronóstico, la volatilidad esperada (desviación estándar) es de 0.007171. T+2 (0.007415): La volatilidad esperada aumenta ligeramente, lo que indica una expectativa de mayor incertidumbre en el segundo día. T+3 (0.007647): La volatilidad continúa aumentando, lo que puede sugerir una tendencia creciente en la volatilidad a lo largo del período de predicción. T+4 (0.007868) y T+5 (0.008077): La volatilidad sigue aumentando en los días siguientes, lo que implica que el modelo espera una mayor fluctuación en los precios en esos días.
Conclusión El pronóstico del modelo TGARCH muestra una volatilidad creciente en los próximos 5 días, lo que sugiere que el mercado podría experimentar un aumento en la incertidumbre o fluctuaciones en los precios. Esta tendencia ascendente en la volatilidad podría ser indicativa de mayores riesgos en el futuro cercano.
forecast_tesla <- ugarchforecast(fit_tgarch_tesla, n.ahead = 5)
forecast_tesla
##
## *------------------------------------*
## * GARCH Model Forecast *
## *------------------------------------*
## Model: fGARCH
## fGARCH Sub-Model: TGARCH
##
## Horizon: 5
## Roll Steps: 0
## Out of Sample: 0
##
## 0-roll forecast [T0=2024-10-25]:
## Series Sigma
## T+1 0.002504 0.04488
## T+2 0.002504 0.04496
## T+3 0.002504 0.04504
## T+4 0.002504 0.04512
## T+5 0.002504 0.04519
El resultado mostrado corresponde a una predicción realizada con un modelo TGARCH para la acción de Tesla, abarcando los próximos 5 días. Vamos a interpretar los detalles.
Información del modelo Model: fGARCH: Indica que el modelo utilizado es un GARCH generalizado. Sub-Model: TGARCH: Específicamente, el submodelo es TGARCH, que captura la asimetría en la volatilidad, permitiendo que los retornos negativos y positivos tengan impactos diferentes en la volatilidad. Horizonte de la predicción Horizon: 5: La predicción se realiza para un horizonte de 5 días, lo que significa que se está anticipando la volatilidad para los próximos cinco días. Roll Steps: 0 y Out of Sample: 0: Indican que no se ha realizado un ajuste continuo ni se han utilizado datos fuera de la muestra. Predicción de la volatilidad La tabla proporciona los pronósticos para los próximos 5 días:
T+1, T+2, …, T+5: Representan los días futuros (día 1 a día 5) para los cuales se realizan los pronósticos. Series (0.002504): Es el valor predicho para la varianza condicional en todos los días pronosticados. Es constante en 0.002504, lo que sugiere que el modelo espera una varianza condicional estable en este horizonte de tiempo. Sigma: Es la desviación estándar predicha (raíz cuadrada de la varianza condicional), que representa la volatilidad esperada para cada día. Interpretación de los valores de Sigma T+1 (0.04488): Para el primer día del pronóstico, la volatilidad esperada es de 0.04488, lo que indica el nivel anticipado de fluctuación de los retornos. T+2 (0.04496) y T+3 (0.04504): La volatilidad muestra un ligero aumento, lo que sugiere un incremento marginal en la incertidumbre. T+4 (0.04512) y T+5 (0.04519): La volatilidad sigue subiendo levemente en los últimos dos días del horizonte, lo cual puede indicar una expectativa de mayor riesgo o fluctuación hacia el final del período de predicción.
Conclusión La predicción del modelo TGARCH para Tesla muestra una volatilidad que se incrementa ligeramente durante los próximos 5 días. Aunque el aumento es pequeño, la tendencia ascendente sugiere que el modelo anticipa un leve incremento en la incertidumbre o en las fluctuaciones de los precios de las acciones de Tesla en este período. Esto podría ser indicativo de un entorno de mercado con un riesgo algo creciente.
El modelo TGARCH proporciona una herramienta útil para modelar la volatilidad en los mercados financieros, capturando la asimetría en la respuesta de la volatilidad a los choques de los retornos. En este análisis, se ha aplicado a los retornos de S&P 500 y Tesla, mostrando cómo varía la volatilidad en el tiempo y cómo puede predecirse la volatilidad futura.