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_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
chat_bubble_outlineEx 23.- VaR 2label
chat_bubble_outlineEx 22.- Merton - Credit Risklabel
chat_bubble_outlineEx 21.- Framework de análisis ...label
chat_bubble_outlineEx 20.- Claims, reserveslabel
chat_bubble_outlineEx 19.- credit card scoringlabel
chat_bubble_outlineEx 18.- credit scoring mediant...label
chat_bubble_outlineEx 17.- Mortality, Lee Carterlabel
chat_bubble_outlineEx 16.- business cycle analysi...label
chat_bubble_outlineEx 15.- Portfolio Optimizationlabel
chat_bubble_outlineEx 14.- First-to-Defaultlabel
chat_bubble_outlineEx 13.- Bond Optimizationlabel
chat_bubble_outlineEx 12.- Brinson-Fachler Attrib...label
chat_bubble_outlineEx 11.- Forecasting de tasas d...label
chat_bubble_outlineEx 10.- Asian Basketlabel
chat_bubble_outlineEx 9.- Price a Swaption Using ...label
chat_bubble_outlineEx 8.- Black-Karasinskilabel
chat_bubble_outlineEx 7.- Weather derivativeslabel
chat_bubble_outlineEx 6.- pricing sobre electrici...label
chat_bubble_outlineEx 5.- Option chainlabel
chat_bubble_outlineEx 4.- Semiconductorlabel
chat_bubble_outlineEx 3.- Hurricane Natural Catas...label
chat_bubble_outlineEx 2.- Catastrophe Risklabel
chat_bubble_outlineEx 1 .- Geopolitical risklabel
chat_bubble_outlineUnderstant it first: You ...
chat_bubble_outlineQuiero que entiendas en d...
chat_bubble_outlineQuiero que entiendas en d...
chat_bubble_outlinedibuja el precio de BBVA....
chat_bubble_outlinedibuja el precio de BBVA....
chat_bubble_outlinedime que hay en Movement4...
chat_bubble_outlinedile a quant_calculations...
chat_bubble_outlinedile a quant que haga una...
chat_bubble_outlinellama a quant_calculation...
chat_bubble_outlineDibuja el precio de Santa...
chat_bubble_outlineDibuja el precio de Santa...
chat_bubble_outlineDibuja el precio de Santa...
chat_bubble_outlineDibuja el precio de Santa...
chat_bubble_outlineQuiero que entiendas en d...
chat_bubble_outlinedile a quant que me diga ...
chat_bubble_outlinedile a quant que haga una...
chat_bubble_outlinedile a quant que haga una...
settings Ajustes
help_outlineAyuda
chevron_right
📗
transitions.xlsx38.4 KB
Actúa como quantitative credit risk analyst especializado en forecasting de default rates corporativos, migraciones crediticias y stress testing regulatorio. Usa exclusivamente el Excel adjunto `tran...

Blackmont

Visión general

He construido y ejecutado un pipeline completo de riesgo de crédito corporativo sobre tu Excel transitions.xlsx (fichero Proxima file-1qWwisiEVm25mzYcPHsNLB.xlsx) cubriendo:

  • Carga y validación de matrices de transición, emisores, nuevos emisores y macro (CPF, SPR, recesión).
  • Conversión a conteos de transición, agregación IG/SG y cálculo de tasas de default.
  • Análisis PIT vs TTC y recesión/expansión.
  • Construcción de predictores (AGE, CPF, SPR, SG proportion), regresión lineal de forecast, diagnóstico estadístico.
  • Backtesting rolling desde 1995 comparando modelo vs PIT vs TTC.
  • Impacto económico en reservas (LGD 45%, EAD 100bn).
  • Intervalos de predicción, stress testing macro (escenarios discretos y contour CPF×SPR).
  • Requerimiento de capital Basel II (Vasicek) sobre el grid de stress.

A continuación resumo la lógica, la calidad de datos, los resultados clave y te dejo todos los ficheros y gráficos exportados.


1. Revisión cuidadosa del dataset y supuestos

Estructura y validaciones

  • Años: 1981–2005 (25 años), consistentes entre:
    • Years, CPF, SPR, Recession.
    • nIssuers (25×7), nNewIssuers (25×7).
  • Ratings “plenos” en emisores: ['AAA','AA','A','BBB','BB','B','CCC'].
  • Matrices de transición TransMat_1…TransMat_25:
    • 6×9 cada una, en porcentajes.
    • Columnas asumidas como estados: ['AAA','AA','A','BBB','BB','B','CCC','D','NR'].
    • Las filas 2–7 de cada hoja se toman como la matriz 6×9 (primera fila = cabecera).

Inconsistencia clave: emisores tienen 7 ratings, pero cada matriz de transición sólo 6 filas.

Supuesto explícito (crítico):

  1. Se descarta la columna AAA de nIssuers y nNewIssuers para alinear con las 6 filas de las matrices.
  2. Se trabaja con ratings_active = ['AA','A','BBB','BB','B','CCC'].
  3. AAA se asume emisores residuales/negligibles para este ejercicio y no se modela explícitamente.

El informe de calidad de datos está exportado en:

Download file

Puntos clave del data quality:

  • years_range: 1981–2005, num_years: 25.
  • trans_prob_shape: 25×6×9.
  • Row sums de matrices de transición tras dividir por 100: entre 0.9998 y 1.0002 (numéricamente muy consistentes).
  • Sin NaN en macro ni en emisores/nuevos emisores.

2. Conteos de transición y estructuras cohort

Construcción de conteos

Para cada año ttt:

  • PtP_tPt​ = matriz de transición (6×9) en probabilidad.
  • NtN_tNt​ = vector de emisores por rating activo (6×1).
  • Counts_t = diag(N_t) @ P_t (6×9) → números esperados de migraciones por origen/destino.

Se exportan:

  • Conteos anuales por matriz:

    • Por ejemplo, 1981: Download file …y así para todos los años hasta 2005.
  • Conteos en formato largo (cohort approach):

    Download file

Visualización de matrices de transición

Se han generado heatmaps Plotly para la primera y última matriz:

  • Primera matriz:

  • Última matriz:


3. Default rates IG/SG/Overall

Agregación IG/SG

Dado el recorte a 6 ratings activos:

  • IG = [AA, A, BBB].
  • SG = [BB, B, CCC].
  • Default = destino D.

Para cada año:

  • DefRateIG = (defaults desde IG) / (emisores IG al inicio).
  • DefRateSG = (defaults desde SG) / (emisores SG).
  • DefRateOverall = (defaults totales) / (emisores totales).

Archivo con todas las series:

Download file

Estadísticas descriptivas (197 años-año):

  • Medias (PIT):

    • IG: 0.108% (0.001085).
    • SG: 4.426% (0.04426).
    • Global: 1.554% (0.01554).
  • Máximos:

    • IG: 0.48%.
    • SG: 11.0%.
    • Global: 3.89%.
  • Volatilidad:

    • Desv. típica IG: 0.112%.
    • Desv. típica SG: 2.689%.
    • Desv. típica global: 1.049%.

Estas cifras están resumidas en:

  • default_rates_summary dentro de Download file

Gráficos de default

  • Escala lineal (con sombreado de recesión):

  • Escala log (para enfatizar épocas de bajo default):

Interpretación:

  • SG es varias veces más riesgoso que IG, con picos de ~11% en crisis.
  • El global está dominado por SG en recesiones; el IG se mantiene muy bajo y estable.

4. PIT vs TTC y recesión/expansión

Niveles medios

Resumen en:

Download file

  • PIT mean = TTC (media muestral) por construcción.

  • Diferencias recesión/expansión muy marcadas:

    • Para SG, la media en recesión es claramente superior a la de expansión.
    • Para IG, el diferencial es más moderado pero apreciable.

Gráficos

  • PIT vs TTC global:

  • Recession vs expansion (IG/SG/Overall):

Conclusión:

  • Evidente prociclicidad del PIT, sobre todo en SG.
  • El TTC (media histórica) es mucho más estable.

5. Constructores de predictores y estadísticos

Se construyen:

  • AGEt=100⋅nuevosemisorest−3emisorestotalestAGE_t = 100 \cdot \frac{\mathrm{nuevos emisores}_{t-3}}{\mathrm{emisores totales}_t}AGEt​=100⋅emisorestotalest​nuevosemisorest−3​​.
  • SGProportiontSGProportion_tSGProportiont​ = cuota de emisores SG.
  • AGESGt=AGEt⋅SGProportiontAGESG_t = AGE_t \cdot SGProportion_tAGESGt​=AGEt​⋅SGProportiont​.
  • Se alinean con DefRateOverallt+1DefRateOverall_{t+1}DefRateOverallt+1​ como objetivo.

Dataset de regresión:

Download file

Descriptivos de predictores (21 observaciones utilizables):

  • AGE medio ≈ 10.97% (rango ~5.1%–17.2%).
  • CPF medio ≈ 3.0, rango amplio (-6.35 a 12.23).
  • SPR medio ≈ 2.17, rango ~1.27–3.46.
  • SGProportion medio ≈ 0.333 (25–40%).

Resumen en:

Download file (heatmap de correlaciones) y Download file (time series).

Scatter plots de PD vs cada predictor:

  • AGE: Download file
  • CPF: Download file
  • SPR: Download file
  • SGProportion: Download file
  • AGESG: Download file

6. Modelo de forecasting

Especificación

Regresión OLS:

DefRatet+1=β0+β1AGEt+β2CPFt+β3SPRt+εtDefRate_{t+1} = \beta_0 + \beta_1 AGE_t + \beta_2 CPF_t + \beta_3 SPR_t + \varepsilon_tDefRatet+1​=β0​+β1​AGEt​+β2​CPFt​+β3​SPRt​+εt​

Resultados detallados en:

Download file

Coeficientes estimados:

  • Constante: -0.0120 (p ≈ 0.07).
  • AGE: +0.00141 (p ≈ 0.0018) → signo positivo esperado y estadísticamente significativo.
  • CPF: -0.00112 (p ≈ 0.0006) → signo negativo esperado y muy significativo.
  • SPR: +0.00777 (p ≈ 0.0045) → signo positivo esperado y significativo.
  • R2R^2R2 ≈ 0.762, Raj2R^2_{aj}Raj2​ ≈ 0.720.
  • F-test global muy significativo (p ≈ 1.5e-5).

Interpretación:

  • Más “juventud” de la cartera (AGE) → mayor PD futura.
  • Mejor entorno macro (CPF alto) → PD menor.
  • Spreads más altos (SPR) → PD mayor.
  • El ajuste in-sample es razonablemente alto para PD anuales (R² > 0.7).

Diagnóstico del modelo

Resumen numérico:

  • RMSE in-sample ≈ 0.00510 (0.51 puntos porcentuales).
  • MAE in-sample ≈ 0.00367.
  • MAPE in-sample ≈ 34.5% (grande, inevitable dado PD bajos).
  • Residuales:
    • Media ≈ 0.
    • Desv. típica ≈ 0.00523.
    • Skew ≈ -0.80 (algo sesgados a la izquierda).
    • Kurtosis ≈ 0.59 (ligeramente leptocúrticos).

Breusch–Pagan:

  • No se detecta heterocedasticidad significativa (p ≈ 0.72–0.77).

ACF de residuales:

  • Algo de autocorrelación en lags bajos, pero no extrema.

Detalles en:

Download file

Gráficos clave:

  • Fitted vs actual:

  • Residual vs fitted, histograma, QQ, ACF, etc.:

    • Download file
    • Download file
    • Download file
    • Download file
    • Download file

7. In-sample fit y series temporales

Gráficos:

  • Observado vs fitted (time series):

  • Residuales en el tiempo:

  • Dispersión actual vs predicho:


8. Rolling backtest (desde 1995) y comparación PIT/TTC

Backtest desde origen 1995 hasta último año posible (t → t+1):

  • Modelo lineal entrenado con datos disponibles hasta ttt.
  • Benchmarks:
    • PIT: forecast = PD observada en ttt.
    • TTC: media histórica constante (≈ 1.554%).

Resultados resumidos en:

Download file

Métricas de error (backtest_metrics):

  • RMSE:
    • Modelo: 0.01207.
    • PIT: 0.00912 (mejor).
    • TTC: 0.01227.
  • MAE:
    • Modelo: 0.01063.
    • PIT: 0.00725.
    • TTC: 0.01039.
  • Cumulative squared error:
    • Modelo: 0.00146.
    • PIT: 0.00083 (mejor).
    • TTC: 0.00151.

Gráficos:

  • Observed vs forecasts (modelo, PIT, TTC):

  • Cumulative squared error:

Conclusión de backtest:

  • El benchmark PIT (naive random walk de PD) domina a modelo y TTC en términos de error de predicción anual.
  • El modelo macro añade estructura útil para stress testing y capital, pero no mejora el forecast unstep-ahead frente al PIT en este periodo y horizonte.

9. Impacto en reservas (EL) y pro-ciclicidad económica

Supuestos:

  • LGD = 45%.
  • TotalEAD = 100bn.
  • PortfolioSize = 1000, EAD por bono = 100m (uso implícito en TotalEAD).

Para cada año del backtest:

  • ELt(meˊtodo)=PDt(meˊtodo)⋅LGD⋅EADEL^{(método)}_t = PD^{(método)}_t \cdot LGD \cdot EADELt(meˊtodo)​=PDt(meˊtodo)​⋅LGD⋅EAD (modelo, PIT, TTC).
  • ELt(real)=PDt(real)⋅LGD⋅EADEL^{(real)}_t = PD^{(real)}_t \cdot LGD \cdot EADELt(real)​=PDt(real)​⋅LGD⋅EAD.
  • ReserveExcess = EL(meˊtodo)−EL(real)EL^{(método)} - EL^{(real)}EL(meˊtodo)−EL(real).
  • Se acumula el “colchón” de reservas a lo largo del tiempo.

Resultados:

Download file

Cumulativo final:

  • Modelo: +3.71bn.
  • PIT: +0.23bn.
  • TTC: -1.14bn (déficit acumulado).

Gráfico de saldos acumulados:

Lectura regulatoria:

  • Un esquema TTC puro infraprovisiona frente al realized EL en este histórico.
  • El modelo macro tiende a sobreprovisionar, generando un colchón positivo.
  • PIT queda casi neutro pero con más ciclicidad.

10. Intervalos de predicción

Se construyen PI al 95%:

  • In-sample: cobertura ≈ 95.2% (muy cercana a 95% teórico).
  • Rolling: cobertura ≈ 100% (intervalos conservadores).

Archivos:

  • In-sample PI:

    Download file

  • Rolling PI:


11. Stress testing macro-financiero

Escenarios discretos (último año de predictores)

Baseline (último AGE,CPF,SPRAGE, CPF, SPRAGE,CPF,SPR):

  • PD_base ≈ 0.5876%.
  • Escenario 1 (CPF -4 puntos): PD_s1 ≈ 1.0355%.
  • Escenario 2 (SPR +100bps): PD_s2 ≈ 1.3647%.

Detalles por escenario (con PI 95%):

Download file

Gráfico comparativo:

Interpretación: shocks razonables en CPF/SPR casi doblan o triplican la PD base.

Contour stress testing CPF×SPR

Con AGE fijado al último valor:

  • Grid CPF, SPR alrededor del histórico (±margen).
  • Se calcula PD_pred y PD_UB para cada punto.

Resultados:

Download file

Contornos:

  • PD:

  • PD Upper bound:

Uso práctico: permite localizar regiones de estrés macro (baja CPF, alta SPR) y leer directamente la PD y su upper bound regulatorio.


12. Basel II capital (Vasicek)

Sobre el mismo grid CPF×SPR:

  • Se calcula PDPDPD via modelo.
  • Correlación R(PD)R(PD)R(PD) según fórmula estándar corporates Basel II.
  • Se aplica la fórmula IRB (sin granularidad/PD-floor adicionales) con LGD=45% y M=2.5.

Resumen:

  • Capital requirement mín ≈ -0.00030 (numéricamente ~0).
  • Máx ≈ 12.83%.
  • Media ≈ 7.03%.

(Ver basel_summary en resultados.)

Grid completo:

Download file

Contour de capital:

Lectura regulatoria:

  • El capital requerido reacciona fuertemente a shocks de spreads y deterioro macro.
  • En la cola de estrés, capital > 10% es coherente con segmentos SG/Altos PD.

13. Comentarios de robustez y limitaciones

  1. Inconsistencia estructural AAA (crítica): Se ha descartado AAA por falta de fila en las matrices.

    • Impacto: subestimación ligera del universo IG y posible sesgo en tasas agregadas (aunque AAA suele tener defaults despreciables).
    • Recomendación: revisar el origen del Excel y obtener matrices 7×9 o aclarar si AAA estaba embebido en AA.
  2. Tamaño de muestra (21 obs útiles en regresión):

    • Limita precisión de inferencias, especialmente en colas de distribución.
    • Modelo lineal es un resumen parsimonioso, no un estándar de producción.
  3. Benchmark PIT superior en backtest:

    • Para gestión de riesgo a corto plazo, un modelo muy simple (PIT) puede ser más efectivo; el modelo macro es más valioso para stress testing y capital que para forecast táctico.
  4. Supuestos Basel II simplificados:

    • Se usa una implementación directa del Vasicek sin todos los ajustes regulatorios (floors, ajustes de madurez avanzados, etc.).
    • Para uso regulatorio real, habría que alinear con normativa vigente específica (CRR/CRD, Fed/CCAR, etc.).

14. Entregables y próximos pasos

Ficheros clave (tablas)

Algunos de los más relevantes (además de los ya mencionados):

  • Conteos de transición anuales: por ejemplo Download file

  • Resultados de backtest: Download file

  • Análisis de reservas: Download file

  • Grid Basel II (PD, PD_UB, capital): Download file

Recomendaciones técnicas

  1. Revisión de la capa de datos:

    • Confirmar definición de AAA en matrices y emisores.
    • Si es posible, reconstruir matrices 7×9 y repetir el pipeline.
  2. Extensiones de modelo:

    • Probar especificaciones no lineales (log-PD, términos cuadráticos, interacciones).
    • Explorar modelos de tiempo (ARIMA con exógenas) y/o modelos de régimen (Markov-switching).
  3. Enfoque regulatorio:

    • Documentar formalmente supuestos TTC vs PIT para reservas y capital.
    • Calibrar floors de PD y LGD según estándares regulatorios específicos.
  4. Uso práctico:

    • Integrar este pipeline en una herramienta interna donde puedas:
    • actualizar matrices anualmente;
    • recalibrar regresión;
    • lanzar escenarios macro ad hoc y leer directamente PD, EL, y capital Basel.

Si quieres, en el siguiente paso puedo:

  • Ajustar una variante del modelo (por ejemplo, sobre log-PD) y comparar con el modelo actual.
  • O centrar el análisis solo en IG o solo en SG con pipelines independientes.
como llamarias al ejercicio

Blackmont

Propuesta de título para el ejercicio

Te propongo estas opciones, en orden de “académico” a “práctico”:

  1. “Forecasting de tasas de default corporativo con matrices de transición, factores macro y Basel II”
  2. “Modelo integrado de default corporativo: PIT vs TTC, backtesting y stress testing macro–prudencial”
  3. “Pipeline cuantitativo de riesgo de crédito corporativo: de matrices de transición a capital Basel II”

Si quieres enfatizar la parte docente, también podrías usar:

  1. “Caso práctico de modelización de default corporativo y capital regulatorio Basel II”

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