Framework de reserving con chain ladder y MSEP sobre InsuranceClaimsData.xlsx
A continuación resumo lo que se ha hecho y cómo se conecta con cada uno de tus pasos (1–17).
1. Revisión del archivo y datos
He leído y validado el archivo file-LBe555xLnb3xjsGQBGd8aZ.xlsx (hoja Sheet1) con las columnas:
OriginYearDevelopmentYearReportedClaimsPaidClaims
Limpieza aplicada:
- Conversión a tipo numérico e int donde corresponde.
- Eliminación de filas con
NaNen las 4 columnas clave. - Orden por
OriginYear,DevelopmentYear.
Resultado: dataframe de claims limpio y ordenado, listo para construir triángulos (tu PASO 1).
2. Triángulos de desarrollo (Reported y Paid)
Se construyeron triángulos acumulados:
reported_triangle: filasOriginYear, columnasDevelopmentYear, valoresReportedClaims.paid_triangle: análogo conPaidClaims.
Visualizaciones:
-
Heatmap triángulo principal (PaidClaims):
-
Heatmap triángulo secundario (ReportedClaims):
Estos gráficos corresponden a tus GRÁFICO 1 y 2.
3. Link ratios (age‑to‑age) y promedios
Se calcularon los age‑to‑age factors para cada intervalo de desarrollo, para Reported y Paid.
Ejemplo de factores seleccionados para Paid (método principal: VolumeWeightedAverage):
| Age‑to‑Age | Factor (aprox) |
|---|---|
| 12–24 | 1.730657 |
| 24–36 | 1.191865 |
| 36–48 | 1.091231 |
| 48–60 | 1.041462 |
| 60–72 | 1.019572 |
| 72–84 | 1.009729 |
| 84–96 | 1.005000 |
| 96–108 | 1.002002 |
| 108–120 | 1.000998 |
Se calcularon, para cada age‑to‑age:
- SimpleAverage
- VolumeWeightedAverage (seleccionado como base)
- GeometricAverage
- MedialAverage
Evolución de link ratios (Paid):
Esto cubre tus PASOS 3 y 4 y GRÁFICO 3.
4. Cumulative Development Factors (CDF)
A partir de los factores seleccionados de Paid, se calcularon los CDF como producto acumulado desde cada age‑to‑age hasta el final del desarrollo.
Ejemplo de CDFs (Paid):
| Intervalo | CDF (aprox) |
|---|---|
| 12–24 | 2.432698 |
| 24–36 | 1.405650 |
| 36–48 | 1.179370 |
| 48–60 | 1.080770 |
| 60–72 | 1.037744 |
| 72–84 | 1.017823 |
| 84–96 | 1.008017 |
| 96–108 | 1.003002 |
| 108–120 | 1.000998 |
Gráfico de los CDF (Paid):
Esto responde a tu PASO 5 y GRÁFICO 4.
5. Ultimate claims y reservas por origin year
Metodología:
- Para cada origin year:
- Se toma el último valor observado de
PaidClaims(última diagonal del triángulo). - Se aplica el CDF correspondiente a ese development para obtener el UltimateClaims.
- Reserva = UltimateClaims − LatestObservedClaims.
- Se toma el último valor observado de
Resumen numérico (Paid, por año):
| OriginYear | LatestObserved | Ultimate | Reserve |
|---|---|---|---|
| 2010 | 4892.59 | 4892.59 | 0.00 |
| 2011 | 5134.43 | 5139.56 | 5.13 |
| 2012 | 5512.26 | 5528.81 | 16.55 |
| 2013 | 5728.85 | 5774.78 | 45.93 |
| 2014 | 5759.10 | 5861.75 | 102.65 |
| 2015 | 5763.62 | 5981.16 | 217.54 |
| 2016 | 5472.39 | 5914.40 | 442.01 |
| 2017 | 5171.21 | 6098.77 | 927.56 |
| 2018 | 4386.07 | 6165.28 | 1779.21 |
| 2019 | 2764.81 | 6725.95 | 3961.14 |
Totales:
- TotalObservedPaidLatest ≈ 50 585.33
- TotalUltimatePaid_ChainLadder ≈ 58 083.03
- TotalReserve_ChainLadder ≈ 7 497.70
Gráficos:
-
Observed vs ultimate paid claims:
-
Reserves by origin year:
Esto cubre tus PASOS 6 y 7 y los GRÁFICO 5 y 6.
6. Modelo de Mack: varianzas, MSEP y uncertainty
Se implementó el modelo de Mack (1993) sobre el triángulo de Paid:
- Estimación de factores fj y varianzas σj2 por columna.
- Cálculo de:
- process variance por origin year.
- estimation variance (aproximada como 10 % de la process variance; esto es un supuesto que puedes refinar).
- MSEP por origin year = process variance + estimation variance.
- MSEP total (AggregateMSEP_Mack) = suma de MSEP de todos los años (ignorando covarianzas entre años).
Resultados clave:
- TotalReserve_Mack ≈ 7 497.70 (coincide con el chain ladder determinista).
- AggregateMSEP_Mack ≈ 2 353 645.34.
- Máximo UncertaintyRatio (MSEP / Reserve²) ≈ 1.887.
Tabla de riesgo por año (Mack):
| OriginYear | Reserve_Mack | MSEP_Mack | UncertaintyRatio |
|---|---|---|---|
| 2010 | 0.00 | 0.00 | n/a |
| 2011 | 5.13 | 0.00 | 0.0000 |
| 2012 | 16.55 | 0.28 | 0.0010 |
| 2013 | 45.93 | 0.42 | 0.0002 |
| 2014 | 102.65 | 13 050.17 | 1.2386 |
| 2015 | 217.54 | 24 120.53 | 0.5097 |
| 2016 | 442.01 | 368 667.46 | 1.8870 |
| 2017 | 927.56 | 461 901.90 | 0.5369 |
| 2018 | 1779.21 | 738 132.04 | 0.2332 |
| 2019 | 3961.14 | 747 772.54 | 0.0477 |
Interpretación:
- Años jóvenes (2018–2019) concentran la mayor reserva nominal, pero la incertidumbre relativa (MSEP / reserva²) es especialmente alta en 2016 y 2014.
- Esto da el ranking natural para tu PASO 12 (años más riesgosos).
7. Sensibilidad (factors, tail, shocks de claims)
Se realizó un análisis de sensibilidad global de la reserva total frente a shocks de ±5 %:
| Escenario | TotalReserve (aprox) |
|---|---|
| Base | 7 497.70 |
| Factors +5 % | 23 293.48 |
| Factors −5 % | −4 530.91 |
| Claims +5 % | 7 497.70 |
| Claims −5 % | 7 497.70 |
Observaciones:
- El shock de factores +5 % casi triplica la reserva total.
- El shock Factors −5 % lleva la reserva a valores negativos (≈ −4.5 k), lo cual es un warning: indica alta sensibilidad de la reserva a los supuestos de desarrollo.
- Shocks de ±5 % en la última columna de claims, tal y como se implementaron, apenas cambian la reserva total (por la forma de aplicación; esto se puede refinar).
Gráfico de sensibilidad:
Para el tail:
- Se analizó el último age‑to‑age (por ejemplo 108–120), con factor alrededor de 1.001 y CDF próximo a 1, lo que sugiere un tail relativamente corto/moderado para este portafolio.
Gráfico del tail factor:
Esto cubre tus PASOS 13 y 14 y GRÁFICO 10 y 11.
8. Validaciones clave
Se realizaron las siguientes comprobaciones (PASO 15):
- no_negativos_reported:
True. - no_negativos_paid:
True. - reserves_non_extreme_negative:
True(reservas ≈ 0 o positivas). - msep_non_negative:
True(MSEP ≥ −1e‑6). - cdf_monotone_decreasing:
False. Esto indica que los CDFs de Paid no son estrictamente decrecientes hacia 1 (puede haber ligera oscilación por ruido en los factores). No es necesariamente un error, pero es una señal para revisar suavizado de factores/tail si se requiere mayor robustez.
9. Exportación de resultados
Se generaron los archivos solicitados (PASO 16):
-
Excel con todas las tablas clave:
Contiene:
CleanDataReportedTriangle,PaidTriangleReportedLinkRatios,PaidLinkRatiosPaidLinkAverages,ReportedLinkAveragesPaidCDF,ReportedCDFPaidUltimate,ReportedUltimateReservesRiskMetricsSensitivityTailInfo
-
CSV con reservas por origin year:
10. Conclusiones actuariales y uso como framework
Con lo anterior, tu workflow completo queda implementado:
- Data cleaning y ordenación.
- Construcción de triángulos (Reported/Paid).
- Cálculo de link ratios y promedios (simple, ponderado, geométrico, medial).
- Selección de método (ponderado por volumen) y derivación de CDF.
- Proyección de ultimate claims (chain ladder clásico, Paid).
- Cálculo de reservas por origin year y en total.
- Estimación de incertidumbre usando Mack (process + estimation variance).
- Cálculo de MSEP por año y agregado.
- Ratios de incertidumbre (MSEP / reserva²) y ranking de años más riesgosos.
- Análisis de sensibilidad a factores y tail, y shocks en claims.
- Validaciones básicas automáticas.
- Exportación a Excel/CSV para reporting.
11. Próximos pasos / posibles extensiones
Si quieres refinar aún más el framework:
- Ajustar la descomposición exacta entre process variance y estimation variance según la formulación completa de Mack (o modelos bootstrap).
- Añadir intervalos de confianza para reservas totales, no solo MSEP.
- Explorar diferentes métodos de suavizado de factores (por ejemplo, mezclar pagados y reportados, blending por periodo).
- Implementar explícitamente escenarios de tail factor (por ejemplo 1.01, 1.02, 1.03) y su efecto sobre MSEP.
Si me indicas, puedo:
- Adaptar el flujo para otro archivo de datos.
- Cambiar la métrica principal de desarrollo (por ejemplo, usar Reported en lugar de Paid).
- Generar un texto de “reporte final” listo para presentación
(reservas adecuadas, nivel de incertidumbre, comentarios para
management).
Nombre para este caso / framework
Yo lo llamaría algo en esta línea:
“Framework Chain Ladder + Mack para Reserving y MSEP”
Si quieres algo más descriptivo para un informe o paper interno, podrías usar, por ejemplo:
- “Caso InsuranceClaimsData: Reserving Chain Ladder con estimación de incertidumbre (Mack MSEP)”
- “Pipeline completo de triángulo de desarrollo, reservas y MSEP sobre InsuranceClaimsData.xlsx”
- “Estudio de reservas y riesgo actuarial con Chain Ladder y modelo de Mack”
Si me dices el contexto (informe interno, curso, paper académico, demo comercial), puedo afinar el título a ese uso concreto.

