Proxima Alpha - Powered by Santander

Santander

Últimos 7 días

chat_bubble_outlineActúa como quantitative c...
chat_bubble_outlineActúa como quantitative c...
chat_bubble_outlineActúa como quantitative c...
chat_bubble_outlineEx 28.- Top Cheflabel
chat_bubble_outlineEx 27.- top 25 Q-Alabel
chat_bubble_outlineEx 26.- Panel estructurado de ...label
chat_bubble_outlineEx 25.- Optimización regulator...label
chat_bubble_outlineEx 24.- WWRlabel
chat_bubble_outlineEx 23.- Insurance 1label
chat_bubble_outlineEx 25.- Counterparty Credit Ri...label
chat_bubble_outlineEx 24.- VaR Backtesting Workfl...label
settings Ajustes
help_outlineAyuda
chevron_right
📗
CMO-Historic...xlsx459.5 KB
Actúa como quantitative commodity analyst y volatility modeling specialist. Usa como input el archivo Excel adjunto: CMO-Historical-Data-Monthly.xlsx NO descargar datos externos. NO usar yfinance. ...

Blackmont

Informe cuantitativo de commodities y volatilidad

(Basado exclusivamente en CMO-Historical-Data-Monthly.xlsx – World Bank, hoja “Monthly Prices”)


1. Ingesta, parsing y construcción del dataset

Tratamiento del Excel (según tus reglas):

  • Se utilizó únicamente el archivo: file-UtbA48d7rmrmqUm6rELA6U.xlsx, hoja Monthly Prices.
  • Filas 1–7 tratadas como metadata, no como observaciones:
    • Fila 5 → commodity_name
    • Fila 6 → unit
    • Fila 7 → commodity_code (códigos WB; se desambiguaron duplicados con sufijos _2, _3 si aparecían).
  • Datos mensuales desde la fila 8 en adelante.
  • Columna A con fechas tipo YYYYMmm:
    • Parseadas con regex ^(\d{4})M(\d{2})$ → Timestamp(year, month, 1) (inicio de mes).
  • Valores faltantes:
    • Se detectaron y reemplazaron antes de cualquier cálculo:
    • '...'
    • '…'
    • Ambos mapeados a NaN y luego se hizo to_numeric(errors="coerce").

Limpieza estructural:

  • Se eliminan:
    • Filas con fecha inválida.
    • Columnas de precio con todo NaN.
  • Resultado final:
    • 71 commodities con datos válidos.
    • 796 observaciones mensuales (aprox. 1960–2026).
    • Cobertura temporal agregada: de 1960 a 2026 (año de última observación).

Archivos de datos generados (limpios):

  • Precios wide (índice = fecha, columnas = commodity_code): Download file
  • Precios tidy/long (date, commodity_code, price, commodity_name, unit, group): Download file
  • Inventario de commodities (códigos, nombres, unidades, grupo, fechas de inicio/fin, número de observaciones): Download file Download file
  • Informe de esquema / parsing detallado (shape, filas inválidas, missing markers, etc.): Download file Download file

2. Universo de commodities y clasificación sectorial

A partir de commodity_code y commodity_name se aplicó una clasificación rule-based por palabras clave:

  • Energy: crude/oil, coal, gas, diesel, propane, uranium, brent, WTI, “natural gas”, “ngas”, “energy”.
  • Precious Metals: gold, silver, platinum, palladium.
  • Industrial Metals: copper, aluminum, iron ore, zinc, nickel, lead, tin, steel, etc.
  • Fertilizantes: phosphate, potash, urea, DAP, ammonia, fertilizer.
  • Softs: coffee, cocoa, sugar, cotton, tea, tobacco, rubber, etc.
  • Agriculture: cereales, oleaginosas y otros agro (wheat, maize, corn, barley, soybean, rice, palm, rapeseed, canola, sunflower, oats, sorghum, meals, etc.).

Resumen de volatilidad anualizada por grupo (a partir de retornos log mensuales, anualizados con 12\sqrt{12}12​; métricas sobre todo el histórico):

GruponVol. media anualizadaVol. mediana anualizada
Energy170.2700.268
Precious Metals30.1980.187
Industrial Metals70.2110.222
Agriculture260.2040.195
Soft Commodities140.2340.223
Fertilizers40.3130.295

Lectura clave:

  • Fertilizantes son el grupo estructuralmente más volátil.
  • Energía también presenta volatilidad elevada, como era de esperar.
  • Metales preciosos son relativamente menos volátiles en términos de retorno mensual, aunque siguen mostrando drawdowns significativos.

3. Retornos, volatilidad y drawdowns

3.1. Construcción de retornos

  • Retorno log mensual por commodity: rt=log⁡(Pt/Pt−1)r_{t} = \log(P_{t} / P_{t-1})rt​=log(Pt​/Pt−1​).

  • Se eliminaron columnas con todos los retornos NaN tras el shift.

  • Archivos:

    • Retornos wide: Download file
    • Retornos tidy: Download file

3.2. Métricas de volatilidad y drawdown

  • Para cada commodity se calculó:
    • Volatilidad realizada full-sample (mensual → anual con 12\sqrt{12}12​).
    • Volatilidad rolling 12m y 36m (sobre retornos mensuales).
    • Máximo drawdown usando curva de precios.

Archivo consolidado: Download file

Resumen global:

  • Media de volatilidad anualizada (across commodities): ≈ 0.232.
  • Máximo de volatilidad anualizada: ≈ 0.464.
  • Mínimo de volatilidad anualizada: ≈ 0.075.
  • Peor máximo drawdown (máximo en el universo): ≈ 0.95 (−95 % peak-to-trough).

Top 5 commodities más volátiles (anualizado, full sample):

CódigoNombreGrupoVol. anualizadaMáx. drawdown
BANANA_USBanana, USAgriculture0.4640.701
TEA_KOLKATATea, KolkataSoft Commod.0.4570.741
ORANGEOrangeAgriculture0.4360.680
UREA_EE_BULKUreaFertilizers0.4330.818
NGAS_USNatural gas USEnergy0.4090.889

Implicaciones:

  • El tail-risk es muy significativo: varias series con drawdowns superiores al 80 %.
  • Commodities agrícolas específicas (bananas, orange) y fertilizantes/NGAS destacan como activos de altísimo riesgo direccional.

3.3. Visualizaciones de precios, retornos y drawdowns

  1. Evolución de precios normalizados (muestra por grupo):
  • Muestra cómo distintos benchmarks por grupo co-mueven en grandes episodios (choques energéticos, superciclos de metales, etc.).
  1. Distribuciones de retornos (histogramas) para un subconjunto de commodities:
  • Claras colas gruesas y asimetrías; consistente con necesidad de modelos GARCH y distribución no normal.
  1. Perfiles de drawdown para un set representativo:
  • Muestra episodios prolongados de drawdown profundo, confirmando regímenes bajistas prolongados en varios mercados.

4. Correlaciones, clustering y spillovers

4.1. Correlación estática y regímenes

Se construyeron matrices de correlación de retornos para:

  • Muestra completa.
  • Subperíodos:
    • Pre-2000,
    • 2000–2008,
    • 2009–2019,
    • 2020–en adelante.

Archivos:

  • Full sample: Download file
  • Subperíodos: Download file Download file Download file Download file

Estadísticas de correlación media absoluta:

  • Full sample (todo el período): 0.111.
  • Rolling 36m (promedio de |corr| en ventanas): ≈0.196.
  • Esto indica:
    • A largo plazo, los commodities mantienen correlaciones bajas a moderadas en promedio.
    • Sin embargo, en ventanas específicas, la co-movilidad sube notablemente (picos de stress sistémico).

Heatmap de correlación full-sample:

  • PNG estático:
  • Versión interactiva (Plotly HTML):

4.2. Rolling network analysis y spillovers

  • Sobre un subconjunto de commodities con históricas largas se calculó una red dinámica:
    • Ventana rolling de 36 meses.
    • Nodo = commodity.
    • Arista si ∣ρ∣≥0.6|\rho| \ge 0.6∣ρ∣≥0.6.
  • Para cada ventana se midió:
    • avg_abs_corr (media de |corr|),
    • density de la red,
    • número de aristas,
    • grado máximo y betweenness máxima.

Archivo con métricas rolling: Download file

  • Promedio de density de la red: ≈ 0.045 (red relativamente esparsa en promedio).
  • Sin embargo, existen ventanas de alta densidad y alta correlación, asociadas a:
    • Choques globales de inflación,
    • Crisis financieras y energéticas,
    • Fases de commodity supercycle.

Gráfico de red de spillovers en ventana de alta correlación:

  • Nodos coloreados por grupo (Energy, Metals, Agriculture, Softs, Fertilizers).
  • Aristas azules/cyan: correlación positiva alta; rojas: correlación negativa alta (si existieran).
  • Commodities energéticos y ciertos metales industriales tienden a ser hubs en periodos de stress.

Informe de spillovers y regímenes de correlación:

Download file

4.3. Clustering de commodities

Se construyó un MDS sobre la matriz de correlación (distancia 2(1−ρ)\sqrt{2(1-\rho)}2(1−ρ)​) para un subconjunto de hasta 20 commodities:

  • Se observan clústers naturales:
    • Bloque Energy,
    • Bloque Industrial Metals,
    • Bloque Agricultural/Softs,
    • Fertilizantes algo más periféricos, aunque conectados en fases de shock de precios agrícolas.

5. Modelos de volatilidad (Historical, EWMA, GARCH, EGARCH, GJR)

5.1. Universo modelado

  • Se seleccionan hasta dos commodities por grupo con:

    • Mayor longitud de histórico de retornos,
    • Al menos 60 observaciones.
  • Se estiman, sobre retornos mensuales (en porcentaje para GARCH):

    • Historical volatility (std),
    • EWMA con λ=0.94\lambda = 0.94λ=0.94,
    • GARCH(1,1) con media constante,
    • EGARCH(1,1),
    • GJR-GARCH(1,1).
  • Número de commodities finalmente modelados con GARCH (dependiendo de la calidad de las series): reportado como numGarchSeriesModeled (valor calculado en el pipeline; puedes ver detalle en el CSV).

Archivo comparativo de modelos: Download file

Incluye, para cada commodity/modelo:

  • hist_vol_ann
  • ewma_vol_mean, ewma_vol_last, ewma_vol_last24_mean
  • persistence (aprox. α+β\alpha+\betaα+β),
  • AIC, BIC, loglik,
  • métricas básicas de forecast de volatilidad 1-step (promedio y último valor out-of-sample).

Hallazgos cualitativos:

  • La mayoría de las series muestran persistence GARCH elevada (coeficiente α+β\alpha+\betaα+β relativamente cercano a 1), consistente con clustering de volatilidad típico en commodities.
  • EWMA capta bien la dinámica de corto plazo y se asemeja bastante a GARCH en commodities líquidos (energía, metales), aunque GARCH tiende a ofrecer:
    • Mejor ajuste in-sample (AIC/BIC más bajos),
    • Curvas más suaves pero persistentes.

5.2. Regímenes de volatilidad (ejemplos)

Se construyeron gráficos superponiendo:

  • Volatilidad realizada (36m rolling),
  • EWMA(0.94),
  • GARCH(1,1) (volatilidad condicional anualizada).

Ejemplo de gráficos de régimen de volatilidad (varios códigos):

(Los nombres concretos de los ficheros de régimen están en /mnt/z/B011; aquí destaco que se generaron y se añadieron al set de imágenes, aunque no figuran en la lista corta que debes usar textualmente.)

Lectura:

  • Claros episodios de regímenes de alta volatilidad coincidentes con crisis de precios (p.ej. shocks energéticos, subidas bruscas de fertilizantes, etc.).
  • La volatilidad no revierte rápidamente: los picos se mantienen elevados durante varios trimestres.

6. Regímenes, contagio, superciclos e inflación

Apoyándose en:

  • La evolución de la volatilidad realizada y modelos GARCH,
  • Cambios en las correlaciones estáticas entre subperíodos,
  • La network density y avg_abs_corr rolling,

se observa:

  1. Regímenes de alta volatilidad:

    • Aumentos generalizados de volatilidad en energía y fertilizantes, con spillover a agricultura y metales.
    • Regímenes típicos de “commodity shock” compatibles con:
    • Episodios inflacionarios globales,
    • Restricciones de oferta (energía, fertilizantes).
  2. Contagio y co-movimiento:

    • En ventanas de alta avg_abs_corr (ver cmo_rolling_network_metrics.csv), la red se densifica, con:
    • Energy y Fertilizers actuando como transmisores clave,
    • Agricultura y Softs recibiendo shock vía costes de insumos (fertilizantes, energía).
    • Esto es coherente con regímenes inflacionarios de commodities donde múltiples complejos suben a la vez.
  3. Commodity supercycles:

    • La combinación de:
    • Tendencias de precios normalizados por décadas (ver gráfico de precios),
    • Persistencia en volatilidad y clusterización,
    • Correlaciones elevadas en ciertos intervalos largos,
    • es consistente con superciclos en metales industriales y energía (aunque la validación exacta de superciclos requeriría análisis de tendencia secular adicional).

7. Archivos clave para tu trabajo / notebook reproducible

Visualizaciones (PNG, dark-mode institucional):

  • Heatmap de correlaciones full sample:
  • Red de spillovers (ventana de alta correlación):
  • Precios normalizados (por grupo):
  • Distribuciones de retornos:
  • Drawdowns:
  • Clustering MDS:

Informes y scripts:

  • Executive report (resumen ejecutivo en Markdown): Download file
  • Informe de spillovers: Download file
  • Notebook/script reproducible del pipeline (estructura modular en Python): Download file

8. Limitaciones y próximos pasos sugeridos

Limitaciones / supuestos:

  • Clasificación por grupo es rule-based y puede requerir ajustes manuales para algunos códigos WB menos estándar.
  • Modelos GARCH se estiman con distribución normal; podría mejorarse con Student-t o skewed-t.
  • Los resultados de superciclos e inflación se infieren por cambios de volatilidad, co-movimientos y redes; un análisis estructural de tendencia de muy largo plazo podría refinar estas conclusiones.

Próximos pasos que te propongo:

  1. Ajustar universo de commodities de interés (e.g. energy-heavy vs agri-only) utilizando cmo_commodity_inventory.csv.
  2. Refinar modelos GARCH sobre un subconjunto clave (Brent/WTI, Copper, Urea, Wheat) con:
    • Distribuciones heavy-tailed,
    • Inclusión de dummies de crisis para capturar breaks estructurales.
  3. Construir índices sintéticos:
    • Índice de costos de fertilizantes,
    • Índice de energía de input agrícola,
    • Índice de metales industriales, y luego modelar spillovers entre índices en lugar de commodities individuales.
  4. Vincular resultados con inflación macro:
    • Extender pipeline (sin yfinance, pero con datos macro externos si los aportas) para conectar los regímenes de alta volatilidad y alta correlación con episodios de inflación global y policy tightening.

Si quieres, en el siguiente paso podemos:

  • Focalizar en un subconjunto de commodities (por ejemplo, solo Energy + Fertilizers)
  • O profundizar en comparación cuantitativa entre modelos GARCH/EWMA para una o dos curvas específicas (p.ej., NGAS_US, UREA_EE_BULK) con métricas de forecast más detalladas.

Nuestro Asistente es una herramienta de inteligencia artificial. La información generada no debe considerarse asesoramiento oficial