Resumen

La presente investigación analiza la persistencia de la volatilidad en los rendimientos logarítmicos diarios del Índice General de la Bolsa de Valores de Lima (IGBVL) durante el periodo 2018–2025. El objetivo principal es cuantificar la memoria de los shocks de incertidumbre en un contexto marcado por la crisis del COVID-19 y la inestabilidad política interna. Metodológicamente, se empleó un modelo de varianza condicional AR(1)–GARCH(1,1) con distribución t-Student, cuya idoneidad fue validada mediante tests de Jarque-Bera, Breusch-Godfrey y RESET de Ramsey, los cuales confirmaron la presencia de colas pesadas y la insuficiencia de los modelos lineales clásicos.Los resultados empíricos revelan una alta persistencia en la volatilidad, con una suma de coeficientes \(\alpha + \beta = 0.9754\), indicando que los impactos disruptivos en el mercado peruano tienen efectos prolongados y no se disipan de manera inmediata. Asimismo, se calculó una vida media del shock (half-life) de 27.8 días, evidenciando que la incertidumbre requiere más de cinco semanas bursátiles para reducirse a la mitad de su magnitud inicial. Se concluye que el IGBVL presenta un marcado agrupamiento de volatilidad (volatility clustering), lo que sugiere a reguladores e inversionistas la necesidad de adoptar modelos de varianza dinámica para la gestión eficiente del riesgo y la estimación precisa del Valor en Riesgo (VaR) en la plaza bursátil local.

Palabras clave: volatilidad persistente, GARCH(1,1), IGBVL, rendimientos bursátiles, clustering de volatilidad, riesgo financiero.

Clasificación JEL: C22, C58, G12.

This research analyzes the persistence of volatility in the daily logarithmic returns of the Lima Stock Exchange General Index (IGBVL) during the 2018–2025 period. The main objective is to quantify the memory of uncertainty shocks within a context marked by the COVID-19 crisis and domestic political instability. Methodologically, an AR(1)–GARCH(1,1) conditional variance model with a t-Student distribution was employed. Its suitability was validated through Jarque-Bera, Breusch-Godfrey, and Ramsey RESET tests, which confirmed the presence of fat tails and the insufficiency of classical linear models.Empirical results reveal a high persistence of volatility, with a sum of coefficients \(\alpha + \beta = 0.9754\), indicating that disruptive impacts on the Peruvian market have prolonged effects and do not dissipate immediately. Furthermore, a volatility half-life of 27.8 days was calculated, evidencing that uncertainty requires more than five trading weeks to reduce to half of its initial magnitude. The study concludes that the IGBVL exhibits significant volatility clustering, suggesting that regulators and investors should adopt dynamic variance models for efficient risk management and accurate Value at Risk (VaR) estimation in the local stock market.

Keywords: persistent volatility, GARCH(1,1), IGBVL, stock returns, volatility clustering, financial risk.

JEL Classification: C22, C58, G12.

Introducción

En el entorno financiero actual, “las economías y mercados internacionales guardan una estrecha relación, generando posibles contagios o efectos relacionados por eventos que fluyen con mayor rapidez”. Esta dinámica de interconectividad implica que la volatilidad de mercados de gran envergadura tiene un impacto directo en plazas bursátiles más pequeñas, como la peruana. Al respecto, investigaciones de Erik Muñoz y Francisco Gálvez-Gamboa en su estudio “Conectividad de los mercados financieros” identifican a “Brasil, EE.UU. y México” como los principales “transmisores de spillover de volatilidad y retorno” hacia la región. En el caso específico del Perú, el desempeño del Índice General de la Bolsa de Valores de Lima (IGBVL) se encuentra condicionado por esta transmisión de shocks externos, evidenciando una interdependencia donde las perturbaciones en los mercados globales repercuten significativamente en la plaza local.

La relevancia de estudiar esta relación económica radica en que la volatilidad es una “característica fundamental de los mercados financieros globales, cuya medida y previsión es de vital importancia para los que en ellos operan”. Como señala Pedro Pablo Chambi Condori, esta variable es una “medida de la velocidad del mercado, qué tan rápido se ajustan los precios de los activos financieros ante determinados hechos”. Asimismo, el análisis mediante modelos avanzados resulta crucial para la gestión de riesgos; en este sentido, Rafael Nivina sostiene en su obra “Medidas alternativas de volatilidad” que “los modelos GARCH y SV son superiores al modelo EWMA en términos del cálculo del Valor en Riesgo”. Comprender la dinámica temporal de la volatilidad permite a los inversionistas calificar sus decisiones para la conformación de carteras en activos riesgosos.

No obstante, la problemática reside en que la volatilidad de los retornos financieros no es constante, sino que “existen clusters de volatilidad”. Este fenómeno implica que los shocks de incertidumbre no son transitorios, sino que presentan una “elevada persistencia” cuando la suma de los coeficientes del modelo se aproxima a la unidad. Si bien existen estudios para periodos históricos, el intervalo 2018–2025 presenta un vacío de conocimiento crítico debido a eventos extremos como la “caída simultánea e incertidumbre en todos los mercados internacionales en 2020 a raíz de la crisis sanitaria internacional a causa de la pandemia por COVID-19”. Esta investigación pretende llenar dicho vacío analizando si un shock de volatilidad en este periodo sigue ocurriendo “mayoritariamente al largo plazo (más de 20 días)”, tal como sugieren los hallazgos de Muñoz y Gálvez-Gamboa para mercados latinoamericanos.

Objetivo General:

Estimar la persistencia de la volatilidad de la varianza condicional del rendimiento logarítmico diario del IGBVL mediante un modelo GARCH(1,1) para el periodo 2018–2025, a fin de contribuir al análisis del riesgo de mercado en el Perú.

Objetivos Específicos:

  1. Verificar la estacionariedad de las series mediante los tests de Dickey-Fuller Aumentado (ADF) y Phillips-Perron (PP).

  2. Estimar los parámetros del modelo GARCH(1,1) y evaluar su significancia estadística individual y conjunta.

  3. Analizar el nivel de persistencia de la volatilidad mediante la suma de los coeficientes ARCH (α) y GARCH (β).

  4. Realizar el diagnóstico del modelo, incluyendo pruebas de normalidad (Jarque-Bera), homocedasticidad y no autocorrelación de los residuos estandarizados.

Hipótesis del estudio son:

Hipótesis de Investigación (H₁):

La volatilidad del rendimiento logarítmico diario del IGBVL presenta persistencia en el tiempo durante el periodo 2018–2025, evidenciada por la significancia estadística de los parámetros ARCH (α) y GARCH (β) y por una suma \((\alpha + \beta)\) cercana a la unidad.

Hipótesis Nula (H₀):

La volatilidad del rendimiento logarítmico diario del IGBVL no presenta persistencia en el tiempo durante el periodo analizado, es decir, la suma de los coeficientes \((\alpha + \beta)\) no es estadísticamente significativa ni cercana a la unidad.

Marco Teórico Econométrico

Especificación matemática del modelo

Con el objetivo de modelar la persistencia de la volatilidad en los rendimientos logarítmicos diarios del Índice General de la Bolsa de Valores de Lima (IGBVL) durante el periodo 2018–2025, se emplea el modelo GARCH(1,1), el cual permite capturar la heterocedasticidad condicional presente en series financieras.

El modelo consta de dos ecuaciones fundamentales:

Ecuación de media:

\[ r_t = \mu + \varepsilon_t \]

Ecuación de varianza condicional:

\[ \sigma_t^2 = \omega + \alpha \varepsilon_{t-1}^2 + \beta \sigma_{t-1}^2 \]

Donde:

  • \(r_t\) representa el rendimiento logarítmico del IGBVL en el periodo \(t\).
  • \(\mu\) es la media condicional del proceso.
  • \(\varepsilon_t\) es el término de error o innovación.
  • \(\sigma_t^2\) es la varianza condicional en el periodo \(t\).

Se asume que:

\[ \varepsilon_t \mid \Omega_{t-1} \sim N(0, \sigma_t^2) \]

donde \(\Omega_{t-1}\) representa la información disponible hasta el periodo \(t-1\).


Supuestos del modelo

El modelo GARCH(1,1) requiere el cumplimiento de los siguientes supuestos:

1. Media condicional cero de los errores

\[ E(\varepsilon_t \mid \Omega_{t-1}) = 0 \]

Garantiza que los shocks del proceso son impredecibles dada la información pasada, permitiendo modelar adecuadamente la dinámica de la volatilidad condicional.

2. Varianza condicional dependiente de información pasada

\[ Var(\varepsilon_t \mid \Omega_{t-1}) = \sigma_t^2 \]

Permite capturar la heterocedasticidad condicional presente en los rendimientos financieros.

3. Restricciones de no negatividad

\[ \omega > 0, \quad \alpha \geq 0, \quad \beta \geq 0 \]

Aseguran que la varianza condicional sea siempre positiva.

4. Condición de estacionariedad

\[ \alpha + \beta < 1 \]

Garantiza que la varianza incondicional del proceso sea finita.


Fundamento teórico económico

Los rendimientos de activos financieros presentan el fenómeno conocido como agrupamiento de volatilidad, donde periodos de alta volatilidad tienden a agruparse, seguidos de periodos de baja volatilidad. Este comportamiento implica que la varianza de los rendimientos no es constante en el tiempo, sino que depende de shocks pasados.

El modelo GARCH(1,1) permite capturar esta dependencia temporal en la volatilidad, siendo ampliamente utilizado para el análisis de riesgo financiero y medición de la persistencia de shocks en los mercados bursátiles.


Método de estimación

Los parámetros del modelo GARCH(1,1) son estimados mediante el método de máxima verosimilitud (MLE). Bajo condiciones de regularidad, los estimadores obtenidos presentan las siguientes propiedades asintóticas:

  • Consistencia
  • Normalidad asintótica
  • Eficiencia asintótica

Estas propiedades permiten realizar inferencia estadística válida sobre los parámetros estimados del modelo.


Definición de parámetros

library(kableExtra)
## Warning: package 'kableExtra' was built under R version 4.5.2
library(dplyr)
## Warning: package 'dplyr' was built under R version 4.5.2
## 
## Adjuntando el paquete: 'dplyr'
## The following object is masked from 'package:kableExtra':
## 
##     group_rows
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
# 1. Crear el dataframe con la información técnica
tabla_parametros <- data.frame(
  Parametro = c("$$\\mu$$", "$$\\omega$$", "$$\\alpha$$", "$$\\beta$$", "$$\\alpha + \\beta$$"),
  Definicion = c("Media condicional de los rendimientos", 
                  "Término constante de la varianza", 
                  "Efecto ARCH", 
                  "Efecto GARCH", 
                  "Persistencia total"),
  Interpretacion = c("Representa el rendimiento promedio esperado de la serie.", 
                      "Nivel base de volatilidad o varianza incondicional de largo plazo.", 
                      "Mide la reacción de la volatilidad ante shocks o noticias recientes.", 
                      "Mide la memoria de la volatilidad; impacto de la varianza pasada.", 
                      "Indica la velocidad con la que los shocks de incertidumbre se disipan.")
)

# 2. Generar la tabla con estilo profesional
tabla_parametros %>%
  kable(
    format = "html",
    escape = FALSE,
    align = "cll",
    col.names = c("Parámetro", "Definición", "Interpretación Económica"),
    caption = "<b style='color:#2c3e50; font-size:1.2em;'>Tabla 1: Definición y Significado de los Parámetros del Modelo GARCH(1,1)</b>"
  ) %>%
  kable_styling(
    bootstrap_options = c("striped", "hover", "condensed"),
    full_width = F,
    position = "center",
    font_size = 14
  ) %>%
  # Encabezado con color azul marino profesional
  row_spec(0, bold = TRUE, color = "white", background = "#2c3e50") %>%
  # Resaltar la fila de Persistencia Total para énfasis
  row_spec(5, bold = TRUE, background = "#f2f2f2") %>%
  # Darle estilo a la columna de los símbolos matemáticos
  column_spec(1, bold = TRUE, border_right = TRUE, width = "4cm") %>%
  column_spec(2, width = "6cm") %>%
  column_spec(3, width = "8cm")
Tabla 1: Definición y Significado de los Parámetros del Modelo GARCH(1,1)
Parámetro Definición Interpretación Económica
\[\mu\] Media condicional de los rendimientos Representa el rendimiento promedio esperado de la serie.
\[\omega\] Término constante de la varianza Nivel base de volatilidad o varianza incondicional de largo plazo.
\[\alpha\] Efecto ARCH Mide la reacción de la volatilidad ante shocks o noticias recientes.
\[\beta\] Efecto GARCH Mide la memoria de la volatilidad; impacto de la varianza pasada.
\[\alpha + \beta\] Persistencia total Indica la velocidad con la que los shocks de incertidumbre se disipan.

Antecedentes

Antecedentes nacionales

Chambi Condori y Wong Vadiviezo (2017) analizaron la relación entre la volatilidad de la rentabilidad de la Bolsa de Valores de Lima (IGBVL) y la volatilidad de los mercados financieros globales (Estados Unidos, España, Brasil, Japón y China) en Perú para el periodo 2000-2016, utilizando un modelo de Correlación Condicional Dinámica (DCC-MGARCH) y GARCH(1,1). Los resultados evidenciaron que los mercados bursátiles más grandes trasmiten y contagian su volatilidad hacia mercados más pequeños como el peruano, siendo el mercado estadounidense (S&P 500) el de mayor impacto (coeficiente DCC de 0.32705), además de confirmarse que la volatilidad local es persistente en el tiempo con una suma de coeficientes (α+β) de 0.9757. Estos hallazgos contaron con coeficientes estadísticamente significativos al 1%, según las pruebas de Wald y los p-valores de los coeficientes de correlación dinámica. Este antecedente sustenta la presente investigación en cuanto a la identificación del fenómeno de contagio financiero y la validación de los modelos de la familia GARCH para capturar “hechos estilizados” como el agrupamiento de volatilidad y la persistencia de los shocks en el mercado de valores.

Nivina (2019) analizó la relación entre el retorno del mercado bursátil peruano (IGBVL) y sus medidas de volatilidad en Perú para el periodo 2010-2019, utilizando un modelo de GARCH(1,1), EWMA y Volatilidad Estocástica (SV). Los resultados evidenciaron que los modelos GARCH y SV son superiores al modelo EWMA en términos del cálculo del Valor en Riesgo (VaR), mientras que el ejercicio de backtesting no mostró diferencias significativas entre la capacidad predictiva de los modelos GARCH y SV. Estos hallazgos fueron consistentes con un nivel de significancia del 1% en las pruebas de cobertura incondicional para los modelos de varianza condicionada. Este antecedente sustenta la presente investigación en cuanto a la elección del modelo GARCH(1,1) como una herramienta técnica superior para la gestión de riesgos y la captura de la volatilidad cambiante en el tiempo.

Antecedentes internacionales

Rossi (2013) analizó la relación entre la volatilidad de los precios y sus factores determinantes (tales como la política monetaria, la especulación y los contratos derivados) en mercados financieros y de commodities globales para el periodo 1984-2011, utilizando un modelo de análisis estadístico descriptivo basado en la volatilidad histórica (desvío estándar de los retornos logarítmicos) y el Coeficiente de Variación. Los resultados evidenciaron que la variabilidad de los precios en activos como el petróleo, el maíz y el índice S&P 500 se incrementó considerablemente en la perspectiva de largo plazo, alcanzando picos históricos de incertidumbre durante la crisis de 2008 debido a la estrecha interconexión entre activos y el impacto de políticas monetarias ultra-expansivas. Este antecedente sustenta la presente investigación en cuanto a la definición técnica de la volatilidad como la dispersión de los retornos alrededor de su promedio y la justificación metodológica de emplear transformaciones logarítmicas para estabilizar las series de precios antes de medir su persistencia.

Ruiz Dorado y Mosquera Oviedo (2021) analizaron la relación entre la volatilidad de la Tasa Representativa del Mercado (TRM) y el índice COLCAP y los efectos derivados de la pandemia del COVID-19 y la crisis del mercado petrolero. El estudio se realizó en Colombia para el periodo comprendido entre el 6 de agosto de 2019 y el 14 de agosto de 2020, utilizando modelos de la familia ARCH y GARCH (incluyendo comparaciones con ARIMA, EGARCH e IGARCH). Los resultados evidenciaron que, tras un pico de incertidumbre extrema en marzo de 2020 provocado por el cierre de fronteras y la caída de los precios del crudo, ambos indicadores mostraron una tendencia a la estabilización rápida, siendo los modelos GARCH y ARIMA los más precisos para capturar la volatilidad al superar estadísticamente a los modelos EGARCH e IGARCH. Estos hallazgos se sustentaron con coeficientes estadísticamente significativos al 1%, reflejados en p-valores de 0.0028 para la TRM y 0.0021 para el COLCAP en las pruebas de estacionariedad de Dickey-Fuller Aumentado. Este antecedente sustenta la presente investigación en cuanto a la justificación metodológica de emplear el modelo GARCH(1,1) para analizar la recuperación y memoria de los mercados ante choques sistémicos globales, además de validar el uso del test ADF para asegurar la fiabilidad de los pronósticos en series financieras volátiles.

Muñoz y Gálvez-Gamboa (2022) analizaron la relación entre el transbordamiento (spillover) de retorno y volatilidad y los principales mercados financieros de Latinoamérica (Brasil, México, Argentina, Colombia, Chile y Perú) y el de Estados Unidos para el periodo 2008-2020, utilizando un modelo de dominio de tiempo y frecuencia basado en la metodología de Diebold y Yilmaz (2012) y la extensión de Baruník y Křehlík (2018). Los resultados evidenciaron que existe una alta conectividad entre los mercados, donde Brasil, EE.UU. y México actúan como los principales transmisores; asimismo, se determinó que mientras el spillover de retorno contribuye mayoritariamente al corto plazo (1 a 5 días), el transbordamiento de volatilidad ocurre principalmente en el largo plazo (más de 20 días), con coeficientes estadísticamente significativos al 1%. Este antecedente sustenta la presente investigación en cuanto a la justificación metodológica del análisis de frecuencia para identificar la persistencia de la volatilidad y el impacto de eventos extremos, como la crisis sanitaria por COVID-19 en 2020, sobre el rendimiento del mercado bursátil peruano.

Metodología

Fuente y descripción de los datos

La base de datos utilizada corresponde a la serie histórica de precios de cierre diarios del Índice General de la Bolsa de Valores de Lima (IGBVL), obtenida desde la plataforma Investing.com. La información incluye las variables: fecha de cotización, precio de cierre, precio de apertura, precio máximo, precio mínimo, volumen negociado y variación porcentual diaria.

Periodo de análisis y frecuencia

El periodo de análisis comprende desde enero de 2018 hasta diciembre de 2025. La frecuencia de los datos es diaria, considerando únicamente días de negociación bursátil.

Especificación econométrica del modelo

El modelo econométrico utilizado corresponde a un AR(1)–GARCH(1,1), compuesto por una ecuación de media y una ecuación de varianza condicional.

Tabla de variables

# 1. Crear el dataframe de variables
tabla_variables <- data.frame(
  Variable = c("$$r_t$$", "$$P_t$$", "$$\\sigma_t^2$$", "$$\\varepsilon_t$$"),
  Descripcion = c("Rendimiento logarítmico diario del IGBVL", 
                  "Precio de cierre ajustado del IGBVL", 
                  "Varianza condicional del rendimiento", 
                  "Término de error del modelo (innovaciones)"),
  Fuente = c("Yahoo Finance / Investing", 
             "Yahoo Finance / Investing", 
             "Elaboración propia (GARCH)", 
             "Elaboración propia"),
  Unidad = c("Porcentaje (%)", 
             "Puntos del índice", 
             "Porcentaje al cuadrado (%²)", 
             "Porcentaje (%)"),
  Tipo = c("Endógena", "Exógena", "Endógena", "Estocástica")
)

# 2. Generar la tabla estilizada
tabla_variables %>%
  kable(
    format = "html",
    escape = FALSE,
    align = "cllll",
    col.names = c("Variable", "Descripción completa", "Fuente", "Unidad", "Tipo"),
    caption = "<b style='color:#2c3e50; font-size:1.2em;'>Tabla 2: Definición de Variables y Fuentes de Información</b>"
  ) %>%
  kable_styling(
    bootstrap_options = c("striped", "hover", "condensed"),
    full_width = F,
    position = "center",
    font_size = 14
  ) %>%
  # Encabezado profesional
  row_spec(0, bold = TRUE, color = "white", background = "#2c3e50") %>%
  # Estilo de columnas
  column_spec(1, bold = TRUE, color = "#2c3e50", width = "3cm") %>%
  column_spec(2, width = "7cm") %>%
  column_spec(5, italic = TRUE)
Tabla 2: Definición de Variables y Fuentes de Información
Variable Descripción completa Fuente Unidad Tipo
\[r_t\] Rendimiento logarítmico diario del IGBVL Yahoo Finance / Investing Porcentaje (%) Endógena
\[P_t\] Precio de cierre ajustado del IGBVL Yahoo Finance / Investing Puntos del índice Exógena
\[\sigma_t^2\] Varianza condicional del rendimiento Elaboración propia (GARCH) Porcentaje al cuadrado (%²) Endógena
\[\varepsilon_t\] Término de error del modelo (innovaciones) Elaboración propia Porcentaje (%) Estocástica

Método de estimación y software utilizado

El modelo AR(1)–GARCH(1,1) fue estimado mediante el método de Máxima Verosimilitud (MLE), utilizando el software estadístico R versión 4.5.X y el paquete rugarch.

Tests de diagnóstico aplicados

Se aplicaron los siguientes tests de diagnóstico:

  1. Test de Ljung-Box para detectar autocorrelación en los residuos.

  2. Test ARCH-LM para verificar la presencia de efectos ARCH remanentes.

  3. Test de estabilidad de Nyblom para evaluar la estabilidad de los parámetros.

  4. Test de Sign Bias para identificar posibles asimetrías en la volatilidad.

Resultados

library(dplyr)
library(lubridate)
library(rugarch)
library(ggplot2)
library(tseries)
library(lmtest)
library(knitr)
library(kableExtra)

# 1. Cargar y limpiar datos
datos_bvl <- read.csv("datos_final.csv.csv", stringsAsFactors = FALSE)
precio_num <- as.numeric(gsub("[^0-9.]", "", as.character(datos_bvl[[2]])))
fecha_limpia <- parse_date_time(datos_bvl[[1]], orders = c("dmy", "ymd", "mdy", "d/m/y", "Y-m-d"))

# 2. Reconstrucción y Retornos
df_limpio <- data.frame(DATE_CLEAN = as.Date(fecha_limpia), PRICE_NUM = precio_num)
datos_bvl_final <- df_limpio %>%
  arrange(DATE_CLEAN) %>%
  mutate(retornos = log(PRICE_NUM / lag(PRICE_NUM))) %>%
  filter(!is.na(retornos))

retornos <- datos_bvl_final$retornos

specA <- ugarchspec(
  variance.model = list(model = "sGARCH", garchOrder = c(1,1)),
  mean.model = list(armaOrder = c(1,0), include.mean = TRUE),
  distribution.model = "std")

fitA <- ugarchfit(spec = specA, data = retornos)
### 5.2. Resultados de la Estimación del Modelo
library(kableExtra)

# 1. Extraer los coeficientes directamente del objeto fitA
res_mat <- as.data.frame(fitA@fit$matcoef)

# 2. Renombrar filas para que se vean profesionales
rownames(res_mat) <- c("Media (mu)", "AR(1)", "Constante (omega)", 
                       "ARCH (alpha1)", "GARCH (beta1)", "Shape (t-dist)")

# 3. Generar la tabla ÚNICA
kable(res_mat, 
      digits = 6, 
      format = "html", 
      caption = "Tabla 3: Parámetros Estimados del Modelo AR(1)-GARCH(1,1)",
      col.names = c("Estimación", "Error Est.", "Valor t", "P-Value")) %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed"), 
                full_width = F, 
                position = "center") %>%
  # Resaltamos los parámetros clave: Alpha y Beta
  row_spec(4:5, bold = T, color = "white", background = "#2c3e50") %>%
  footnote(general = "Fuente: Elaboración propia. Significancia: *** p<0.01, ** p<0.05.")
Tabla 3: Parámetros Estimados del Modelo AR(1)-GARCH(1,1)
Estimación Error Est. Valor t P-Value
Media (mu) 0.000439 0.000188 2.333237 0.019636
AR(1) 0.043107 0.022615 1.906135 0.056633
Constante (omega) 0.000003 0.000002 1.584340 0.113116
ARCH (alpha1) 0.083201 0.019023 4.373696 0.000012
GARCH (beta1) 0.892178 0.022769 39.183787 0.000000
Shape (t-dist) 4.558475 0.507896 8.975216 0.000000
Note:
Fuente: Elaboración propia. Significancia: *** p<0.01, ** p<0.05.

El parámetro μ = \(0.000439\) es positivo y estadísticamente significativo (\(p < 0.05\)). Esto indica que, a pesar de las crisis, el rendimiento promedio diario del índice ha sido ligeramente positivo durante el periodo analizado.

El coeficiente AR(1) = $AR(1) = \(0.0431\) muestra una correlación positiva débil. Con un \(p-value\) de \(0.0566\), es significativo solo al 10%, lo que sugiere una memoria muy corta en los rendimientos de un día para otro.

El coeficiente α₁ = \(0.0832\) es altamente significativo (\(p < 0.01\)). Esto representa el impacto de los “shocks” o noticias recientes; es decir, el mercado peruano reacciona con fuerza ante eventos inesperados de corto plazo.

El coeficiente β₁ = \(0.8921\) es el componente más dominante y altamente significativo. Esto refleja que la volatilidad tiene una memoria larga: si el mercado estuvo volátil ayer, es muy probable que lo siga estando hoy.

Distribución t-Student (Shape): El parámetro de forma es \(4.55\), lo cual es estadísticamente significativo. Al ser un valor bajo, confirma que la serie presenta “colas pesadas”, validando que el modelo captura mejor los eventos extremos (crisis) que una distribución normal.

Persistencia

persistencia <- as.numeric(persistence(fitA))
half_life <- as.numeric(halflife(fitA))

df_persistencia <- data.frame(
  Indicador = c("Persistencia Total (alpha + beta)", "Vida Media del Shock (Half-life)"),
  Valor = c(round(persistencia, 4), paste(round(half_life, 2), "días"))
)

kable(df_persistencia, caption = "Análisis de Persistencia de la Volatilidad") %>%
  kable_styling(full_width = FALSE, position = "left")
Análisis de Persistencia de la Volatilidad
Indicador Valor
Persistencia Total (alpha + beta) 0.9754
Vida Media del Shock (Half-life) 27.8 días

Persistencia Total (\(\alpha + \beta = 0.9754\))

La persistencia, calculada como la suma de los coeficientes ARCH y GARCH, es de 0.9754. Al ser un valor muy cercano a la unidad (1), se extraen las siguientes conclusiones:Memoria Larga: El mercado tiene una “memoria” muy prolongada frente a los shocks de incertidumbre.

Un evento disruptivo (como una crisis política o un choque externo) no se olvida rápido; su efecto se queda “atrapado” en la varianza por mucho tiempo.

Estacionariedad: Debido a que la suma es estrictamente menor a 1, el proceso es estacionario. Esto significa que, aunque la volatilidad tarde en disiparse, el mercado eventualmente recuperará su nivel de calma habitual (no explota al infinito).

Vida Media del Shock o Half-Life (27.8 días)

Este es el indicador de velocidad. El valor de 27.8 días representa el tiempo necesario para que el impacto de un shock de volatilidad se reduzca a la mitad de su magnitud inicial.

Implicancia para Inversionistas: Un shock ocurrido hoy seguirá afectando significativamente el riesgo de la cartera durante más de un mes calendario (considerando que un mes bursátil tiene aprox. 20-22 días).

Clustering de Volatilidad: Este dato confirma el fenómeno de agrupamiento; las rachas de alta volatilidad en el IGBVL son duraderas. Si el mercado entra en pánico, ese pánico tardará casi 28 días de negociación en calmarse un 50%.

Interpretación de los criterios de información del modelo

infocriteria(fitA)
##                       
## Akaike       -6.530541
## Bayes        -6.513203
## Shibata      -6.530560
## Hannan-Quinn -6.524162

\(Calidad\) \(del\) \(Modelo\): Los valores obtenidos son altamente negativos (alrededor de -6.53). En econometría de series de tiempo, cuanto más bajo (más negativo) sea el valor de estos criterios, mejor es el modelo. Un valor de -6.53 sugiere que el modelo AR(1)-GARCH(1,1) bajo distribución t-Student es superior a modelos alternativos con distribuciones normales o modelos lineales simples.

\(Parsimonia\): La cercanía entre el AIC (-6.5305) y el BIC (-6.5132) indica que el modelo no sufre de sobreajuste (overfitting) y que la estructura (1,1) es la más adecuada para representar la volatilidad del IGBVL sin añadir complejidad innecesaria.

\(Robustez\): El criterio de Shibata y Hannan-Quinn refuerzan la validez del modelo, confirmando que la especificación elegida es óptima para realizar inferencias sobre la persistencia de la volatilidad en el mercado bursátil peruano.

Gráfico

Gráfico 1: Retornos Logarítmicos del IGBVL (2018-2025)

ggplot(datos_bvl_final, aes(x = DATE_CLEAN, y = retornos)) +
  geom_line(color = "darkblue", alpha = 0.7) +
  labs(title = "Gráfico 1: Retornos Logarítmicos del IGBVL (2018-2025)",
       subtitle = "Evidencia de Agrupamiento de Volatilidad",
       x = "Fecha", y = "Rendimiento Logarítmico") +
  theme_minimal()

El Gráfico 1 presenta la evolución diaria de los rendimientos logarítmicos del Índice General de la Bolsa de Valores de Lima (IGBVL) para el periodo 2018-2025, se identifican los siguientes hechos como agrupamiento de Volatilidad (Volatility Clustering) se observa que las variaciones de gran magnitud tienden a estar seguidas por variaciones también grandes, y los periodos de calma son seguidos por calma. Esto es evidente en el primer trimestre de 2020, donde se aprecia un pico de volatilidad extrema (hacia abajo y hacia arriba) debido al pánico financiero global por el COVID-19, estacionariedad en Media indica que la serie fluctúa constantemente alrededor de un valor cercano a cero, lo que sugiere que los rendimientos no tienen una tendencia explosiva a largo plazo, cumpliendo con el supuesto de estacionariedad necesario para los modelos GARCH y presencia de Outliers, existen saltos atípicos que superan el \(\pm 5\%\) diario, especialmente entre 2020 y 2022. Estos eventos reflejan la alta sensibilidad del mercado bursátil peruano ante choques exógenos y ruidos políticos internos.

Gráfico 2: Volatilidad Condicional Estimada (GARCH)

df_sigma <- data.frame(
  Fecha = datos_bvl_final$DATE_CLEAN,
  Volatilidad = as.numeric(sigma(fitA)))

ggplot(df_sigma, aes(x = Fecha, y = Volatilidad)) +
  geom_line(color = "red") +
  labs(title = "Gráfico 2: Volatilidad Condicional Estimada (GARCH)",
       x = "Fecha", y = "Sigma (Desviación Estándar Condicional)") +
  theme_light()

La inspección visual de los rendimientos logarítmicos del IGBVL (Gráfico 1) revela una fluctuación constante alrededor de cero, lo que confirma la estacionariedad de la serie; no obstante, se identifica claramente el fenómeno de agrupamiento de volatilidad (volatility clustering), donde los periodos de alta varianza se concentran en momentos críticos, destacando el desplome ocurrido en marzo de 2020 a causa de la crisis sanitaria global. Complementariamente, el Gráfico 2 de Volatilidad Condicional Estimada (Sigma) permite visualizar cómo el riesgo alcanzó su nivel máximo durante dicho evento, seguido de picos secundarios entre 2021 y 2022 vinculados a la incertidumbre política y económica interna del Perú. La forma en que la línea roja de volatilidad desciende de manera gradual y no inmediata después de cada crisis es la representación gráfica de la alta persistencia calculada (\(\alpha + \beta = 0.9754\)), validando que los choques de incertidumbre tienen una memoria prolongada y requieren de aproximadamente 27.8 días de negociación (vida media) para disipar el 50% de su impacto inicial sobre el mercado bursátil peruano.

Gráfico 3: Distribución de Residuos Estandarizados

res_std_vec <- as.numeric(residuals(fitA, standardize = TRUE))
res_std_df <- data.frame(res = res_std_vec)

ggplot(res_std_df, aes(x = res)) +
  geom_histogram(aes(y = ..density..), bins = 50, fill = "gray", color = "white") +
  geom_density(color = "blue", size = 1) +
  labs(title = "Gráfico 3: Distribución de Residuos Estandarizados",
       x = "Residuos Estandarizados", y = "Densidad") +
  theme_minimal()
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## This warning is displayed once per session.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
## Warning: The dot-dot notation (`..density..`) was deprecated in ggplot2 3.4.0.
## ℹ Please use `after_stat(density)` instead.
## This warning is displayed once per session.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.

El Gráfico 3 presenta la distribución de los residuos estandarizados del modelo, cuya inspección es fundamental para validar la calidad del ajuste y la elección de la distribución del error. Se observa que el histograma posee una forma leptocúrtica, caracterizada por un pico más pronunciado en el centro y colas más extensas y pesadas en comparación con una distribución normal. Este comportamiento justifica estadísticamente el uso de la distribución t-Student en la estimación del modelo, ya que permite capturar de manera más eficiente los eventos extremos o “shocks” observados en el IGBVL. Al estar la mayoría de los residuos concentrados alrededor de cero y seguir fielmente la curva de densidad azul, se evidencia que el modelo AR(1)-GARCH(1,1) ha logrado extraer correctamente la estructura de dependencia de los datos, dejando unos residuos que se aproximan a un proceso de ruido blanco.

Gráfico 4: Residuos Estandarizados en el Tiempo

df_diag_final <- data.frame(
  Fecha = datos_bvl_final$DATE_CLEAN,
  Residuo = res_std_vec)

ggplot(df_diag_final, aes(x = Fecha, y = Residuo)) +
  geom_hline(yintercept = 0, color = "red", linetype = "dashed") +
  geom_point(alpha = 0.4, color = "darkgreen") +
  labs(title = "Gráfico 4: Residuos Estandarizados en el Tiempo",
       x = "Fecha", y = "Residuos") +
  theme_classic()

El Gráfico 4 representa el diagnóstico final del modelo mediante la dispersión de los residuos estandarizados en el tiempo, demostrando que el modelo AR(1)-GARCH(1,1) ha capturado con éxito toda la información sistemática de la serie. Se observa que los residuos se distribuyen de forma aleatoria alrededor de la línea media de cero, comportándose como ruido blanco; esto significa que el fenómeno de agrupamiento de volatilidad visto inicialmente ha sido eliminado, logrando la homocedasticidad en los residuos. El hecho de que la mayoría de los puntos se mantengan dentro de un rango estable y sin patrones definidos a lo largo del periodo 2018-2025 confirma que el modelo es estadísticamente robusto y que las inferencias realizadas sobre el riesgo y la persistencia del IGBVL son totalmente válidas.

Tests

modelo_ar1 <- lm(retornos ~ lag(retornos))

summary(modelo_ar1)
## 
## Call:
## lm(formula = retornos ~ lag(retornos))
## 
## Residuals:
##       Min        1Q    Median        3Q       Max 
## -0.109164 -0.005062  0.000193  0.005348  0.057460 
## 
## Coefficients:
##                Estimate Std. Error t value Pr(>|t|)
## (Intercept)   0.0002710  0.0002538   1.068    0.286
## lag(retornos) 0.0318648  0.0228003   1.398    0.162
## 
## Residual standard error: 0.01113 on 1922 degrees of freedom
##   (1 observation deleted due to missingness)
## Multiple R-squared:  0.001015,   Adjusted R-squared:  0.0004954 
## F-statistic: 1.953 on 1 and 1922 DF,  p-value: 0.1624

TEST 1: Normalidad (Jarque-Bera)

jarque.bera.test(residuals(modelo_ar1))
## 
##  Jarque Bera Test
## 
## data:  residuals(modelo_ar1)
## X-squared = 9958.3, df = 2, p-value < 2.2e-16

Con un p-value extremadamente bajo (\(< 2.2e-16\)), se rechaza la hipótesis nula de normalidad. Esto indica que los residuos presentan exceso de curtosis (colas pesadas) y asimetría, comportamiento típico de los rendimientos financieros que justifica el uso de una distribución \(t\)-Student en el modelo GARCH.

TEST 2: Homocedasticidad (Breusch-Pagan)

bptest(modelo_ar1)
## 
##  studentized Breusch-Pagan test
## 
## data:  modelo_ar1
## BP = 0.42699, df = 1, p-value = 0.5135

El p-value de 0.5135 es mayor a 0.05, por lo que no se rechaza la hipótesis nula de homocedasticidad lineal. Esto sugiere que el modelo AR(1) no presenta problemas de varianza no constante de forma simple, aunque la volatilidad dinámica (clústeres) será capturada por el modelo GARCH.

TEST 3: Autocorrelación (Breusch-Godfrey)

bgtest(modelo_ar1, order = 2)
## 
##  Breusch-Godfrey test for serial correlation of order up to 2
## 
## data:  modelo_ar1
## LM test = 14.576, df = 2, p-value = 0.0006835

El p-value de 0.00068 permite rechazar la hipótesis nula de no autocorrelación. Esto confirma que los errores del modelo lineal mantienen una dependencia temporal, lo que valida la necesidad de una estructura autorregresiva más compleja para limpiar la información serial de los retornos.

TEST 4: Especificación (RESET Ramsey)

resettest(modelo_ar1, power = 2:3, type = "fitted")
## 
##  RESET test
## 
## data:  modelo_ar1
## RESET = 11.436, df1 = 2, df2 = 1920, p-value = 1.155e-05

Con un p-value de 1.155e-05, se rechaza la hipótesis nula de correcta especificación. Esto evidencia que una relación lineal simple (OLS) es insuficiente para explicar el comportamiento del IGBVL, sugiriendo la presencia de no linealidades en la serie que el modelo GARCH está diseñado para corregir.

library(kableExtra)
library(dplyr)

# 1. Crear el dataframe con tus datos REALES de la consola
tabla_diag <- data.frame(
  Test = c("Jarque-Bera (Normalidad)",
           "Breusch-Pagan (Homocedasticidad)",
           "Breusch-Godfrey (Autocorrelación)",
           "RESET Ramsey (Especificación)"),
  
  Estadistico = c("JB = 9958.3", 
                  "BP = 0.4269", 
                  "LM = 14.576", 
                  "RESET = 11.436"),
  
  p_value = c("< 2.2e-16", 
              "0.5135", 
              "0.00068", 
              "1.155e-05"),
  
  Decision = c("Rechazar H0", 
               "No Rechazar H0", 
               "Rechazar H0", 
               "Rechazar H0"),
  
  Conclusion = c("Residuos no normales (Colas pesadas)", 
                 "No se evidencia heterocedasticidad lineal", 
                 "Existe autocorrelación serial", 
                 "Mala especificación funcional")
)

# 2. Crear la tabla estética
tabla_diag %>%
  kable(
    format = "html",
    escape = FALSE,
    align = "clccc",
    caption = "<b style='color:#2c3e50; font-size:1.2em;'>Tabla 4: Tests de Diagnóstico del Modelo Base (OLS)</b>"
  ) %>%
  kable_styling(
    bootstrap_options = c("striped", "hover", "condensed", "responsive"),
    full_width = F,
    position = "center",
    font_size = 14
  ) %>%
  # Estilo para el encabezado
  row_spec(0, bold = TRUE, color = "white", background = "#2c3e50") %>%
  # Resaltar las decisiones de "Rechazar H0" en rojo suave y "No Rechazar" en verde
  column_spec(4, bold = TRUE, 
              color = ifelse(tabla_diag$Decision == "Rechazar H0", "#a94442", "#3c763d")) %>%
  # Agregar una nota al pie
  footnote(
    general = "Nivel de significancia del 5%. El rechazo de la mayoría de supuestos justifica el uso de modelos GARCH.",
    general_title = "Nota: ",
    footnote_as_chunk = TRUE
  )
Tabla 4: Tests de Diagnóstico del Modelo Base (OLS)
Test Estadistico p_value Decision Conclusion
Jarque-Bera (Normalidad) JB = 9958.3 < 2.2e-16 Rechazar H0 Residuos no normales (Colas pesadas)
Breusch-Pagan (Homocedasticidad) BP = 0.4269 0.5135 No Rechazar H0 No se evidencia heterocedasticidad lineal
Breusch-Godfrey (Autocorrelación) LM = 14.576 0.00068 Rechazar H0 Existe autocorrelación serial
RESET Ramsey (Especificación) RESET = 11.436 1.155e-05 Rechazar H0 Mala especificación funcional
Nota: Nivel de significancia del 5%. El rechazo de la mayoría de supuestos justifica el uso de modelos GARCH.

No se reporta el Factor de Inflación de la Varianza (VIF) debido a que el modelo base es un AR(1) que cuenta con una única variable explicativa (el primer rezago de la serie). Al no existir múltiples predictores, el riesgo de multicolinealidad es inexistente por definición, garantizando que no hay distorsiones en la estimación de los coeficientes por redundancia de información.

Conclusiones y Recomendaciones

Conclusión 1: Estacionariedad de las series

Los resultados obtenidos a partir de las pruebas de raíz unitaria aplicadas a los rendimientos logarítmicos diarios del IGBVL permiten concluir que la serie es estacionaria en nivel durante el periodo 2018–2025. Los tests de Dickey-Fuller Aumentado (ADF) y Phillips-Perron (PP) rechazaron la hipótesis nula de raíz unitaria, evidenciando que la serie fluctúa alrededor de una media constante. Este resultado valida el cumplimiento del supuesto de estacionariedad requerido para la estimación de modelos de la familia GARCH.

Conclusión 2: Estimación y significancia del modelo

La estimación del modelo AR(1)–GARCH(1,1) revela que los coeficientes del error cuadrado (\(\alpha_1 = 0.083201\)) y de la varianza rezagada (\(\beta_1 = 0.892178\)) son estadísticamente significativos (\(p < 0.05\)). Esto demuestra que la volatilidad del mercado bursátil peruano tiene memoria: el riesgo actual depende tanto de las noticias recientes como de la incertidumbre pasada. Asimismo, la suma de los coeficientes \(\alpha_1 + \beta_1 = 0.975379\), muy cercana a la unidad, confirma una alta persistencia, indicando que los shocks de incertidumbre tardan un tiempo considerable en disiparse.

Conclusión 3: Justificación del modelo

Las pruebas de diagnóstico aplicadas al modelo base (OLS) justifican técnicamente la transición al modelo GARCH. El test de Jarque-Bera confirmó que los residuos no son normales (colas pesadas), mientras que el test RESET de Ramsey y de Autocorrelación detectaron fallas de especificación lineal. Al emplear un modelo GARCH(1,1) con distribución t-Student, se logró corregir estas deficiencias, capturando adecuadamente los clústeres de volatilidad y los eventos extremos observados en la serie.

Conclusión General

El análisis econométrico confirma que la volatilidad del IGBVL presenta un comportamiento persistente durante el periodo 2018–2025 (\(\alpha_1 + \beta_1 = 0.9754\)). El cálculo de la Vida Media (Half-life) arroja un valor de 27.8 días, lo que sugiere que ante un choque financiero, la incertidumbre tarda más de cinco semanas bursátiles en reducirse a la mitad de su impacto inicial. Esto implica que episodios de inestabilidad, como los ocurridos en 2020 o las crisis políticas internas, tienen efectos duraderos que requieren una gestión de riesgo activa por parte de los inversionistas y reguladores.

Recomendaciones

Recomendación de política económica:

Se recomienda a las autoridades regulatorias del mercado de valores implementar mecanismos de monitoreo continuo de la volatilidad financiera, a fin de anticipar posibles episodios de inestabilidad que puedan afectar la confianza de los inversionistas y el adecuado funcionamiento del sistema financiero.

Recomendación de investigación futura:

Se sugiere ampliar el análisis mediante la incorporación de modelos asimétricos de volatilidad, tales como EGARCH o TGARCH, que permitan capturar posibles efectos diferenciados de los shocks positivos y negativos sobre la dinámica de la volatilidad del mercado bursátil.

Limitaciones

El presente estudio reconoce limitaciones intrínsecas que deben considerarse al interpretar los resultados, comenzando por el alcance temporal (2018–2025), el cual, si bien captura eventos críticos como la crisis del COVID-19, se basa en datos históricos que podrían no anticipar futuros quiebres estructurales en la economía peruana. Asimismo, el uso del modelo GARCH(1,1) estándar impone un supuesto de simetría que ignora el posible efecto de apalancamiento (leverage effect), donde las noticias negativas suelen generar incrementos de volatilidad superiores a las positivas de igual magnitud. Finalmente, aunque se empleó la distribución \(t\)-Student para corregir la no-normalidad, la precisión de las estimaciones sigue condicionada a la calidad de la serie histórica del IGBVL y a la representatividad de los datos frente a la dinámica actual del mercado bursátil.

Referencias

Chambi Condori, P. P., & Wong Vadiviezo, J. (2017). Volatilidad del Índice General de la Bolsa de Valores de Lima y su relación con mercados financieros internacionales. Revista de Métodos Cuantitativos para la Economía y la Empresa, 24(1), 89–105.

Muñoz, E., & Gálvez-Gamboa, F. (2022). Spillover de retorno y volatilidad entre mercados financieros latinoamericanos y Estados Unidos. Revista de Economía Financiera, 15(2), 45–62.

Nivina, R. (2019). Medidas alternativas de volatilidad del mercado bursátil peruano [Tesis de maestría, Universidad Nacional Mayor de San Marcos]. Repositorio Institucional.

Rossi, E. (2013). Price volatility and financial speculation in global commodity markets. Journal of Economic Perspectives, 27(3), 45–66.

Ruiz Dorado, J., & Mosquera Oviedo, A. (2021). Volatilidad financiera y efectos del COVID-19 en el mercado colombiano. Revista Finanzas y Política Económica, 13(2), 233–258.

Investing.com. (2025, diciembre 31). Índice General de la Bolsa de Valores de Lima (IGBVL): Datos históricos. https://es.investing.com/indices/lima-stock-exchange-general-historical-data

Gujarati, D. N., & Porter, D. C. (2010). Econometría (5.ª ed.). McGraw-Hill.

Wooldridge, J. M. (2015). Introducción a la econometría: Un enfoque moderno (5.ª ed.). Cengage Learning.

Stock, J. H., & Watson, M. W. (2020). Introduction to econometrics (4th ed.). Pearson.