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
📗
MertonDataTS.xlsx22.7 KB
OBJETIVO Construir un workflow completo para comparar: - Merton Model Single Point Approach vs - Merton Model Time Series Approach usando: MertonDataTS.xlsx El Excel contiene directamente: - Dates -...

Blackmont

Marco completo Merton: Single Point vs Time Series

(sobre file-2RqE5Y2VCzB1JwpWxvi2gW.xlsx = MertonDataTS.xlsx)

A continuación tienes el workflow completo ya implementado paso a paso, más la interpretación cuantitativa de los resultados para tu dataset.


1. Revisión del Excel y limpieza (PASO 1–2)

He leído el fichero:

  • Archivo: file-2RqE5Y2VCzB1JwpWxvi2gW.xlsx
  • Hoja usada: Sheet1
  • Columnas presentes y utilizadas:
    • Dates → convertida a datetime, usada como índice temporal
    • Equity → valor de mercado del equity
    • Liability → deuda/pasivo
    • Rate → tipo libre de riesgo (anual, en tanto por uno)

Limpieza aplicada:

  • Conversión robusta de Dates a datetime y orden por fecha.
  • Eliminación de filas con NaN o infinitos en Equity, Liability o Rate.
  • Comprobación de positividad:
    • Equity <= 0 y Liability <= 0 se marcan como no válidos y se descartan.
  • Acotado de tipos:
    • Rate recortado al rango razonable [−5%,20%][-5\%, 20\%][−5%,20%].

Resumen básico de datos limpios (df_clean):

MétricaValor
Fecha inicio2015-01-02
Fecha fin2016-12-30
Observaciones504
Equity min≈ 23.87M
Equity max≈ 45.55M
Equity media≈ 35.76M
Liability min21.0M
Liability max40.0M
Liability med≈ 28.89M
Rate min≈ 3.00 %
Rate max≈ 3.20 %
Rate media≈ 3.06 %

No se detectan problemas serios de calidad de datos.

Gráficos temporales básicos (PASO 2 + GRÁFICOS 1–3)

  • Equity a lo largo del tiempo:

  • Liabilities a lo largo del tiempo (crecientes, discretas):

  • Tipo libre de riesgo muy estable:


2. Returns y volatilidad del equity (PASO 3–4)

  • Returns:

    • Se calculan log-returns diarios:
    • rt=log⁡(Et/Et−1)r_t = \log(E_t/E_{t-1})rt​=log(Et​/Et−1​)
    • Se obtiene la serie equity_returns.
  • Volatilidad rolling:

    • Ventana: 252 días (1 año de trading).
    • Volatilidad diaria rolling: desviación típica de los log-returns en la ventana.
    • Volatilidad anualizada: σE,t=std252(r)252\sigma_{E,t} = \mathrm{std}_{252}(r)\sqrt{252}σE,t​=std252​(r)252​.
    • Resultado: serie sigma_equity_t (SigmaEquityAnnualized).

Gráfico 4 – Volatilidad del equity:

Volatilidad snapshot (última fecha válida):

  • σE,snapshot≈0.465\sigma_{E,\mathrm{snapshot}} \approx 0.465σE,snapshot​≈0.465 (46.5 % anual).

3. Inputs Merton (PASO 5)

Para cada fecha con volatilidad disponible:

  • Et=E_t =Et​= Equity
  • Dt=D_t =Dt​= Liability
  • rt=r_t =rt​= Rate
  • σE,t=\sigma_{E,t} =σE,t​= volatilidad rolling anualizada
  • Horizonte T=1T = 1T=1 año.

La matriz de inputs (df_merton_valid) contiene 252 fechas útiles para calibrar Merton.


4. Single Point Approach (PASOS 6–8)

Elección de snapshot:

  • Se toma la última fecha con sigma_E no NaN:
    • Fecha snapshot: 2016-12-30
    • Equity: Esnap≈25.22ME_{\mathrm{snap}} \approx 25.22MEsnap​≈25.22M
    • Liability: Dsnap=40.0MD_{\mathrm{snap}} = 40.0MDsnap​=40.0M
    • Rate: rsnap≈3.08%r_{\mathrm{snap}} \approx 3.08\%rsnap​≈3.08%
    • σE,snap≈46.45%\sigma_{E,\mathrm{snap}} \approx 46.45\%σE,snap​≈46.45%

Calibración Merton (snapshot)

Se resuelven numéricamente las ecuaciones clásicas de Merton:

  1. E=VN(d1)−De−rTN(d2)E = V N(d_1) - D e^{-rT} N(d_2)E=VN(d1​)−De−rTN(d2​)
  2. σE=N(d1)σVVE\sigma_E = N(d_1)\sigma_V \frac{V}{E}σE​=N(d1​)σV​EV​

donde:

  • d1=ln⁡(V/D)+(r+0.5σV2)TσVTd_1 = \dfrac{\ln(V/D) + (r + 0.5\sigma_V^2)T}{\sigma_V\sqrt{T}}d1​=σV​T​ln(V/D)+(r+0.5σV2​)T​
  • d2=d1−σVTd_2 = d_1 - \sigma_V\sqrt{T}d2​=d1​−σV​T​

Resultados snapshot:

  • Valor de activos: Vsnap≈63.997MV_{\mathrm{snap}} \approx 63.997MVsnap​≈63.997M
  • Volatilidad de activos: σV,snap≈18.35%\sigma_{V,\mathrm{snap}} \approx 18.35\%σV,snap​≈18.35%

Distance to Default y PD (snapshot)

  • DDsnap≈2.64DD_{\mathrm{snap}} \approx 2.64DDsnap​≈2.64
  • PDsnap≈0.00418PD_{\mathrm{snap}} \approx 0.00418PDsnap​≈0.00418 ≈ 0.42 %

Interpretación:

  • Un DD ≈ 2.6 sigmas implica un emisor relativamente sólido: el valor de activos está varias desviaciones por encima del umbral de default.
  • La PD a 1 año de ~0.4 % es baja, pero no despreciable.

Gráficos 5–6 (DD y PD snapshot)

  • DD snapshot:

  • PD snapshot:


5. Time Series Approach (PASOS 9–13)

Para cada fecha con inputs válidos (252 en total) se resuelven las ecuaciones de Merton y se obtienen:

  • VtV_tVt​: valor de activos
  • σV,t\sigma_{V,t}σV,t​: volatilidad de activos
  • DDtDD_tDDt​: distance to default
  • PDtPD_tPDt​: probabilidad de default a 1 año

Coherencia numérica:

  • Fechas con Merton convergente: 252 de 252.
  • Todas las PD truncadas a [0,1].

Estadísticos de DD y PD (serie temporal):

  • Distancia a default:

    • DDmin⁡≈2.64DD_{\min} \approx 2.64DDmin​≈2.64
    • DDmax⁡≈4.61DD_{\max} \approx 4.61DDmax​≈4.61
    • DDmedia≈3.72DD_{\mathrm{media}} \approx 3.72DDmedia​≈3.72
    • DDmediana≈3.73DD_{\mathrm{mediana}} \approx 3.73DDmediana​≈3.73
  • Probabilidad de default:

    • PDmin⁡≈2.0×10−6PD_{\min} \approx 2.0\times 10^{-6}PDmin​≈2.0×10−6 (0.0002 %)
    • PDmax⁡≈0.00420PD_{\max} \approx 0.00420PDmax​≈0.00420 (0.42 %)
    • PDmedia≈0.00068PD_{\mathrm{media}} \approx 0.00068PDmedia​≈0.00068 (0.068 %)
    • PDmediana≈9.5×10−5PD_{\mathrm{mediana}} \approx 9.5\times 10^{-5}PDmediana​≈9.5×10−5 (0.0095 %)

Gráficos 7–10

  • Asset value VtV_tVt​:

  • Volatilidad de activos σV,t\sigma_{V,t}σV,t​:

  • Distance to Default DDtDD_tDDt​:

  • Probability of Default PDtPD_tPDt​:


6. Comparación Single Point vs Time Series (PASO 14)

Posición relativa del snapshot dentro de la historia:

  • DD snapshot:

    • Valor: 2.64
    • Percentil histórico ≈79.4\approx 79.4≈79.4 → El snapshot está en la parte más débil del histórico de DD (cerca del mínimo, peor 20 %).
  • PD snapshot:

    • Valor: 0.00418
    • Percentil histórico ≈99.6\approx 99.6≈99.6 → El snapshot coincide prácticamente con la PD más alta de toda la serie.

Es decir: el modelo estático (single point en 2016-12-30) está evaluando un momento de estrés relativo, y por tanto sobreestima el riesgo de crédito medio frente al modelo dinámico.

Gráfico 11 – Comparación PD snapshot vs PD_t:

Conclusión clave:

  • El single-point model es muy sensible a la fecha elegida.
  • El time-series model muestra que, en la mayoría del período, la PD es mucho menor (media 0.068 %, mediana 0.0095 %), por lo que el snapshot final parece un escenario de cola.

7. Análisis de periodos de estrés (PASO 15)

Criterios de estrés:

  1. Caídas fuertes de equity: returns por debajo de media – 3 desviaciones típicas.
  2. Alta volatilidad: sigma_E en el top 10 % de su distribución.

Con esto se generan fechas de estrés y se extraen las 5 peores por PD:

Top 5 días de estrés (por PD)

  • Todos concentrados en diciembre 2016.
  • Valores aproximados (del JSON top5_stress):
FechaEquity (M)D (M)Ratesigma_EDDPD
2016-12-2925.1740.03.10%0.4652.640.00420
2016-12-3025.2240.03.08%0.4652.640.00418
2016-12-2725.0340.03.05%0.4632.640.00413
2016-12-2825.7440.03.11%0.4642.650.00405
2016-12-2225.8440.03.02%0.4642.650.00399

Gráfico 12 – PD en periodos de estrés:

Lectura:

  • El estrés se concentra en un cluster al final de la muestra, con equity relativamente bajo y liabilities altas (40M).
  • Ahí la PD sube hacia 0.4 %, pero sigue siendo baja en términos absolutos.

8. Sensibilidad (PASO 16)

Se ha hecho sensibilidad alrededor del snapshot:

8.1. PD vs leverage (vía E y D)

  • Se varía:
    • Multiplicadores de Equity: de 0.5 a 1.5.
    • Multiplicadores de Liability: de 0.5 a 1.5.
  • Se recalibra Merton en cada escenario y se calcula PD.
  • Ejemplos de escenarios (de sens_leverage_samples):
EscenarioE_multD_multV/DPD
10.51.01.280.00831
20.51.51.180.01057
30.751.01.440.00586
40.751.51.280.00831
Base0.750.51.920.00219

Gráfico 13 (parte 1) – PD vs Leverage:

Conclusión: A mayor apalancamiento (V/D más bajo), la PD sube de manera suave pero clara.

8.2. PD vs volatilidad del equity

  • Se escala σE\sigma_EσE​ desde 0.5× hasta 2× su valor snapshot.
  • Se recalibra Merton en cada caso.

Ejemplo (de sens_vol_samples):

Mult sigma_Esigma_E_scenPD
0.50.2322.9e-08
0.8750.4060.00116
1.250.5810.02058
1.6250.7550.07605
2.00.9290.16172

Gráfico 13 (parte 2) – PD vs Volatilidad:

Conclusión: La PD es extremadamente convexa frente a la volatilidad. Pequeños incrementos de sigma_E pueden disparar la PD.

8.3. Sensibilidad a tipos (Rate)

  • Se perturba rrr ± 10 y ± 5 pb:
    • Efecto sobre PD moderado:
    • Con -1 % → PD ≈ 0.00423
    • Con +1 % → PD ≈ 0.00412
  • La PD es menos sensible a tipos que a volatilidad o apalancamiento.

9. Validación (PASO 17)

Cheques básicos:

  • Vt>0V_t > 0Vt​>0 para todas las fechas válidas.
  • σV,t>0\sigma_{V,t} > 0σV,t​>0 siempre que Merton converge.
  • 0≤PDt≤10 \le PD_t \le 10≤PDt​≤1 para toda la serie.
  • No se detectan saltos extremos en DD o PD que no estén motivados por movimientos en equity/volatilidad.
  • Número de fechas con solución Merton válida: 252 de 252.

No aparecen anomalías estructurales importantes.


10. Exportación y reporting (PASOS 18–19)

Se ha generado un paquete completo de outputs:

10.1. Ficheros de resultados

  • Excel principal con todo el framework:

    Download file

    Contiene hojas:

    • clean_time_series: Equity, Liability, Rate, returns y sigma_E.
    • returns_sigmaE: returns y volatilidad rolling.
    • merton_time_series: V_t, sigma_V_t, DD_t, PD_t, success.
    • snapshot_results: snapshot detallado.
    • stress_episodes: días de estrés.
    • sens_PD_vs_leverage, sens_PD_vs_vol, sens_PD_vs_rate.
  • CSVs:

    • Time series limpia:

    Download file

    • Resultados Merton time series:

    Download file

  • Mini-report HTML resumido:

    Download file


11. Conclusiones clave para tu objetivo

  1. Workflow completo Merton

    • Se han implementado todos los pasos que pedías (1–19): lectura y limpieza, construcción de series, volatilidad rolling, calibración Merton snapshot y time-series, DD y PD, análisis de estrés, sensibilidad, validación y reporting.
  2. Single Point vs Time Series

    • El single-point en 2016-12-30 muestra una PD ~0.42 % situada en el percentil 99.6 de la historia: es un escenario muy estresado.
    • El modelo dinámico indica que la PD típica es mucho más baja (media ~0.07 %, mediana ~0.01 %).
    • Conclusión: el riesgo de usar solo un snapshot puede sesgar la visión de crédito si la fecha elegida es de estrés.
  3. Drivers de riesgo

    • La PD es muy sensible a:
    • Volatilidad del equity (convexidad fuerte).
    • Leverage (V/D).
    • Es poco sensible a cambios razonables en el tipo libre de riesgo.
  4. Uso práctico

    • Puedes usar el Excel y los HTML para:
    • Integrar el framework en tu propio código.
    • Construir dashboards comparando PD snapshot vs PD_t.
    • Evaluar escenarios de estrés y sensibilidad para riesgo de crédito estructural.

Si quieres, en el siguiente paso puedo:

  • Adaptar el código/lógica para un universo de múltiples empresas.
  • Cambiar el horizonte TTT (por ejemplo 3 meses, 5 años) y recalcular todo.
  • Incorporar diferentes definiciones de deuda (por ejemplo, corto vs largo plazo) para refinar DtD_tDt​.
que hace de manera muy simple el estudio anterior

Blackmont

Explicación muy simple del estudio

El estudio hace, en esencia, cuatro cosas:

  1. Toma la serie histórica de una empresa

    • Equity (valor de mercado)
    • Deuda (liabilities)
    • Tipo libre de riesgo
  2. Calcula el riesgo de crédito con el modelo de Merton de dos formas

    • Single Point: solo en una fecha concreta (un “snapshot”).
    • Time Series: en todas las fechas, construyendo una serie temporal.
  3. De cada versión del modelo obtiene

    • Valor de los activos de la empresa.
    • Volatilidad de esos activos.
    • Distance to Default (DD).
    • Probabilidad de Default (PD) a 1 año.
  4. Compara y analiza

    • Compara la PD y la DD del snapshot con las PD y DD históricas.
    • Identifica periodos de estrés (caídas del equity / alta volatilidad).
    • Estudia cómo cambia la PD si varía el equity, la deuda, la volatilidad o los tipos.

Resultado: un framework completo para ver cómo cambia el riesgo de crédito estructural de la empresa en el tiempo y qué tan representativo (o extremo) es un cálculo estático en una sola fecha.

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