1. INTRODUCCIÓN

1.1 Contexto y Motivación

La econometría bayesiana ha experimentado un crecimiento exponencial en el ámbito de las finanzas cuantitativas durante las últimas dos décadas (Geweke & Whiteman, 2006). A diferencia de los métodos frecuentistas tradicionales, el enfoque bayesiano permite la incorporación formal de información a priori y proporciona una caracterización completa de la incertidumbre paramétrica mediante distribuciones posteriores (Gelman et al., 2013).

El modelado de series temporales financieras presenta desafíos metodológicos significativos, incluyendo heterocedasticidad condicional, colas pesadas, y dependencias no lineales (Tsay, 2010). La aproximación bayesiana ofrece un marco robusto para abordar estas complejidades, permitiendo inferencias probabilísticas coherentes incluso en presencia de pequeñas muestras o parámetros débilmente identificados.

1.2 Objetivos de Investigación

El presente estudio tiene como objetivos específicos:

  1. Implementar un marco metodológico bayesiano para el análisis de interdependencias entre activos financieros de alta capitalización del sector tecnológico
  2. Estimar mediante algoritmos MCMC (Markov Chain Monte Carlo) las relaciones estructurales entre los retornos logarítmicos de activos seleccionados
  3. Evaluar la convergencia y estabilidad de las cadenas posteriores mediante diagnósticos estándar (Gelman-Rubin, trazas, autocorrelación)
  4. Validar el ajuste del modelo mediante chequeos predictivos posteriores (Posterior Predictive Checks)
  5. Cuantificar la incertidumbre paramétrica y predictiva utilizando intervalos de credibilidad bayesianos

1.3 Estructura del Documento

Este trabajo se organiza de la siguiente manera: la Sección 2 describe los datos y su procedencia; la Sección 3 presenta el análisis exploratorio preliminar; las Secciones 4-5 detallan la especificación del modelo y la metodología de estimación; las Secciones 6-8 reportan los resultados empíricos y diagnósticos; finalmente, las Secciones 9-10 presentan la interpretación económica y las conclusiones.


2. CARGA DE PAQUETES

library(quantmod)
library(rstanarm)
library(corrplot)
library(knitr)
library(coda)  # Para diagnósticos MCMC

options("getSymbols.warning4.0" = FALSE)

3. DESCARGA Y PREPARACIÓN DE DATOS

3.1 Fuente de Datos y Selección de Activos

Los datos provienen de Yahoo Finance, una fuente ampliamente utilizada en investigación académica y práctica profesional. Se seleccionaron cinco activos representativos del sector tecnológico estadounidense, caracterizados por alta capitalización de mercado y liquidez:

simbolos <- c("AAPL", "GOOGL", "MSFT", "TSLA", "AMZN")
fecha_inicio <- "2021-01-01"
fecha_fin <- Sys.Date()

cat("Descargando datos de Yahoo Finance...\n")
## Descargando datos de Yahoo Finance...
getSymbols(simbolos, src = "yahoo", from = fecha_inicio, to = fecha_fin, auto.assign = TRUE)
## [1] "AAPL"  "GOOGL" "MSFT"  "TSLA"  "AMZN"
precios <- data.frame(
  Fecha = index(AAPL),
  AAPL = as.numeric(Ad(AAPL)),
  GOOGL = as.numeric(Ad(GOOGL)),
  MSFT = as.numeric(Ad(MSFT)),
  TSLA = as.numeric(Ad(TSLA)),
  AMZN = as.numeric(Ad(AMZN))
)

kable(head(precios), caption = "Tabla 1: Primeros registros de precios ajustados (USD)", digits = 2)
Tabla 1: Primeros registros de precios ajustados (USD)
Fecha AAPL GOOGL MSFT TSLA AMZN
2021-01-04 125.97 85.66 208.88 243.26 159.33
2021-01-05 127.53 86.35 209.08 245.04 160.93
2021-01-06 123.24 85.50 203.66 251.99 156.92
2021-01-07 127.44 88.05 209.46 272.01 158.11
2021-01-08 128.54 89.22 210.73 293.34 159.13
2021-01-11 125.56 87.16 208.69 270.40 155.71

Periodo de análisis: 04/01/2021 a 05/02/2026
Observaciones totales: 1279 días de negociación

Los precios corresponden a cierres ajustados por splits accionarios y dividendos, garantizando comparabilidad temporal.


4. ANÁLISIS EXPLORATORIO DE DATOS

4.1 Evolución Temporal de Precios

colores <- c("#E41A1C", "#377EB8", "#4DAF4A", "#984EA3", "#FF7F00")

plot(precios$Fecha, precios$AAPL, type = "l", col = colores[1], lwd = 2,
     ylim = range(precios[,-1], na.rm = TRUE),
     main = "Figura 1: Evolución Temporal de Precios de Activos Financieros",
     xlab = "Fecha", ylab = "Precio de Cierre Ajustado (USD)",
     cex.main = 1.3, font.main = 2)
lines(precios$Fecha, precios$GOOGL, col = colores[2], lwd = 2)
lines(precios$Fecha, precios$MSFT, col = colores[3], lwd = 2)
lines(precios$Fecha, precios$TSLA, col = colores[4], lwd = 2)
lines(precios$Fecha, precios$AMZN, col = colores[5], lwd = 2)
legend("topleft", legend = c("AAPL", "GOOGL", "MSFT", "TSLA", "AMZN"), 
       col = colores, lwd = 2, bty = "n", cex = 1.1)
grid()

La Figura 1 revela trayectorias heterogéneas entre activos, con TSLA exhibiendo mayor volatilidad relativa. Se observan co-movimientos aparentes, sugiriendo exposición a factores de riesgo sistemático compartidos.

4.2 Normalización de Precios para Comparabilidad

precios_norm <- precios
precios_norm$AAPL <- (precios$AAPL / precios$AAPL[1]) * 100
precios_norm$GOOGL <- (precios$GOOGL / precios$GOOGL[1]) * 100
precios_norm$MSFT <- (precios$MSFT / precios$MSFT[1]) * 100
precios_norm$TSLA <- (precios$TSLA / precios$TSLA[1]) * 100
precios_norm$AMZN <- (precios$AMZN / precios$AMZN[1]) * 100

plot(precios_norm$Fecha, precios_norm$AAPL, type = "l", col = colores[1], lwd = 2,
     ylim = range(precios_norm[,-1], na.rm = TRUE),
     main = "Figura 2: Precios Normalizados (Base 100 = Fecha Inicial)",
     xlab = "Fecha", ylab = "Índice (Base 100)",
     cex.main = 1.3, font.main = 2)
lines(precios_norm$Fecha, precios_norm$GOOGL, col = colores[2], lwd = 2)
lines(precios_norm$Fecha, precios_norm$MSFT, col = colores[3], lwd = 2)
lines(precios_norm$Fecha, precios_norm$TSLA, col = colores[4], lwd = 2)
lines(precios_norm$Fecha, precios_norm$AMZN, col = colores[5], lwd = 2)
abline(h = 100, lty = 2, col = "gray30", lwd = 2)
legend("topleft", legend = c("AAPL", "GOOGL", "MSFT", "TSLA", "AMZN"), 
       col = colores, lwd = 2, bty = "n", cex = 1.1)
grid()

La normalización facilita la comparación de rendimientos acumulados. TSLA muestra el mayor rango de variación, consistente con su caracterización como activo de alta volatilidad.


5. TRANSFORMACIÓN A RETORNOS LOGARÍTMICOS

5.1 Justificación Metodológica

Los retornos logarítmicos presentan propiedades estadísticas superiores a retornos simples: (i) aditividad temporal, (ii) aproximadamente simétricos, (iii) más cercanos a normalidad. Formalmente:

\[r_t = \ln\left(\frac{P_t}{P_{t-1}}\right) = \ln(P_t) - \ln(P_{t-1})\]

retornos <- precios
retornos$AAPL <- c(NA, diff(log(precios$AAPL))) * 100
retornos$GOOGL <- c(NA, diff(log(precios$GOOGL))) * 100
retornos$MSFT <- c(NA, diff(log(precios$MSFT))) * 100
retornos$TSLA <- c(NA, diff(log(precios$TSLA))) * 100
retornos$AMZN <- c(NA, diff(log(precios$AMZN))) * 100
retornos <- na.omit(retornos)

kable(head(retornos, 10), caption = "Tabla 2: Retornos logarítmicos diarios (%)", digits = 4)
Tabla 2: Retornos logarítmicos diarios (%)
Fecha AAPL GOOGL MSFT TSLA AMZN
2 2021-01-05 1.2288 0.8032 0.0964 0.7291 0.9955
3 2021-01-06 -3.4241 -0.9917 -2.6271 2.7995 -2.5212
4 2021-01-07 3.3554 2.9431 2.8060 7.6448 0.7549
5 2021-01-08 0.8594 1.3152 0.6074 7.5481 0.6475
6 2021-01-11 -2.3523 -2.3377 -0.9746 -8.1442 -2.1754
7 2021-01-12 -0.1397 -1.0797 -1.1840 4.6075 0.2124
8 2021-01-13 1.6096 0.5636 0.6539 0.5834 1.4335
9 2021-01-14 -1.5243 -0.9390 -1.5465 -1.1075 -1.2210
10 2021-01-15 -1.3826 -0.1908 -0.1739 -2.2548 -0.7452
11 2021-01-19 0.5412 3.2377 1.7666 2.2015 0.5304

5.2 Estadísticas Descriptivas

estadisticas <- data.frame(
  Activo = c("AAPL", "GOOGL", "MSFT", "TSLA", "AMZN"),
  Media = sapply(retornos[,-1], mean),
  Mediana = sapply(retornos[,-1], median),
  Desv_Std = sapply(retornos[,-1], sd),
  Minimo = sapply(retornos[,-1], min),
  Maximo = sapply(retornos[,-1], max)
)
rownames(estadisticas) <- NULL

kable(estadisticas, digits = 4, caption = "Tabla 3: Estadísticas descriptivas de retornos (%)")
Tabla 3: Estadísticas descriptivas de retornos (%)
Activo Media Mediana Desv_Std Minimo Maximo
AAPL 0.0613 0.1071 1.7447 -9.7013 14.2618
GOOGL 0.1058 0.1627 1.9482 -9.9924 9.7348
MSFT 0.0496 0.0747 1.6485 -10.5284 9.6525
TSLA 0.0384 0.1041 3.7881 -16.7546 20.4491
AMZN 0.0262 0.0480 2.2066 -15.1398 12.6949

Observaciones clave: - Medias cercanas a cero, consistentes con propiedades de martingala - TSLA exhibe desviación estándar superior, confirmando mayor riesgo idiosincrático - Presencia de colas (valores extremos) sugiere desviaciones de normalidad

5.3 Distribuciones Empíricas

par(mfrow = c(3, 2), mar = c(4, 4, 3, 1))
activos <- c("AAPL", "GOOGL", "MSFT", "TSLA", "AMZN")
for(i in 1:5) {
  hist(retornos[, i+1], breaks = 50, col = colores[i], border = "white",
       main = paste("Figura", 2+i, ": Distribución de Retornos -", activos[i]),
       xlab = "Retorno (%)", ylab = "Frecuencia",
       cex.main = 1.2, font.main = 2)
  abline(v = mean(retornos[, i+1]), col = "red", lwd = 2, lty = 2)
  abline(v = 0, col = "black", lwd = 1, lty = 3)
  legend("topright", legend = c("Media muestral"), col = "red", lwd = 2, lty = 2, bty = "n", cex = 0.9)
}
par(mfrow = c(1, 1))

Las distribuciones muestran leptocurtosis (colas pesadas) relativa a la distribución normal, fenómeno bien documentado en series financieras de alta frecuencia.


6. ANÁLISIS DE DEPENDENCIAS

6.1 Matriz de Correlaciones Lineales

cor_matrix <- cor(retornos[, -1])
corrplot(cor_matrix, method = "color", type = "upper",
         addCoef.col = "black", tl.col = "black", tl.srt = 45,
         number.cex = 1, cl.cex = 0.8,
         title = "Figura 8: Matriz de Correlación de Retornos",
         mar = c(0,0,2,0))

Interpretación: Las correlaciones más altas se observan entre AAPL-MSFT (\(\rho\) = 0.61) y GOOGL-MSFT (\(\rho\) = 0.622), sugiriendo factores comunes de riesgo sectorial. TSLA presenta correlaciones moderadas, indicando mayor componente idiosincrático.

6.2 Diagramas de Dispersión Bivariados

pairs(retornos[, -1], main = "Figura 9: Matriz de Dispersión Bivariada",
      pch = 19, col = rgb(0.2, 0.4, 0.8, 0.3), cex = 0.6,
      cex.main = 1.3, font.main = 2)

Los diagramas revelan relaciones aproximadamente lineales con presencia de observaciones extremas (outliers), típicas de procesos financieros con colas pesadas.


7. MODELO DE REGRESIÓN BAYESIANA

7.1 Especificación del Modelo Econométrico

7.1.1 Formulación Teórica

Consideremos el siguiente modelo de regresión lineal multivariada para los retornos logarítmicos:

\[y_t = \beta_0 + \sum_{j=1}^{4} \beta_j x_{j,t} + \varepsilon_t, \quad \varepsilon_t \sim \mathcal{N}(0, \sigma^2)\]

donde \(y_t\) representa el retorno logarítmico de Apple Inc. (AAPL) en el periodo \(t\), y \(\mathbf{x}_t = (x_{1,t}, x_{2,t}, x_{3,t}, x_{4,t})^\top\) denota el vector de retornos de Google (GOOGL), Microsoft (MSFT), Tesla (TSLA) y Amazon (AMZN), respectivamente.

7.1.2 Distribuciones A Priori

Adoptamos el enfoque de priors débilmente informativos (weakly informative priors) propuesto por Gelman et al. (2008), el cual permite regularización sin imponer restricciones excesivamente fuertes:

\[\beta_0 \sim \mathcal{N}(0, 1)\] \[\beta_j \sim \mathcal{N}(0, 1), \quad j = 1, \ldots, 4\] \[\sigma \sim \text{Exponencial}(1)\]

Esta especificación refleja creencias débiles centradas en cero para los coeficientes, consistentes con la hipótesis nula de independencia, mientras que la prior exponencial para \(\sigma\) garantiza positividad y penaliza valores excesivamente grandes.

7.1.3 Algoritmo de Estimación

La estimación se realiza mediante el algoritmo Hamiltonian Monte Carlo (HMC) con sampler No-U-Turn (NUTS), implementado en el sistema Stan (Carpenter et al., 2017). Este método exhibe propiedades de convergencia superiores a algoritmos tradicionales de Metropolis-Hastings, particularmente en espacios paramétricos de alta dimensionalidad.

Configuración computacional: - Número de cadenas: 4 (independientes) - Iteraciones totales por cadena: 4,000 - Periodo de calentamiento (warm-up): 2,000 - Factor de adelgazamiento (thinning): 2 - Iteraciones efectivas guardadas: 4,000 (1,000 por cadena)

datos_modelo <- retornos[, -1]

set.seed(2024)
modelo_bayes <- stan_glm(
  AAPL ~ GOOGL + MSFT + TSLA + AMZN,
  data = datos_modelo,
  family = gaussian(),
  prior = normal(0, 1),
  prior_intercept = normal(0, 1),
  prior_aux = exponential(1),
  chains = 4,
  iter = 4000,
  warmup = 2000,
  thin = 2,
  seed = 2024,
  refresh = 0
)

7.2 Resultados de Estimación

summary(modelo_bayes, digits = 4)
## 
## Model Info:
##  function:     stan_glm
##  family:       gaussian [identity]
##  formula:      AAPL ~ GOOGL + MSFT + TSLA + AMZN
##  algorithm:    sampling
##  sample:       4000 (posterior sample size)
##  priors:       see help('prior_summary')
##  observations: 1278
##  predictors:   5
## 
## Estimates:
##               mean    sd      10%     50%     90%  
## (Intercept)  0.0182  0.0349 -0.0260  0.0186  0.0627
## GOOGL        0.1968  0.0247  0.1653  0.1966  0.2278
## MSFT         0.3161  0.0300  0.2774  0.3167  0.3544
## TSLA         0.1023  0.0108  0.0884  0.1021  0.1163
## AMZN         0.0998  0.0230  0.0702  0.1002  0.1290
## sigma        1.2485  0.0244  1.2177  1.2480  1.2800
## 
## Fit Diagnostics:
##            mean    sd      10%     50%     90%  
## mean_PPD  0.0601  0.0490 -0.0041  0.0601  0.1236
## 
## The mean_ppd is the sample average posterior predictive distribution of the outcome variable (for details see help('summary.stanreg')).
## 
## MCMC diagnostics
##               mcse   Rhat   n_eff
## (Intercept)   0.0006 1.0005 3752 
## GOOGL         0.0004 1.0015 3777 
## MSFT          0.0005 0.9999 3995 
## TSLA          0.0002 1.0004 3848 
## AMZN          0.0004 1.0008 3690 
## sigma         0.0004 0.9996 3591 
## mean_PPD      0.0008 1.0006 3973 
## log-posterior 0.0325 1.0012 2742 
## 
## For each parameter, mcse is Monte Carlo standard error, n_eff is a crude measure of effective sample size, and Rhat is the potential scale reduction factor on split chains (at convergence Rhat=1).

7.3 Tabla de Parámetros Posteriores

coef_summary <- as.data.frame(summary(modelo_bayes))
coef_summary$Parametro <- rownames(coef_summary)
coef_summary <- coef_summary[, c(ncol(coef_summary), 1:(ncol(coef_summary)-1))]
rownames(coef_summary) <- NULL

kable(coef_summary[, 1:5], digits = 4, 
      caption = "Tabla 4: Estimaciones posteriores de parámetros del modelo")
Tabla 4: Estimaciones posteriores de parámetros del modelo
Parametro mean mcse sd 10%
(Intercept) 0.0182 0.0006 0.0349 -0.0260
GOOGL 0.1968 0.0004 0.0247 0.1653
MSFT 0.3161 0.0005 0.0300 0.2774
TSLA 0.1023 0.0002 0.0108 0.0884
AMZN 0.0998 0.0004 0.0230 0.0702
sigma 1.2485 0.0004 0.0244 1.2177
mean_PPD 0.0601 0.0008 0.0490 -0.0041
log-posterior -2103.4195 0.0325 1.6995 -2105.7451

8. DIAGNÓSTICOS DE CONVERGENCIA MCMC

8.1 Extracción de Cadenas Posteriores

posterior_samples <- as.matrix(modelo_bayes)
n_iter <- nrow(posterior_samples)
n_chains <- 4
iter_per_chain <- n_iter / n_chains

cat("════════════════════════════════════════════════════\n")
## ════════════════════════════════════════════════════
cat("       INFORMACIÓN DE CADENAS MCMC\n")
##        INFORMACIÓN DE CADENAS MCMC
cat("════════════════════════════════════════════════════\n")
## ════════════════════════════════════════════════════
cat("Total de iteraciones guardadas:", n_iter, "\n")
## Total de iteraciones guardadas: 4000
cat("Número de cadenas independientes:", n_chains, "\n")
## Número de cadenas independientes: 4
cat("Iteraciones efectivas por cadena:", iter_per_chain, "\n")
## Iteraciones efectivas por cadena: 1000
cat("════════════════════════════════════════════════════\n")
## ════════════════════════════════════════════════════

8.2 Trazas de Cadenas (Convergencia Visual)

parametros <- c("(Intercept)", "GOOGL", "MSFT", "TSLA", "AMZN", "sigma")
par(mfrow = c(3, 2), mar = c(4, 4, 3, 1))

for(param in parametros) {
  valores <- posterior_samples[, param]
  
  chain1 <- valores[1:iter_per_chain]
  chain2 <- valores[(iter_per_chain+1):(2*iter_per_chain)]
  chain3 <- valores[(2*iter_per_chain+1):(3*iter_per_chain)]
  chain4 <- valores[(3*iter_per_chain+1):(4*iter_per_chain)]
  
  plot(1:iter_per_chain, chain1, type = "l", col = colores[1], 
       ylim = range(valores),
       main = paste("Traza MCMC:", param),
       xlab = "Iteración", ylab = "Valor del parámetro",
       cex.main = 1.1, font.main = 2)
  lines(1:iter_per_chain, chain2, col = colores[2])
  lines(1:iter_per_chain, chain3, col = colores[3])
  lines(1:iter_per_chain, chain4, col = colores[4])
  legend("topright", legend = paste("Cadena", 1:4), 
         col = colores[1:4], lwd = 1, bty = "n", cex = 0.8)
}

par(mfrow = c(1, 1))

Interpretación diagnóstica: Las cadenas exhiben: 1. Convergencia rápida tras periodo de calentamiento 2. Mezcla adecuada (mixing) entre cadenas 3. Estacionariedad visual (ausencia de tendencias sistemáticas) 4. Superposición entre cadenas, indicando convergencia a distribución estacionaria común

8.3 Distribuciones Posteriores

par(mfrow = c(3, 2), mar = c(4, 4, 3, 1))

for(param in parametros) {
  valores <- posterior_samples[, param]
  
  dens <- density(valores)
  plot(dens, main = paste("Distribución Posterior:", param),
       xlab = "Valor del parámetro", ylab = "Densidad posterior", lwd = 2,
       cex.main = 1.1, font.main = 2)
  polygon(dens, col = rgb(0.2, 0.4, 0.8, 0.3), border = NA)
  
  abline(v = mean(valores), col = "red", lwd = 2, lty = 2)
  abline(v = median(valores), col = "blue", lwd = 2, lty = 3)
  
  ci <- quantile(valores, c(0.025, 0.975))
  abline(v = ci, col = "darkgreen", lwd = 2, lty = 4)
  
  legend("topright", 
         legend = c("Media posterior", "Mediana", "IC 95%"),
         col = c("red", "blue", "darkgreen"),
         lwd = 2, lty = c(2, 3, 4), bty = "n", cex = 0.8)
}

par(mfrow = c(1, 1))

8.4 Intervalos de Credibilidad Bayesianos

params_interes <- c("GOOGL", "MSFT", "TSLA", "AMZN")
medias <- numeric(length(params_interes))
ic_lower <- numeric(length(params_interes))
ic_upper <- numeric(length(params_interes))

for(i in 1:length(params_interes)) {
  valores <- posterior_samples[, params_interes[i]]
  medias[i] <- mean(valores)
  ci <- quantile(valores, c(0.025, 0.975))
  ic_lower[i] <- ci[1]
  ic_upper[i] <- ci[2]
}

par(mar = c(5, 8, 4, 2))
plot(medias, 1:length(params_interes), xlim = range(c(ic_lower, ic_upper)),
     yaxt = "n", pch = 19, cex = 1.5, col = "blue",
     xlab = "Valor del coeficiente", ylab = "",
     main = "Figura 10: Intervalos de Credibilidad Posteriores (95%)",
     cex.main = 1.3, font.main = 2)
axis(2, at = 1:length(params_interes), labels = params_interes, las = 1)
segments(ic_lower, 1:length(params_interes), 
         ic_upper, 1:length(params_interes), 
         lwd = 3, col = "darkblue")
abline(v = 0, lty = 2, col = "red", lwd = 2)
grid()

Interpretación: Coeficientes cuyos intervalos no incluyen cero presentan evidencia sustancial de asociación. La línea vertical en cero sirve como referencia para la hipótesis nula de independencia.


9. VALIDACIÓN PREDICTIVA

9.1 Chequeo Predictivo Posterior

y_obs <- datos_modelo$AAPL
y_pred <- posterior_predict(modelo_bayes)

y_pred_mean <- apply(y_pred, 2, mean)
y_pred_lower <- apply(y_pred, 2, quantile, 0.025)
y_pred_upper <- apply(y_pred, 2, quantile, 0.975)

plot(1:length(y_obs), y_obs, pch = 19, col = rgb(0, 0, 0, 0.5),
     xlab = "Observación (índice temporal)", ylab = "Retorno AAPL (%)",
     main = "Figura 11: Valores Observados vs Predicciones Posteriores",
     cex.main = 1.3, font.main = 2, ylim = range(c(y_obs, y_pred_lower, y_pred_upper)))
points(1:length(y_obs), y_pred_mean, pch = 19, col = rgb(1, 0, 0, 0.5), cex = 0.8)
segments(1:length(y_obs), y_pred_lower, 1:length(y_obs), y_pred_upper,
         col = rgb(0.5, 0.5, 1, 0.3), lwd = 0.5)
legend("topright", legend = c("Datos observados", "Predicción media", "IC predictivo 95%"),
       pch = c(19, 19, NA), lwd = c(NA, NA, 2),
       col = c("black", "red", rgb(0.5, 0.5, 1, 0.5)), bty = "n")
grid()

9.2 Comparación de Densidades

dens_obs <- density(y_obs)

set.seed(123)
n_rep <- 50
replicas <- sample(1:nrow(y_pred), n_rep)

plot(dens_obs, lwd = 3, col = "black",
     main = "Figura 12: Chequeo Predictivo Posterior - Densidades",
     xlab = "Retorno AAPL (%)", ylab = "Densidad",
     cex.main = 1.3, font.main = 2, ylim = c(0, max(dens_obs$y)*1.2))

for(i in replicas) {
  dens_rep <- density(y_pred[i, ])
  lines(dens_rep, col = rgb(0.5, 0.5, 1, 0.3), lwd = 0.5)
}

lines(dens_obs, lwd = 3, col = "black")
legend("topright", legend = c("Datos observados", "Réplicas posteriores (n=50)"),
       lwd = c(3, 2), col = c("black", rgb(0.5, 0.5, 1, 0.5)), bty = "n")

Evaluación: La densidad observada se encuentra dentro del rango de réplicas posteriores, sugiriendo ausencia de discrepancias sistemáticas entre modelo y datos.


10. DIAGNÓSTICO DE RESIDUOS

residuos <- residuals(modelo_bayes)
ajustados <- fitted(modelo_bayes)

par(mfrow = c(2, 2), mar = c(4, 4, 3, 1))

# 1. Residuos vs Ajustados
plot(ajustados, residuos, pch = 19, col = rgb(0, 0, 1, 0.5),
     main = "Residuos vs Valores Ajustados",
     xlab = "Valores Ajustados (%)", ylab = "Residuos (%)",
     cex.main = 1.1, font.main = 2)
abline(h = 0, col = "red", lwd = 2, lty = 2)
lowess_fit <- lowess(ajustados, residuos)
lines(lowess_fit, col = "blue", lwd = 2)
grid()

# 2. Q-Q Plot
qqnorm(residuos, pch = 19, col = rgb(0, 0, 1, 0.5),
       main = "Q-Q Plot: Normalidad de Residuos",
       cex.main = 1.1, font.main = 2)
qqline(residuos, col = "red", lwd = 2)

# 3. Histograma
hist(residuos, breaks = 50, col = "lightblue", border = "white",
     main = "Distribución de Residuos",
     xlab = "Residuos (%)", ylab = "Frecuencia",
     cex.main = 1.1, font.main = 2)
abline(v = 0, col = "red", lwd = 2, lty = 2)
curve(dnorm(x, mean(residuos), sd(residuos)) * length(residuos) * diff(hist(residuos, plot=FALSE)$breaks)[1],
      add = TRUE, col = "darkblue", lwd = 2)

# 4. Observados vs Predichos
plot(y_obs, ajustados, pch = 19, col = rgb(0, 0, 1, 0.5),
     main = "Valores Observados vs Predichos",
     xlab = "Observados (%)", ylab = "Predichos (%)",
     cex.main = 1.1, font.main = 2)
abline(a = 0, b = 1, col = "red", lwd = 2, lty = 2)
grid()

par(mfrow = c(1, 1))

Evaluación diagnóstica: - Panel superior izquierdo: Ausencia de patrones sistemáticos confirma homocedasticidad aproximada - Panel superior derecho: Desviaciones en colas sugieren leptocurtosis residual - Panel inferior izquierdo: Distribución aproximadamente simétrica centrada en cero - Panel inferior derecho: Puntos sobre línea 45° indican ajuste razonable


11. BONDAD DE AJUSTE

11.1 Coeficiente de Determinación Bayesiano

r2 <- bayes_R2(modelo_bayes)

cat("════════════════════════════════════════════════════════════════\n")
## ════════════════════════════════════════════════════════════════
cat("         COEFICIENTE DE DETERMINACIÓN BAYESIANO (R²)\n")
##          COEFICIENTE DE DETERMINACIÓN BAYESIANO (R²)
cat("════════════════════════════════════════════════════════════════\n\n")
## ════════════════════════════════════════════════════════════════
cat(sprintf("Media posterior:           E[R² | datos] = %.4f\n", mean(r2)))
## Media posterior:           E[R² | datos] = 0.4887
cat(sprintf("Mediana posterior:         Med[R²]       = %.4f\n", median(r2)))
## Mediana posterior:         Med[R²]       = 0.4890
cat(sprintf("Desviación estándar:       SD[R²]        = %.4f\n", sd(r2)))
## Desviación estándar:       SD[R²]        = 0.0173
cat(sprintf("Intervalo de credibilidad: IC 95%%        = [%.4f, %.4f]\n\n", 
            quantile(r2, 0.025), quantile(r2, 0.975)))
## Intervalo de credibilidad: IC 95%        = [0.4540, 0.5221]
cat("════════════════════════════════════════════════════════════════\n\n")
## ════════════════════════════════════════════════════════════════
cat("INTERPRETACIÓN ECONÓMICA:\n")
## INTERPRETACIÓN ECONÓMICA:
cat(sprintf("El modelo explica aproximadamente %.1f%% de la variabilidad\n", median(r2)*100))
## El modelo explica aproximadamente 48.9% de la variabilidad
cat(sprintf("en los retornos de AAPL, dejando %.1f%% atribuible a factores\n", (1-median(r2))*100))
## en los retornos de AAPL, dejando 51.1% atribuible a factores
cat("idiosincráticos o no capturados por las variables explicativas.\n")
## idiosincráticos o no capturados por las variables explicativas.
cat("════════════════════════════════════════════════════════════════\n")
## ════════════════════════════════════════════════════════════════
hist(r2, breaks = 50, col = "lightgreen", border = "white",
     main = "Figura 13: Distribución Posterior del R² Bayesiano",
     xlab = "R² (Coeficiente de Determinación)", ylab = "Densidad Posterior",
     cex.main = 1.3, font.main = 2, prob = TRUE)
abline(v = median(r2), col = "red", lwd = 3, lty = 2)
abline(v = quantile(r2, c(0.025, 0.975)), col = "blue", lwd = 2, lty = 3)
legend("topleft", legend = c("Mediana", "IC 95%"),
       col = c("red", "blue"), lwd = c(3, 2), lty = c(2, 3), bty = "n")


12. INTERPRETACIÓN ECONOMÉTRICA Y ECONÓMICA

12.1 Análisis de Coeficientes Estimados

Los coeficientes posteriores estimados admiten una interpretación económica directa en términos de elasticidades de co-movimiento. Específicamente, \(\hat{\beta}_j\) representa la variación esperada porcentual en el retorno de AAPL ante un incremento unitario (1%) en el retorno del activo \(j\), manteniendo constantes los demás factores (ceteris paribus).

coefs <- coef(modelo_bayes)
post_samples <- as.matrix(modelo_bayes)

prob_positivo <- apply(post_samples[, c("GOOGL", "MSFT", "TSLA", "AMZN")], 2, 
                       function(x) mean(x > 0))

cat("═══════════════════════════════════════════════════════════════\n")
## ═══════════════════════════════════════════════════════════════
cat("    ANÁLISIS DE COEFICIENTES POSTERIORES Y SIGNIFICANCIA\n")
##     ANÁLISIS DE COEFICIENTES POSTERIORES Y SIGNIFICANCIA
cat("═══════════════════════════════════════════════════════════════\n\n")
## ═══════════════════════════════════════════════════════════════
for(var in c("GOOGL", "MSFT", "TSLA", "AMZN")) {
  coef_val <- coefs[var]
  ci <- quantile(post_samples[, var], c(0.025, 0.975))
  prob_pos <- prob_positivo[var]
  
  cat(sprintf("%-8s: β = %7.4f  [IC 95%%: %7.4f, %7.4f]\n", 
              var, coef_val, ci[1], ci[2]))
  cat(sprintf("          P(β > 0 | datos) = %.4f\n", prob_pos))
  cat(sprintf("          Interpretación: Un aumento de 1%% en %s se asocia\n", var))
  cat(sprintf("          con una variación esperada de %.3f%% en AAPL\n\n", coef_val))
}
## GOOGL   : β =  0.1966  [IC 95%:  0.1478,  0.2449]
##           P(β > 0 | datos) = 1.0000
##           Interpretación: Un aumento de 1% en GOOGL se asocia
##           con una variación esperada de 0.197% en AAPL
## 
## MSFT    : β =  0.3167  [IC 95%:  0.2559,  0.3733]
##           P(β > 0 | datos) = 1.0000
##           Interpretación: Un aumento de 1% en MSFT se asocia
##           con una variación esperada de 0.317% en AAPL
## 
## TSLA    : β =  0.1021  [IC 95%:  0.0813,  0.1228]
##           P(β > 0 | datos) = 1.0000
##           Interpretación: Un aumento de 1% en TSLA se asocia
##           con una variación esperada de 0.102% en AAPL
## 
## AMZN    : β =  0.1002  [IC 95%:  0.0541,  0.1439]
##           P(β > 0 | datos) = 1.0000
##           Interpretación: Un aumento de 1% en AMZN se asocia
##           con una variación esperada de 0.100% en AAPL
cat("═══════════════════════════════════════════════════════════════\n")
## ═══════════════════════════════════════════════════════════════

12.2 Significancia Bayesiana

A diferencia del marco frecuentista basado en valores-p, la inferencia bayesiana permite cuantificar directamente la probabilidad posterior de hipótesis específicas. Los intervalos de credibilidad al 95% que no contienen el valor cero proporcionan evidencia sustancial de asociación.

La probabilidad posterior \(P(\beta_j > 0 \mid \text{datos})\) cuantifica la evidencia a favor de co-movimientos positivos. Valores superiores a 0.95 se consideran evidencia fuerte en el paradigma bayesiano.

12.3 Implicaciones para la Teoría de Portafolios

Los coeficientes positivos estimados son consistentes con la existencia de factores de riesgo sistemático compartidos entre empresas del sector tecnológico. Desde la perspectiva del Capital Asset Pricing Model (CAPM) y modelos multifactoriales (Fama-French), estos resultados sugieren exposiciones comunes a factores macroeconómicos subyacentes, tales como:

  1. Riesgo tecnológico sectorial: Shocks regulatorios (antimonopolio, privacidad), ciclos de innovación disruptiva
  2. Condiciones macroeconómicas: Política monetaria (tasas de interés), expectativas de crecimiento económico
  3. Sentiment del mercado: Preferencias intertemporales por activos de crecimiento vs. valor
  4. Factores de liquidez: Condiciones de financiamiento y profundidad de mercado

La magnitud moderada de los coeficientes (\(\beta \in [0.1, 0.3]\)) indica co-movimientos significativos pero no perfectos, lo que implica: - Oportunidades de diversificación intra-sectorial limitadas pero existentes - Persistencia de componentes idiosincráticos relevantes (riesgo específico de firma) - Necesidad de exposición multi-sectorial para diversificación efectiva

12.4 Análisis de Bondad de Ajuste

r2 <- bayes_R2(modelo_bayes)

cat("═══════════════════════════════════════════════════════════════\n")
## ═══════════════════════════════════════════════════════════════
cat("           EVALUACIÓN DE CAPACIDAD EXPLICATIVA\n")
##            EVALUACIÓN DE CAPACIDAD EXPLICATIVA
cat("═══════════════════════════════════════════════════════════════\n\n")
## ═══════════════════════════════════════════════════════════════
cat(sprintf("E[R² | datos]     = %.4f\n", mean(r2)))
## E[R² | datos]     = 0.4887
cat(sprintf("Mediana[R²]       = %.4f\n", median(r2)))
## Mediana[R²]       = 0.4890
cat(sprintf("DE[R²]            = %.4f\n", sd(r2)))
## DE[R²]            = 0.0173
cat(sprintf("IC 95%%            = [%.4f, %.4f]\n\n", 
            quantile(r2, 0.025), quantile(r2, 0.975)))
## IC 95%            = [0.4540, 0.5221]
cat("═══════════════════════════════════════════════════════════════\n")
## ═══════════════════════════════════════════════════════════════
cat("INTERPRETACIÓN:\n")
## INTERPRETACIÓN:
cat(sprintf("• Variabilidad explicada: %.1f%% (variación sistemática)\n", 
            median(r2)*100))
## • Variabilidad explicada: 48.9% (variación sistemática)
cat(sprintf("• Variabilidad residual:  %.1f%% (componente idiosincrático)\n", 
            (1-median(r2))*100))
## • Variabilidad residual:  51.1% (componente idiosincrático)
cat("\nEl R² moderado es característico de modelos en diferencias\n")
## 
## El R² moderado es característico de modelos en diferencias
cat("(retornos) con datos de alta frecuencia, donde el ruido\n")
## (retornos) con datos de alta frecuencia, donde el ruido
cat("idiosincrático domina sobre señales sistemáticas.\n")
## idiosincrático domina sobre señales sistemáticas.
cat("═══════════════════════════════════════════════════════════════\n")
## ═══════════════════════════════════════════════════════════════

El R² bayesiano moderado (típicamente 0.30-0.50 en datos financieros diarios) es esperable y refleja:

  1. Alta relación señal-ruido: Series financieras incorporan rápidamente información (eficiencia semi-fuerte)
  2. Componentes idiosincráticos relevantes: Noticias específicas de firma no capturadas por factores sistemáticos
  3. Limitaciones del modelo lineal: Posibles no-linealidades o efectos de umbral no modelados

Un ajuste perfecto (R² ≈ 1) sería indicativo de sobreajuste (overfitting) o multicolinealidad perfecta, comprometiendo capacidad de generalización fuera de muestra.


13. CONCLUSIONES Y CONTRIBUCIONES

13.1 Síntesis de Hallazgos Principales

El presente estudio ha desarrollado e implementado un marco metodológico bayesiano completo para el análisis de interdependencias entre activos financieros de alta capitalización del sector tecnológico estadounidense. Los resultados empíricos revelan evidencia sustancial de co-movimientos positivos entre los retornos de Apple Inc. y otros activos tecnológicos líderes (Google, Microsoft, Amazon), con magnitudes de coeficientes en el rango \(\beta \in [0.10, 0.35]\), estadísticamente diferenciables de cero según criterios bayesianos.

Los diagnósticos MCMC exhaustivos—incluyendo inspección visual de trazas, análisis de autocorrelación, y estadísticos de Gelman-Rubin—confirman la convergencia satisfactoria de las cuatro cadenas independientes hacia la distribución posterior estacionaria, validando la fiabilidad computacional de las inferencias. Los chequeos predictivos posteriores (posterior predictive checks) no revelan discrepancias sistemáticas entre datos observados y réplicas simuladas del modelo, sugiriendo especificación adecuada dentro de los límites de un modelo lineal gaussiano.

13.2 Aportaciones Metodológicas

Este trabajo contribuye a la literatura en econometría financiera y estadística bayesiana aplicada en tres dimensiones principales:

13.2.1 Implementación Reproducible y Transparente

Se proporciona código completamente documentado y auto-contenido para todos los análisis, desde la adquisición de datos hasta la validación predictiva. Esta transparencia metodológica facilita: - Replicación exacta de resultados por investigadores independientes - Extensión del marco a otros activos, periodos, o especificaciones alternativas - Uso pedagógico en contextos de formación avanzada en econometría

13.2.2 Rigor en Diagnósticos y Validación

Se aplican exhaustivos diagnósticos de convergencia MCMC y chequeos predictivos posteriores, elementos frecuentemente omitidos en aplicaciones empíricas pero cruciales para inferencias válidas. Esta rigurosidad incluye: - Evaluación multi-dimensional de convergencia (trazas, autocorrelación, Rhat) - Validación predictiva mediante comparación de distribuciones observadas vs. replicadas - Análisis de sensibilidad implícito mediante inspección de distribuciones posteriores completas

13.2.3 Cuantificación Completa de Incertidumbre

A diferencia de enfoques frecuentistas punto-estimación, se caracteriza exhaustivamente la incertidumbre paramétrica y predictiva mediante distribuciones posteriores completas. Esto permite: - Construcción de intervalos de credibilidad con interpretación probabilística directa - Cálculo de probabilidades posteriores de hipótesis específicas (ej., \(P(\beta > 0 \mid \text{datos})\)) - Incorporación formal de incertidumbre en procesos de toma de decisiones

13.3 Implicaciones para la Práctica Financiera

Los resultados empíricos y el marco metodológico presentado tienen implicaciones directas para múltiples dominios de la práctica financiera:

13.3.1 Gestión de Riesgos de Portafolio

Las correlaciones estimadas con cuantificación de incertidumbre informan directamente: - Modelos de Value-at-Risk (VaR) y Expected Shortfall (ES) para portafolios tecnológicos - Estrategias de cobertura (hedging) mediante posiciones compensatorias - Stress testing bajo escenarios de shocks sectoriales

13.3.2 Construcción y Optimización de Portafolios

Los coeficientes de co-movimiento estimados implican: - Beneficios limitados de diversificación intra-sectorial tecnológica - Necesidad de exposición multi-sectorial para reducción efectiva de riesgo - Trade-offs cuantificables entre retorno esperado y reducción de volatilidad

13.3.3 Pricing y Valoración de Derivados

Las dependencias multivariadas estimadas constituyen inputs esenciales para: - Modelos de valoración de opciones sobre cestas (basket options) - Productos estructurados con payoffs dependientes de múltiples subyacentes - Estrategias de arbitraje estadístico basadas en divergencias de correlación

13.3.4 Estrategias de Trading Cuantitativo

Los intervalos de credibilidad bayesianos permiten: - Construcción de estrategias long-short con gestión explícita de riesgo - Sizing de posiciones basado en probabilidades posteriores - Evaluación de señales de trading incorporando incertidumbre paramétrica

13.4 Limitaciones y Extensiones Futuras

13.4.1 Limitaciones del Estudio Actual

El presente análisis está sujeto a las siguientes limitaciones metodológicas y sustantivas:

Supuestos Estructurales: 1. Linealidad: El modelo asume relaciones lineales constantes, potencialmente inadecuadas para capturar: - Dependencias no lineales o efectos de umbral - Asimetrías en co-movimientos (dependencia direccional) - Tail dependence en eventos extremos

  1. Homocedasticidad condicional: Se asume varianza constante, ignorando:
    • Clusters de volatilidad (efectos ARCH/GARCH)
    • Heterocedasticidad condicional autorregresiva
    • Cambios de régimen en volatilidad
  2. Independencia temporal: No se modelan explícitamente:
    • Autocorrelaciones en retornos o volatilidades
    • Efectos de memoria larga (long memory)
    • Dinámicas de ajuste gradual
  3. Estabilidad estructural: Se asume constancia paramétrica, sin considerar:
    • Quiebres estructurales (structural breaks)
    • Variación temporal de coeficientes
    • Efectos de eventos discretos (earnings announcements, policy changes)

Limitaciones de Datos: - Periodo muestral específico puede no generalizar a otros contextos temporales - Datos diarios omiten información intra-diaria relevante (microestructura) - Sesgos potenciales de supervivencia (survivorship bias) en selección de activos

13.4.2 Direcciones de Investigación Futura

Extensiones naturales y prometedoras incluyen:

Modelos Multivariados Avanzados: 1. VAR Bayesianos con Heterocedasticidad Estocástica: Capturar dependencias dinámicas y volatilidad cambiante 2. Modelos de Factores Latentes: Identificar estructuras de riesgo sistemático subyacentes 3. Cópulas Bayesianas: Modelar estructuras de dependencia en colas mediante cópulas paramétricas (t-Student, Clayton, Gumbel)

Extensiones No-Lineales: 1. Modelos de Cambio de Régimen (Markov-Switching): Permitir alternancia entre estados de alta/baja volatilidad 2. Threshold VAR Bayesianos: Capturar dinámicas asimétricas condicionadas a umbrales 3. Gaussian Process Regression: Flexibilidad no paramétrica con cuantificación de incertidumbre

Incorporación de Alta Frecuencia: 1. Análisis con datos tick-by-tick: Explotar información intra-diaria 2. Volatilidad realizada: Utilizar medidas no paramétricas de volatilidad integrada 3. Microestructura de mercado: Modelar spreads bid-ask, impacto de órdenes, fragmentación

Validación Predictiva Rigurosa: 1. Validación cruzada temporal: Evaluación out-of-sample sistemática 2. Backtesting de estrategias: Implementación en datos no utilizados en estimación 3. Model comparison bayesiano: Factor de Bayes para selección entre especificaciones alternativas

Aplicaciones Específicas: 1. Portfolio optimization bajo incertidumbre: Incorporar distribuciones posteriores en optimización de Markowitz 2. Dynamic hedging: Estrategias de cobertura adaptativas basadas en parámetros cambiantes 3. Risk parity bayesiano: Asignación de capital basada en contribución al riesgo con incertidumbre

13.5 Consideraciones Finales

La econometría bayesiana representa un paradigma robusto, flexible y conceptualmente coherente para el análisis de fenómenos financieros caracterizados por incertidumbre fundamental. El marco metodológico presentado equilibra rigor estadístico con interpretabilidad económica, proporcionando un template valioso tanto para investigadores académicos como para practitioners en instituciones financieras.

La democratización de herramientas computacionales modernas—particularmente el ecosistema Stan (rstanarm, brms, rstan) y lenguajes probabilísticos emergentes—ha removido barreras técnicas que históricamente limitaban la adopción de métodos bayesianos. Esta accesibilidad, combinada con ventajas conceptuales inherentes (incorporación de información a priori, cuantificación completa de incertidumbre, interpretación probabilística directa), augura adopción creciente en investigación aplicada y práctica profesional.

Se espera que estudios futuros amplíen este marco para incorporar complejidades adicionales relevantes en contextos aplicados, particularmente no-linealidades, heterocedasticidad condicional, y estructuras de dependencia en colas. La convergencia entre avances metodológicos, capacidad computacional creciente, y disponibilidad de datos de alta calidad posiciona la econometría bayesiana como herramienta central en el análisis cuantitativo de mercados financieros del siglo XXI.


14. REFERENCIAS BIBLIOGRÁFICAS

Metodología Bayesiana y Computacional

  • Carpenter, B., Gelman, A., Hoffman, M. D., Lee, D., Goodrich, B., Betancourt, M., Brubaker, M., Guo, J., Li, P., & Riddell, A. (2017). Stan: A probabilistic programming language. Journal of Statistical Software, 76(1), 1-32. https://doi.org/10.18637/jss.v076.i01

  • Gelman, A., Carlin, J. B., Stern, H. S., Dunson, D. B., Vehtari, A., & Rubin, D. B. (2013). Bayesian Data Analysis (3rd ed.). Chapman and Hall/CRC Press. https://doi.org/10.1201/b16018

  • Gelman, A., Jakulin, A., Pittau, M. G., & Su, Y. S. (2008). A weakly informative default prior distribution for logistic and other regression models. The Annals of Applied Statistics, 2(4), 1360-1383. https://doi.org/10.1214/08-AOAS191

  • Gelman, A., & Rubin, D. B. (1992). Inference from iterative simulation using multiple sequences. Statistical Science, 7(4), 457-472.

  • Geweke, J., & Whiteman, C. (2006). Bayesian forecasting. In G. Elliott, C. Granger, & A. Timmermann (Eds.), Handbook of Economic Forecasting (Vol. 1, pp. 3-80). Elsevier.

  • Hoffman, M. D., & Gelman, A. (2014). The No-U-Turn sampler: Adaptively setting path lengths in Hamiltonian Monte Carlo. Journal of Machine Learning Research, 15(1), 1593-1623.

Econometría Financiera

  • Campbell, J. Y., Lo, A. W., & MacKinlay, A. C. (1997). The Econometrics of Financial Markets. Princeton University Press.

  • Christoffersen, P. F. (2012). Elements of Financial Risk Management (2nd ed.). Academic Press.

  • Tsay, R. S. (2010). Analysis of Financial Time Series (3rd ed.). John Wiley & Sons.

  • Fama, E. F., & French, K. R. (1993). Common risk factors in the returns on stocks and bonds. Journal of Financial Economics, 33(1), 3-56.

Modelos Multivariados y Dependencia

  • Engle, R. F. (2002). Dynamic conditional correlation: A simple class of multivariate generalized autoregressive conditional heteroskedasticity models. Journal of Business & Economic Statistics, 20(3), 339-350.

  • Joe, H. (2014). Dependence Modeling with Copulas. Chapman and Hall/CRC.

  • Lütkepohl, H. (2005). New Introduction to Multiple Time Series Analysis. Springer.

Software y Recursos Computacionales

Fuentes de Datos


Nota sobre Reproducibilidad

Declaración de Transparencia Computacional:

Todo el código utilizado en este análisis está completamente contenido en el documento fuente R Markdown, garantizando reproducibilidad exacta de todos los resultados, figuras y tablas presentados. Los datos son descargados programáticamente desde fuentes públicas (Yahoo Finance), asegurando actualización automática y trazabilidad completa.

Configuración del Entorno Computacional: - R versión: 4.4.0 - Sistema operativo: Windows - Fecha de ejecución: 06 de febrero de 2026 - Semilla aleatoria: 2024 (fijada para reproducibilidad MCMC)

Disponibilidad de Materiales: El código fuente (.Rmd) y documento compilado (.html) están disponibles bajo solicitud al autor para fines de replicación, extensión, o uso pedagógico.


Autor: JEEL CUEVA
Afiliación: Universidad Nacional de Ingeniería (UNI - Perú) Contacto: / Fecha de elaboración: 06 de febrero de 2026


Palabras clave: Econometría bayesiana, MCMC, Stan, mercados financieros, correlaciones, modelos multivariados, análisis de riesgo, activos tecnológicos

Clasificación JEL: C11 (Inferencia bayesiana), C32 (Series temporales múltiples), C58 (Modelado financiero), G11 (Elección de portafolio)


Este documento ha sido generado utilizando R Markdown y el sistema de publicación reproducible knitr. Todas las tablas, figuras y estadísticos son producidos dinámicamente a partir del código fuente, garantizando consistencia y trazabilidad completa desde datos crudos hasta resultados finales.