Rendimientos, volatilidad y movimiento browniano geométrico

Distribución empírica, pruebas de normalidad y proyección del precio

Autores/as

Santiago Álvarez Tostado Estrada

Francisco Uriel Ledezma Chávez

Jorge Isaac López Ávila

Juan Pablo Morán Errejón

Fecha de publicación

21 de septiembre de 2026

Fuente de datos
Yahoo Finance / BMV
Corte financiero
31 de diciembre de 2025
Moneda
MXN por acción; rendimientos adimensionales
Periodo cubierto
27 de febrero de 2006–26 de agosto de 2026

1 Introducción

ImportantePendiente de redacción

Propósito del análisis y estructura del documento.

2 Metodología

El rendimiento logarítmico diario se define como

\[ r_t = \ln\!\left(\frac{S_t}{S_{t-1}}\right) \]

Los rendimientos logarítmicos son aditivos en el tiempo, propiedad que hace exacto el escalamiento por horizonte. Bajo el supuesto de independencia serial, la media y la volatilidad se anualizan como

\[ \mu_{\text{anual}} = 252\,\mu_{\text{diario}} \qquad \sigma_{\text{anual}} = \sqrt{252}\,\sigma_{\text{diario}} \]

3 Rendimientos y volatilidad

La Tabla 1 resume la muestra completa y la Tabla 2 permite comparar los cambios entre años.

Periodo completo de estimación

Ver código
report_table(
  return_moments(sample_returns$log_return),
  caption = "Momentos de la muestra de estimación (2021-2025)."
)
Tabla 1: Momentos de la muestra de estimación (2021-2025).
Observaciones Media diaria Volatilidad diaria Media anualizada Volatilidad anualizada
1,258 0.0008 0.0209 0.2001 0.3322

Estimación año por año

Ver código
report_table(
  return_moments_by_year(sample_returns),
  caption = "Media y volatilidad, diarias y anualizadas, por año."
)
Tabla 2: Media y volatilidad, diarias y anualizadas, por año.
Año Observaciones Media diaria Volatilidad diaria Media anualizada Volatilidad anualizada
2021 253 0.0011 0.0163 0.2895 0.2592
2022 252 0.0002 0.0218 0.0388 0.3454
2023 251 0.0005 0.0275 0.1325 0.4369
2024 251 0.0010 0.0198 0.2490 0.3139
2025 251 0.0012 0.0176 0.2903 0.2789
ImportantePendiente de redacción

¿Hay cambios estructurales? ¿Años con volatilidad particularmente elevada? ¿Periodos de mayor riesgo, y a qué corresponden?

4 Pruebas estadísticas

Normalidad

El estadístico de Jarque-Bera contrasta conjuntamente el tercer y cuarto momento contra los de una normal:

La Tabla 3 formaliza el contraste y la Figura 1 permite comparar la densidad empírica con la normal ajustada.

\[ JB = \frac{n}{6}\left(S^2 + \frac{(K-3)^2}{4}\right) \;\sim\; \chi^2_{2} \]

Ver código
jb <- jarque_bera_table(list(
  "Rendimientos" = sample_returns$log_return,
  "Precio" = sample_prices$adjusted,
  "Logaritmo del precio" = log(sample_prices$adjusted)
))
report_table(jb, caption = "Prueba de Jarque-Bera sobre las tres series.")
Tabla 3: Prueba de Jarque-Bera sobre las tres series.
Serie Observaciones Asimetría Curtosis Exceso de curtosis Estadístico Valor p Rechaza normalidad
Rendimientos 1,258 -1.1301 23.837 20.8371 23,026.38 0 TRUE
Precio 1,258 0.6767 2.673 -0.3271 101.62 0 TRUE
Logaritmo del precio 1,258 0.1420 2.349 -0.6513 26.46 0 TRUE
Ver código
mu <- mean(sample_returns$log_return)
sigma <- sd(sample_returns$log_return)

ggplot(sample_returns, aes(log_return)) +
  geom_histogram(aes(y = after_stat(density)), bins = 80,
                 fill = RISK_PALETTE[1], alpha = 0.7) +
  stat_function(fun = dnorm, args = list(mean = mu, sd = sigma),
                colour = RISK_PALETTE[2], linewidth = 0.7) +
  scale_x_continuous(labels = label_percent(accuracy = 1)) +
  labs(
    x = "Rendimiento logarítmico diario", y = "Densidad",
    caption = "Barra: distribución empírica. Línea: normal con la media y la desviación de la muestra."
  )
Distribución empírica de los rendimientos diarios frente a la normal ajustada.
Figura 1: Distribución empírica de los rendimientos diarios frente a la normal ajustada.

Media igual a cero

\[ t = \frac{\bar{r}}{s/\sqrt{n}} \;\sim\; t_{\,n-1} \]

La Tabla 4 reporta la estimación y la decisión estadística correspondiente.

Ver código
report_table(
  mean_zero_test(sample_returns$log_return),
  caption = "Prueba t de media diaria igual a cero."
)
Tabla 4: Prueba t de media diaria igual a cero.
Observaciones Media Error estándar Estadístico Grados de libertad Valor p Límite inferior Límite superior Rechaza media cero
1,258 0.0008 0.0006 1.345 1,257 0.1787 -0.0004 0.002 FALSE
ImportantePendiente de redacción

Interpretación en términos de eficiencia de mercado. No rechazar la hipótesis de media cero es el resultado interesante, no el decepcionante.

5 Modelo con parámetros diarios

El movimiento browniano geométrico postula

\[ dS_t = \mu S_t\,dt + \sigma S_t\,dW_t \]

cuya solución, por el lema de Itô, es

\[ S_t = S_0 \exp\!\left[\left(\mu - \tfrac{\sigma^2}{2}\right)t + \sigma W_t\right] \]

de modo que \(\ln S_t\) es normal y \(S_t\) es lognormal. El intervalo de confianza se construye sobre los cuantiles de la lognormal, no como una banda simétrica alrededor de la media: el precio no puede ser negativo y su distribución es asimétrica a la derecha.

La Tabla 5 presenta las proyecciones construidas con parámetros diarios.

Ver código
gbm <- gbm_params(sample_returns$log_return)
s0 <- sample_prices$adjusted[which.max(sample_prices$date)]

report_table(
  gbm_projection(s0, gbm$nu_daily, gbm$sigma_daily, params()$gbm$horizons_days),
  caption = "Proyección con parámetros diarios. Horizonte en días hábiles."
)
Tabla 5: Proyección con parámetros diarios. Horizonte en días hábiles.
Horizonte Precio inicial (MXN) Esperado (MXN) Mediana (MXN) Límite inferior (MXN) Límite superior (MXN) Confianza Amplitud del intervalo (MXN)
10 471 475.8 474.8 417.0 540.5 0.95 0.2601
20 471 480.7 478.6 398.4 574.9 0.95 0.3689
40 471 490.5 486.2 375.1 630.2 0.95 0.5246

6 Modelo con parámetros anuales

La Tabla 6 expresa la misma proyección en horizontes anuales.

Ver código
horizons_years <- params()$gbm$horizons_months / 12

report_table(
  gbm_projection(s0, gbm$nu_annual, gbm$sigma_annual, horizons_years),
  caption = "Proyección con parámetros anualizados. Horizonte en años."
)
Tabla 6: Proyección con parámetros anualizados. Horizonte en años.
Horizonte Precio inicial (MXN) Esperado (MXN) Mediana (MXN) Límite inferior (MXN) Límite superior (MXN) Confianza Amplitud del intervalo (MXN)
0.25 471 502.1 495.2 357.6 685.7 0.95 0.6626
0.50 471 535.1 520.6 328.5 824.9 0.95 0.9536
0.75 471 570.4 547.3 311.4 961.8 0.95 1.1884
1.00 471 608.0 575.3 300.0 1,103.3 0.95 1.3961
ImportantePendiente de redacción

Cómo se amplifica la incertidumbre al ampliar el horizonte: el ancho del intervalo crece con \(\sqrt{t}\) mientras el valor esperado crece con \(t\).

7 Discusión

ImportantePendiente de redacción

¿Son normales los rendimientos? ¿Es el precio normal o lognormal? ¿Qué implica suponer normalidad al modelar riesgo, y qué riesgos introduce ese supuesto en la toma de decisiones? La respuesta debe apoyarse en los estadísticos calculados arriba, no en la teoría general.

8 Conclusiones

ImportantePendiente de redacción

Síntesis de hallazgos y validez del modelo teórico frente a los datos.

9 Referencias