bayesrisk

Informe de validación de modelos

Informe de Validación de Scorecard

USO INTERNO — CONFIDENCIAL

Modelo
Entidad
Cartera
Responsable del desarrollo
Versión del informe
Fecha de emisión
2026-10-19

Trazabilidad de la corrida (lineage)

config_hash=8ff907caa558c9d480cbcf0f74ed9fe77347d4ab1f399e90ea83c2c7bef94b8b
data_hash=43b7a944f9be20b58f829f5bb3bc11075227c499f6c1df02c21d7f7184c9afd5
git_sha=—
root_seed=20240706

Desarrollo

Nombre y fecha

Validación independiente

Nombre y fecha

Aprobación

Nombre y fecha

Resumen de la corrida

Lo que cuenta la corrida al terminar, con la misma fuente que la puerta guiada y la pestaña Resultados: el estado de la ejecución y de la validación técnica, las cifras clave, qué revisar, las decisiones humanas con su motivo y dónde queda cada archivo. El veredicto lo firma el validador en el resumen ejecutivo.

Las rutas son las que el informe escribió al generarse: si la corrida se copia o se archiva después —desde la interfaz, o al apartar una corrida anterior—, los archivos se buscan en su carpeta de destino, y el registro de auditoría deja constancia de cada uno que se escribió.

Ejecución
corrieron sin fallos Datos y muestras, Análisis exploratorio, Tramos y WoE, Selección de variables, Modelo, Tarjeta de puntuación, Calibración, Desempeño, Estabilidad, Validación formal y Escala maestra; este informe es la última etapa de la corrida
Validación técnica
Pasa

Cifras clave

AUC en Holdout0,824
Gini en Holdout0,647
KS en Holdout0,554
Caída del AUC Desarrollo → Holdout0,00098 (0,1 %)
Peor PSI entre score y PD0,0764 (Desarrollo vs. Holdout) → Estable

Qué revisar

  • ⚠ Modelo: Concentra más del 90 % del IV del modelo: x1
  • ⚠ Escala maestra: En Holdout, los tramos 3, 4 y 5 tienen menos de 30 operaciones con desenlace: sin contraste.

Decisiones humanas registradas

Ninguna decisión humana registrada; lo que se decidió vive en el config de la corrida.

Dónde quedó cada archivo

Informe HTML
artifacts/german_fabrica/reports\scorecard_report.html
Informe Word
artifacts/german_fabrica/reports\scorecard_report.docx (se escribe si el extra docx está instalado)
Registro de auditoría
audit_trail.jsonl, en la carpeta de evidencia de la corrida

Resumen ejecutivo

Veredicto de validación
  • Aprobado
  • Aprobado con observaciones
  • Rechazado

Campo estructural: lo marca y firma el validador independiente; no es un resultado calculado por el motor.

MétricaAlcanceValorEstado
AUC Desarrollo 0,8227 Sin alertas
Gini Desarrollo 0,6455 Sin alertas
KS Desarrollo 0,5053 Sin alertas
AUC Holdout 0,8237 Sin alertas
Gini Holdout 0,6474 Sin alertas
KS Holdout 0,55403 Sin alertas
Peor PSI entre score y PD · score Desarrollo vs. Holdout 0,0764 Estable
Estado técnico de validación formal german_fabrica 0 de 1 prueba fallida Pasa

No se configuraron umbrales de discriminación, de modo que el motor no puede levantar alertas sobre AUC, Gini ni KS: «sin alertas» significa que no había umbral contra el cual comparar, no que la métrica sea satisfactoria.

Las bandas de PSI usan los umbrales configurados: estable por debajo de 0,10, revisión desde 0,10 y redesarrollo desde 0,25.

La validación formal ejecutó discriminación, calibración y estabilidad. Su estado es una síntesis técnica del motor y no sustituye el veredicto que debe firmar un validador humano.

Alcance: scorecard y validación formal de las familias configuradas. El capítulo «Validación formal» reproduce el resultado que publicó el motor; el veredicto permanece bajo responsabilidad humana. Todos los valores provienen de la corrida trazada en la portada: no se completan con supuestos.

Índice

1Introducción

POR COMPLETAR — Introducción

Declara el propósito del informe y qué decisión habilita: ¿es una validación inicial previa a la puesta en producción, una revisión periódica o un recalibrado?

Delimita el alcance (qué modelo y qué cartera cubre, qué queda fuera) e identifica la audiencia: Validación independiente, Comité de Riesgo, regulador.

2Contexto del modelo y de la cartera

La población procesada contiene 750 observaciones, 21 variables de entrada y una tasa de incumplimiento de 29,47 %. Los conteos por estado, partición y motivo de exclusión se reproducen literalmente en las tablas de esta sección.

La columna objetivo de esta corrida es «target_bayesrisk».

La tasa de incumplimiento observada en la población analizada es de 28,09 %, la tasa no se pudo agrupar en el tiempo porque el archivo no trae columna de fecha ni cohorte declarada y se describieron 20 variables frente al incumplimiento.

El perfilado de calidad de datos no levantó alertas de variables casi constantes, casi únicas ni de alta cardinalidad.

La estabilidad temporal de la tasa de incumplimiento no se evaluó: el archivo no trae un eje temporal que ordenar. El indicador configurado era variación relativa.

La variable objetivo del ejercicio es «target_bayesrisk», construida por las reglas de incumplimiento declaradas en el config (Anexo C). La definición de negocio que justifica esas reglas —p. ej. 90+ días de mora— debe explicitarla el analista: el motor aplica la regla, no la fundamenta.

La población se particionó de forma aleatoria: Desarrollo 80,00 %, Holdout 20,00 % y OOT 0,00 %.

POR COMPLETAR — Contexto del modelo

Describe la cartera sobre la que se construyó el modelo: producto, segmento, volumen y período.

Explicita la definición de incumplimiento utilizada (p. ej. 90+ días de mora) y por qué; declara las exclusiones aplicadas a la población y su justificación.

2.1Población, particiones y exclusiones

Las tablas siguientes reproducen lo que dejó la preparación de datos de esta corrida. Estados, tamaños y tasas por partición, y exclusiones se copian literalmente; el informe no recalcula ni completa valores ausentes.

Estados de la población
EstadoObservaciones
bueno529
malo221
indeterminado0
excluido0
Particiones de modelamiento
ParticiónObservacionesTasa de incumplimiento
Desarrollo5980,2809
Holdout1520,3487
Fuera de tiempo (OOT)00,0000
Fuera del ajuste00,0000
Exclusiones aplicadas
MotivoExclusiones

2.2Población y calidad de datos

A continuación se reproducen el perfil por tramo de 20 variables descritas y la calidad de datos por columna.

La tasa de incumplimiento no se pudo agrupar en el tiempo: el archivo no trae columna de fecha ni cohorte declarada. El resto del análisis exploratorio —el perfil por tramo de cada variable y la calidad de datos por columna— se hizo igual.

Tasa de incumplimiento por tramo de cada variable descrita (primeras 12 de 20 variables) image/svg+xml A11 A12 A13 A14 0,00 0,10 0,20 0,30 0,40 x1 A101 A102 A103 0,00 0,10 0,20 0,30 0,40 x10 > 1 y ≤ 2 > 2 y ≤ 3 > 3 y ≤ 4 0,00 0,05 0,10 0,15 0,20 0,25 0,30 x11 A121 A122 A123 A124 0,00 0,10 0,20 0,30 0,40 x12 > 19 y ≤ 23,7… > 23,70000000… > 26 y ≤ 28 > 28 y ≤ 30 > 30 y ≤ 33,5 > 33,5 y ≤ 36 > 36 y ≤ 40 > 40 y ≤ 45 > 45 y ≤ 53 > 53 y ≤ 75 0,00 0,10 0,20 0,30 x13 A141 A142 A143 0,00 0,10 0,20 0,30 0,40 x14 A151 A152 A153 0,00 0,10 0,20 0,30 0,40 x15 > 1 y ≤ 2 > 2 y ≤ 4 0,00 0,05 0,10 0,15 0,20 0,25 x16 A171 A172 A173 A174 0,00 0,10 0,20 0,30 0,40 x17 > 1 y ≤ 2 0,00 0,05 0,10 0,15 0,20 0,25 x18 A191 A192 0,00 0,05 0,10 0,15 0,20 0,25 0,30 x19 > 4 y ≤ 9 > 9 y ≤ 12 > 12 y ≤ 15 > 15 y ≤ 18 > 18 y ≤ 24 > 24 y ≤ 30 > 30 y ≤ 36 > 36 y ≤ 72 0,00 0,10 0,20 0,30 0,40 0,50 x2 Tasa de incumplimiento por tramo de cada variable descrita (primeras 12 de 20 variables)
Calidad de datos por columna
coldtypemissing_ratecardinalitynear_constantnear_uniquehigh_cardinality
x1object0,00004nonono
x2int640,000032nonono
x3object0,00005nonono
x4object0,000010nonono
x5int640,0000569nonono
x6object0,00005nonono
x7object0,00005nonono
x8int640,00004nonono
x9object0,00004nonono
x10object0,00003nonono
x11int640,00004nonono
x12object0,00004nonono
x13int640,000053nonono
x14object0,00003nonono
x15object0,00003nonono
x16int640,00004nonono
x17object0,00004nonono
x18int640,00002nonono
x19object0,00002nonono
x20object0,00002nonono
targetint640,00002nonono

3Metodología

Este capítulo describe el procedimiento realmente ejecutado por el motor en esta corrida, con los parámetros efectivos que constan en el config trazado en el Anexo A. No es una descripción genérica de la técnica: cada cifra citada aquí es la que produjo este modelo.

3.1Tratamiento de datos y particiones

El dataset se validó contra un esquema declarado de 21 columnas, con tipos y nulabilidad explícitos; una desviación del esquema detiene la corrida en vez de propagarse.

En el tratamiento de faltantes se reporta para revisión toda variable con más de 99,00 % de valores faltantes, sin eliminarla automáticamente.

3.2Binning WoE

Se discretizó cada variable con OptBinning, resolviendo el problema óptimo por programación entera mixta (MIP), partiendo de un máximo de 20 pre-bins, con un máximo de 6 bins por variable y un tamaño mínimo de bin de 5,00 % de la población.

La tendencia monótona exigida al WoE es automática (ascendente o descendente): el riesgo debe comportarse de forma coherente entre tramos contiguos, sin quiebres que un analista no pueda defender.

De 20 variables candidatas, 20 quedaron binificadas.

Los valores especiales se agrupan en un bin propio y los faltantes reciben el tratamiento «empirical» (OptBinning 0.20.0).

3.3Selección de variables

Se descartaron las variables con IV inferior a 0,02; las de IV igual o superior a 0,50 se marcaron para revisión, porque un poder predictivo tan alto suele indicar fuga de información más que señal legítima.

Se eliminó la redundancia entre pares de variables con correlación (pearson) sobre 0,75 y se acotó la multicolinealidad exigiendo un VIF bajo 5,0.

El filtro dejó 14 de 20 variables candidatas; el motivo de exclusión de cada variable descartada consta en la tabla de selección.

3.4Estimación del modelo PD

La probabilidad de incumplimiento se modeló mediante regresión logística (logit) sobre las variables transformadas a WoE, con un nivel de significancia de 0,05.

La construcción del modelo usó stepwise bidireccional (criterio «wald_pvalue» y p-valor de entrada 0,05 y de salida 0,05).

Se exige que el coeficiente de cada variable en WoE tenga el signo esperado (negativo): cuando se invierte, se marca la variable sin excluirla. Un signo invertido significa que la variable contradice la relación de riesgo que su binning declara.

El modelo final retiene 11 de 14 variables de entrada.

3.5Escalado del scorecard

El modelo se escaló a puntaje con la convención PDO: un puntaje de 600 corresponde a odds de 50:1, y cada 20 puntos adicionales duplican esas odds.

De esa convención se derivan los parámetros efectivos de la escala: factor 28,8539 y offset 487,1229.

Un puntaje más alto indica menor riesgo y los puntajes se emiten con redondeo al entero más cercano.

3.6Calibración de la PD

La PD se calibró por desplazamiento del intercepto (intercept offset), ajustando sobre la partición de Desarrollo contra la tasa de incumplimiento observada en Desarrollo, que resultó ser 28,09 %. El ancla es a través del ciclo (TTC).

El desplazamiento aplicado al intercepto es 8,1e-18, lo que preserva el ordenamiento del score: la calibración corrige el nivel de la PD, no su ranking.

El ajuste se realizó sobre 598 observaciones de Desarrollo.

4Resultados

Los resultados se presentan por etapa, con las tablas que sostienen el juicio de validación. El detalle exhaustivo —todas las tablas y todos los parámetros de cada paso— no se pierde: vive en los Anexos B y C, que son parte de este mismo informe.

4.1Binning WoE y poder predictivo

El poder predictivo univariado (IV) de las 20 variables binificadas lo encabezan «x1» (0,454), «x2» (0,286) y «x3» (0,276). El IV de cada variable consta en la tabla siguiente y su binning completo, bin a bin, en el Anexo B.

La monotonía efectiva del WoE resultó en 5 variables con tendencia ascendente y 2 variables con tendencia descendente, y 13 sin tendencia monótona resuelta, lo que debe revisarse.

Resumen de binning — IV por variable
namedtypestatusselectedn_binsivjsginiquality_scoreiv_bandis_suspicious_ivis_zero_ivmonotonic_trendskipped_reason
x1categoricalOPTIMALsí40,45360,05520,35480,5514strongnono——
x2numericalOPTIMALsí60,28570,03460,28150,0927mediumnonoascending—
x3categoricalOPTIMALsí40,27570,03280,25000,3846mediumnono——
x4categoricalOPTIMALsí70,177020,02160,22220,0162mediumnono——
x5numericalOPTIMALsí40,141980,01740,172990,0539mediumnonoascending—
x6categoricalOPTIMALsí50,16990,02060,19360,0349mediumnono——
x7categoricalOPTIMALsí50,10440,012950,17580,00297mediumnono——
x8numericalOPTIMALsí40,06440,007970,12350,0213weaknonoascending—
x9categoricalOPTIMALsí30,01750,00220,06740,0047—nono——
x10categoricalOPTIMALsí20,00580,000720,01750,0021—nono——
x11numericalOPTIMALsí30,00370,000470,02050,0000—nonoascending—
x12categoricalOPTIMALsí40,16270,019970,2089980,2017mediumnono——
x13numericalOPTIMALsí30,05660,007040,123010,1192weaknonodescending—
x14categoricalOPTIMALsí30,09860,01220,13080,05599weaknono——
x15categoricalOPTIMALsí30,11490,01420,15510,19698mediumnono——
x16numericalOPTIMALsí20,00790,000990,04240,0135—nonodescending—
x17categoricalOPTIMALsí30,02390,002980,07560,0328weaknono——
x18numericalOPTIMALsí20,00180,000220,01550,00095—nonoascending—
x19categoricalOPTIMALsí20,02290,00290,07410,0557weaknono——
x20categoricalOPTIMALsí10,00000,00000,00000,0000—nosí——

4.2Selección de variables

Las 14 variables que pasaron el filtro son «x1», «x12», «x13», «x14», «x15», «x17», «x19», «x2», «x3», «x4», «x5», «x6», «x7» y «x8».

Las exclusiones se reparten en 1 por ser constante o no finita y 5 por IV insuficiente.

Tras la selección, la correlación absoluta máxima entre las variables finales es 0,5695 y el VIF máximo es 1,75.

Criterios de selección por variable
featurewoe_columnincludedreasoniviv_bandaucginiksmax_abs_corrmax_corr_withvifmax_csiforceddetail
x1x1__woesíincluded0,4536strong0,67740,35480,3058——1,1029———
x10x10__woenolow_iv0,0058—0,50870,01750,0175—————IV 0,0058 < mínimo 0,02
x11x11__woenolow_iv0,0037—0,51020,02050,0205—————IV 0,0037 < mínimo 0,02
x12x12__woesíincluded0,1627medium0,60450,2089980,1467——1,7488———
x13x13__woesíincluded0,0566weak0,56150,123010,0993——1,1239———
x14x14__woesíincluded0,0986weak0,56540,13080,1289——1,0847———
x15x15__woesíincluded0,1149medium0,57750,15510,1461——1,5146———
x16x16__woenolow_iv0,0079—0,52120,04240,0424—————IV 0,0079 < mínimo 0,02
x17x17__woesíincluded0,0239weak0,53780,07560,0465——1,2878———
x18x18__woenolow_iv0,0018—0,50780,01550,0155—————IV 0,0018 < mínimo 0,02
x19x19__woesíincluded0,0229weak0,53710,07410,0741——1,2788———
x2x2__woesíincluded0,2857medium0,64080,28150,19695——1,6039———
x20x20__woenoconstant_or_nonfinite0,0000—0,50000,00000,0000——————
x3x3__woesíincluded0,2757medium0,62500,25000,16999——1,1347———
x4x4__woesíincluded0,17702medium0,61110,22220,1618——1,0417———
x5x5__woesíincluded0,14198medium0,58650,172990,1608——1,7337———
x6x6__woesíincluded0,1699medium0,59680,19360,1698——1,0507———
x7x7__woesíincluded0,1044medium0,58790,17580,1331——1,1201———
x8x8__woesíincluded0,0644weak0,56180,12350,0978——1,2455———
x9x9__woenolow_iv0,0175—0,53370,06740,0646—————IV 0,0175 < mínimo 0,02
Factor de inflación de varianza (VIF)
iterationfeaturewoe_columnvifremovedreason
0x1x1__woe1,1029no—
0x2x2__woe1,6039no—
0x3x3__woe1,1347no—
0x4x4__woe1,0417no—
0x6x6__woe1,0507no—
0x12x12__woe1,7488no—
0x5x5__woe1,7337no—
0x15x15__woe1,5146no—
0x7x7__woe1,1201no—
0x14x14__woe1,0847no—
0x8x8__woe1,2455no—
0x13x13__woe1,1239no—
0x17x17__woe1,2878no—
0x19x19__woe1,2788no—

4.3Modelo PD

El modelo final incluye 11 variables: «x1», «x14», «x15», «x19», «x2», «x3», «x4», «x5», «x6», «x7» y «x8».

En el ajuste in-sample, el optimizador convergió, el ajuste usó 598 observaciones de Desarrollo, de las cuales 168 son incumplimientos y el pseudo-R² de McFadden es 0,2398.

Marcadas por concentrar una contribución excesiva al IV del modelo: «x1».

Coeficientes del modelo (β, IC 95 %) image/svg+xml -3,50 -3,00 -2,50 -2,00 -1,50 -1,00 -0,50 0,00 Coeficiente β (IC 95 %) x2 x15 x14 x3 x1 x6 x4 x7 x5 x8 x19 Coeficientes del modelo (β, IC 95 %)
Coeficientes del modelo PD
featurewoe_columnbetastandard_errorwald_zp_valueconf_lowconf_highexpected_signsign_okiviv_contribution
interceptconst-0,96840,1103-8,7754< 0,001-1,1846-0,7521————
x1x1__woe-0,81610,1639-4,9806< 0,001-1,1373-0,49496negativesí0,45360,2376
x14x14__woe-0,68710,3344-2,05460,0399-1,3425-0,0316negativesí0,09860,0517
x15x15__woe-0,67090,3101-2,16350,031-1,2786-0,0631negativesí0,11490,0602
x19x19__woe-1,86050,7651-2,43150,015-3,3601-0,3608negativesí0,02290,01201
x2x2__woe-0,63740,23903-2,66640,008-1,1059-0,1689negativesí0,28570,1496
x3x3__woe-0,70890,2086-3,39801< 0,001-1,1178-0,30001negativesí0,27570,1444
x4x4__woe-0,963030,2576-3,73805< 0,001-1,46797-0,4581negativesí0,177020,0927
x5x5__woe-1,20660,3689-3,270990,001-1,9297-0,4836negativesí0,141980,0744
x6x6__woe-0,89050,2841-3,13420,002-1,4473-0,3336negativesí0,16990,08899
x7x7__woe-1,04690,335002-3,12510,002-1,7035-0,3903negativesí0,10440,0547
x8x8__woe-1,73020,4926-3,5127< 0,001-2,6957-0,7648negativesí0,06440,0337

4.4Scorecard

El scorecard asigna puntajes a los tramos de 11 variables.

Scorecard — puntajes por atributo
featurewoe_columnbin_labelbin_indexwoebetaintercept_shareraw_pointspointsrounding_deltasource
x1x1__woeA1400,8964-0,8161-0,0880367,93205680,06795binning_table
x1x1__woeA1310,3287-0,8161-0,0880354,5639550,4361binning_table
x1x1__woeA122-0,2765-0,8161-0,0880340,312440-0,3124binning_table
x1x1__woeA113-0,7355-0,8161-0,0880329,50403300,49597binning_table
x1x1__woeValores especiales40,0000-0,8161-0,0880346,82398470,17602binning_table
x1x1__woeFaltantes50,0000-0,8161-0,0880346,82398470,17602binning_table
x1x1__woeCategorías no vistas → como «A11»—-0,7355-0,8161-0,0880329,50403300,49597binning_table
x14x14__woeA14300,1672-0,6871-0,0880350,137950-0,1379binning_table
x14x14__woeA1421-0,428996-0,6871-0,0880338,319138-0,3191binning_table
x14x14__woeA1412-0,6387-0,6871-0,0880334,161434-0,1614binning_table
x14x14__woeValores especiales30,0000-0,6871-0,0880346,82398470,17602binning_table
x14x14__woeFaltantes40,0000-0,6871-0,0880346,82398470,17602binning_table
x14x14__woeCategorías no vistas → como «A141»—-0,6387-0,6871-0,0880334,161434-0,1614binning_table
x15x15__woeA15200,2118-0,6709-0,0880350,9247510,0753binning_table
x15x15__woeA1511-0,3186-0,6709-0,0880340,6558410,3442binning_table
x15x15__woeA1532-0,7457-0,6709-0,0880332,3899532-0,38995binning_table
x15x15__woeValores especiales30,0000-0,6709-0,0880346,82398470,17602binning_table
x15x15__woeFaltantes40,0000-0,6709-0,0880346,82398470,17602binning_table
x15x15__woeCategorías no vistas → como «A153»—-0,7457-0,6709-0,0880332,3899532-0,38995binning_table
x19x19__woeA19200,1857-1,8605-0,0880356,7953570,2047binning_table
x19x19__woeA1911-0,1237-1,8605-0,0880340,182840-0,1828binning_table
x19x19__woeValores especiales20,0000-1,8605-0,0880346,82398470,17602binning_table
x19x19__woeFaltantes30,0000-1,8605-0,0880346,82398470,17602binning_table
x19x19__woeCategorías no vistas → como «A191»—-0,1237-1,8605-0,0880340,182840-0,1828binning_table
x2x2__woe< 8,501,0751-0,6374-0,0880366,5953670,4047binning_table
x2x2__woe≥ 8,5 y < 11,510,6443-0,6374-0,0880358,67299590,32701binning_table
x2x2__woe≥ 11,5 y < 15,520,3129-0,6374-0,0880352,5792530,4208binning_table
x2x2__woe≥ 15,5 y < 25,530,0302-0,6374-0,0880347,378947-0,3789binning_table
x2x2__woe≥ 25,5 y < 31,54-0,3933-0,6374-0,0880339,5914400,4086binning_table
x2x2__woe≥ 31,55-0,8643-0,6374-0,0880330,9288310,0712binning_table
x2x2__woeValores especiales60,0000-0,6374-0,0880346,82398470,17602binning_table
x2x2__woeFaltantes70,0000-0,6374-0,0880346,82398470,17602binning_table
x3x3__woeA3400,6379-0,7089-0,0880359,8713600,1287binning_table
x3x3__woeA321-0,048003-0,7089-0,0880345,8421460,1579binning_table
x3x3__woeA332-0,3007-0,7089-0,0880340,6725410,3275binning_table
x3x3__woeA30, A313-1,3647-0,7089-0,0880318,9096190,0904binning_table
x3x3__woeValores especiales40,0000-0,7089-0,0880346,82398470,17602binning_table
x3x3__woeFaltantes50,0000-0,7089-0,0880346,82398470,17602binning_table
x3x3__woeCategorías no vistas → como «A30, A31»—-1,3647-0,7089-0,0880318,9096190,0904binning_table
x4x4__woeA4100,9126-0,96303-0,0880372,181472-0,1814binning_table
x4x4__woeA4310,3321-0,96303-0,0880356,0510256-0,05102binning_table
x4x4__woeA45, A4220,0063-0,96303-0,0880346,9997470,00034binning_table
x4x4__woeA403-0,2892-0,96303-0,0880338,78703390,21297binning_table
x4x4__woeA494-0,3173-0,96303-0,0880338,007438-0,0074binning_table
x4x4__woeA465-0,9398-0,96303-0,0880320,7091210,2909binning_table
x4x4__woeA44, A410, A4860,0898-0,96303-0,0880349,319249-0,3192binning_table
x4x4__woeValores especiales70,0000-0,96303-0,0880346,82398470,17602binning_table
x4x4__woeFaltantes80,0000-0,96303-0,0880346,82398470,17602binning_table
x4x4__woeCategorías no vistas → como «A46»—-0,9398-0,96303-0,0880320,7091210,2909binning_table
x5x5__woe< 1.766,500,24802-1,2066-0,0880355,459255-0,4592binning_table
x5x5__woe≥ 1.766,5 y < 3.99810,2045-1,2066-0,0880353,9444540,0556binning_table
x5x5__woe≥ 3.998 y < 7.760,52-0,4543-1,2066-0,0880331,006431-0,0064binning_table
x5x5__woe≥ 7.760,53-0,8933-1,2066-0,0880315,7223160,2777binning_table
x5x5__woeValores especiales40,0000-1,2066-0,0880346,82398470,17602binning_table
x5x5__woeFaltantes50,0000-1,2066-0,0880346,82398470,17602binning_table
x6x6__woeA6401,2938-0,8905-0,0880380,065380-0,0653binning_table
x6x6__woeA6310,6108-0,8905-0,0880362,5169630,4831binning_table
x6x6__woeA6520,4786-0,8905-0,0880359,119859-0,1198binning_table
x6x6__woeA6230,0336-0,8905-0,0880347,68799480,31201binning_table
x6x6__woeA614-0,2768-0,8905-0,0880339,7125400,2875binning_table
x6x6__woeValores especiales50,0000-0,8905-0,0880346,82398470,17602binning_table
x6x6__woeFaltantes60,0000-0,8905-0,0880346,82398470,17602binning_table
x6x6__woeCategorías no vistas → como «A61»—-0,2768-0,8905-0,0880339,7125400,2875binning_table
x7x7__woeA7400,39995-1,0469-0,0880358,9054590,0946binning_table
x7x7__woeA7510,2999-1,0469-0,0880355,8822560,1178binning_table
x7x7__woeA732-0,03695-1,0469-0,0880345,7077460,2923binning_table
x7x7__woeA723-0,4732-1,0469-0,0880332,5299330,4701binning_table
x7x7__woeA714-0,4935-1,0469-0,0880331,9157320,0843binning_table
x7x7__woeValores especiales50,0000-1,0469-0,0880346,82398470,17602binning_table
x7x7__woeFaltantes60,0000-1,0469-0,0880346,82398470,17602binning_table
x7x7__woeCategorías no vistas → como «A71»—-0,4935-1,0469-0,0880331,9157320,0843binning_table
x8x8__woe< 1,500,6108-1,7302-0,0880377,316677-0,3166binning_table
x8x8__woe≥ 1,5 y < 2,510,1032-1,7302-0,0880351,9772520,0228binning_table
x8x8__woe≥ 2,5 y < 3,520,0253-1,7302-0,0880348,085148-0,0851binning_table
x8x8__woe≥ 3,53-0,1943-1,7302-0,0880337,123437-0,1234binning_table
x8x8__woeValores especiales40,0000-1,7302-0,0880346,82398470,17602binning_table
x8x8__woeFaltantes50,0000-1,7302-0,0880346,82398470,17602binning_table

4.5Calibración

En Desarrollo, la PD media calibrada es 28,09 %, frente a 28,09 % antes de calibrar, contra una tasa de incumplimiento observada de 28,09 %.

La calibración preservó el ordenamiento de las observaciones: la capacidad discriminante del modelo no se altera.

Curva de calibración (confiabilidad) por partición image/svg+xml 0,00 0,20 0,40 0,60 0,80 1,00 PD predicha (media por bin) 0,00 0,20 0,40 0,60 0,80 1,00 Tasa de default observada Curva de calibración (confiabilidad) por partición Calibración perfecta desarrollo (Brier=0,14699, ECE=0,0371) holdout (Brier=0,1665, ECE=0,0878)

4.6Desempeño y discriminación

Las métricas de discriminación se calcularon sobre la PD calibrada.

En Desarrollo el modelo alcanza AUC 0,8227, Gini 0,6455 y KS 0,5053.

En Holdout el modelo alcanza AUC 0,8237, Gini 0,6474 y KS 0,55403.

La tabla de desempeño usa hasta 10 tramos de riesgo configurados, ordenados por la PD calibrada. Los tramos efectivos por partición fueron Desarrollo: 10 y Holdout: 10, y permiten verificar la evolución de la tasa de incumplimiento observada entre tramos.

Curva de ganancia acumulada por partición image/svg+xml 0,00 0,20 0,40 0,60 0,80 1,00 Fracción acumulada de población 0,00 0,20 0,40 0,60 0,80 1,00 Fracción de malos capturada Curva de ganancia acumulada por partición Aleatorio desarrollo holdout
Discriminación (AUC/Gini/KS) por partición image/svg+xml desarrollo holdout 0,00 0,20 0,40 0,60 0,80 1,00 Valor de la métrica Discriminación (AUC/Gini/KS) por partición AUC GINI KS
Métricas de discriminación por partición
partitionn_totaln_badn_goodaucginiksks_cutoff_risk_scoreks_cutoff_scoretpr_at_ksfpr_at_kssourcestatus
desarrollo5981684300,82270,64550,50530,26601—0,77980,2744pd_calibratedok
holdout15253990,82370,64740,554030,3043—0,73580,1818pd_calibratedok
Desempeño por tramo de riesgo
partitiondecilen_totaln_badn_goodbad_rategood_ratemean_pdmin_pdmax_pdmean_scoremin_scoremax_scorecum_totalcum_badcum_goodcum_bad_capture_ratecum_good_capture_rateliftks_at_decile
desarrollo16043170,71670,28330,75850,65950,9531452,6833401,0000468,00006043170,255950,03952,550990,2164
desarrollo26039210,65000,35000,58270,51940,6583478,0667469,0000485,000012082380,48810,08842,31370,3997
desarrollo36026340,43330,56670,43830,3640010,5168495,0167485,0000505,0000180108720,64290,16741,54250,4754
desarrollo46019410,31670,68330,32660,27980,3632508,5333503,0000516,00002401271130,755950,26281,12720,4932
desarrollo56015450,25000,75000,23550,20030,2794521,6000514,0000527,00003001421580,84520,36740,88990,4778
desarrollo66013470,21670,78330,17460,14730,19999532,4167527,0000539,00003601552050,92260,47670,77120,4459
desarrollo7603570,05000,95000,12450,104960,147004544,0500538,0000550,00004201582620,94050,60930,177980,3312
desarrollo8603570,05000,95000,08640,06740,1048555,8000549,0000562,00004801613190,95830,74190,177980,2165
desarrollo9597520,11860,88140,05260,03720,0668571,4407564,0000582,00005391683711,00000,86280,42230,1372
desarrollo10590590,00001,00000,02150,00490,03704600,5763581,0000641,00005981684301,00001,00000,00000,0000
holdout1161330,81250,18750,82350,69990,9319440,2500412,0000464,0000161330,24530,03032,33020,21498
holdout2161150,68750,31250,581030,44530,6921478,1875464,0000494,0000322480,45280,08081,97170,37202
holdout3151050,66670,33330,39090,35020,4452500,2667493,0000505,00004734130,64150,13131,91190,5102
holdout4155100,33330,66670,31240,27650,34996510,4000506,0000515,00006239230,73580,23230,955970,5035
holdout5154110,26670,73330,24490,21850,27602520,1333515,0000524,00007743340,81130,34340,76480,4679
holdout6155100,33330,66670,19610,17710,2174528,5333525,0000532,00009248440,90570,44440,955970,4612
holdout7150150,00001,00000,13980,11080,1701540,2000532,0000547,000010748590,90570,595960,00000,3097
holdout8153120,20000,80000,09050,07550,1071554,2000549,0000559,000012251710,96230,71720,57360,2451
holdout9151140,06670,93330,05760,03940,0748568,8000560,0000580,000013752850,98110,85860,19120,1225
holdout10151140,06670,93330,02490,00580,0391596,8667580,0000636,000015253991,00001,00000,19120,0000

4.7Estabilidad

El peor PSI entre score y PD en Desarrollo vs. Holdout es 0,0764 (banda «Estable»); corresponde al score. La distribución de la magnitud ganadora se mantiene, de modo que no hay desplazamiento poblacional.

A nivel de variable, el mayor CSI corresponde a «x3__points» con 0,0444.

Se configuraron hasta 10 tramos por magnitud para el PSI, definidos en Desarrollo.

Estabilidad PSI/CSI por comparación image/svg+xml 0,00 0,05 0,10 0,15 0,20 0,25 PSI / CSI csi·dev_vs_holdout·x19__points csi·dev_vs_holdout·x15__points csi·dev_vs_holdout·x6__points csi·dev_vs_holdout·x14__points csi·dev_vs_holdout·x7__points csi·dev_vs_holdout·x8__points csi·dev_vs_holdout·x5__points csi·dev_vs_holdout·x2__points csi·dev_vs_holdout·x1__points csi·dev_vs_holdout·x4__points csi·dev_vs_holdout·x3__points pd_psi·dev_vs_holdout·pd_calibrated score_psi·dev_vs_holdout·score Estabilidad PSI/CSI por comparación Revisión: 0,10 ≤ índice < 0,25 Redesarrollo: índice ≥ 0,25
Métricas de estabilidad (PSI/CSI)
metriccomparisonfeaturevaluestable_thresholdreview_thresholdbandaction
score_psidev_vs_holdoutscore0,07640,100,25stable—
pd_psidev_vs_holdoutpd_calibrated0,06120,100,25stable—
csidev_vs_holdoutx14__points0,01050,100,25stable—
csidev_vs_holdoutx15__points0,00440,100,25stable—
csidev_vs_holdoutx19__points0,00240,100,25stable—
csidev_vs_holdoutx1__points0,03960,100,25stable—
csidev_vs_holdoutx2__points0,02870,100,25stable—
csidev_vs_holdoutx3__points0,04440,100,25stable—
csidev_vs_holdoutx4__points0,041960,100,25stable—
csidev_vs_holdoutx5__points0,02640,100,25stable—
csidev_vs_holdoutx6__points0,00540,100,25stable—
csidev_vs_holdoutx7__points0,01140,100,25stable—
csidev_vs_holdoutx8__points0,01670,100,25stable—
PSI por tramo de score
metriccomparisonfeaturebin_labelexpected_countactual_countexpected_pctactual_pctcomponent_valuetotal_valueband
score_psidev_vs_holdoutscorebin_0060190,10030,12500,00540,0764stable
score_psidev_vs_holdoutscorebin_015580,091970,05260,021960,0764stable
score_psidev_vs_holdoutscorebin_0264180,107020,11840,00120,0764stable
score_psidev_vs_holdoutscorebin_0357150,09530,09870,000120,0764stable
score_psidev_vs_holdoutscorebin_0456200,09360,13160,01290,0764stable
score_psidev_vs_holdoutscorebin_0562180,10370,11840,001960,0764stable
score_psidev_vs_holdoutscorebin_066090,10030,05920,02170,0764stable
score_psidev_vs_holdoutscorebin_0761190,102010,12500,00470,0764stable
score_psidev_vs_holdoutscorebin_0863130,10540,08550,00410,0764stable
score_psidev_vs_holdoutscorebin_0960130,10030,08550,00240,0764stable
pd_psidev_vs_holdoutpd_calibratedbin_0060130,10030,08550,00240,0612stable
pd_psidev_vs_holdoutpd_calibratedbin_0160130,10030,08550,00240,0612stable
pd_psidev_vs_holdoutpd_calibratedbin_0260170,10030,11180,00120,0612stable
pd_psidev_vs_holdoutpd_calibratedbin_0359110,09870,07240,00810,0612stable
pd_psidev_vs_holdoutpd_calibratedbin_0460160,10030,10530,000240,0612stable
pd_psidev_vs_holdoutpd_calibratedbin_0560220,10030,14470,01630,0612stable
pd_psidev_vs_holdoutpd_calibratedbin_0659140,09870,09210,000450,0612stable
pd_psidev_vs_holdoutpd_calibratedbin_0760180,10030,11840,0029980,0612stable
pd_psidev_vs_holdoutpd_calibratedbin_086090,10030,05920,02170,0612stable
pd_psidev_vs_holdoutpd_calibratedbin_0960190,10030,12500,00540,0612stable
csidev_vs_holdoutx14__points34 puntos87230,14550,15130,000230,0105stable
csidev_vs_holdoutx14__points38 puntos3250,05350,03290,010030,0105stable
csidev_vs_holdoutx14__points50 puntos4791240,8010030,81580,000270,0105stable
csidev_vs_holdoutx15__points32 puntos62160,10370,10530,0000240,0044stable
csidev_vs_holdoutx15__points41 puntos103300,17220,19740,00340,0044stable
csidev_vs_holdoutx15__points51 puntos4331060,72410,69740,0010040,0044stable
csidev_vs_holdoutx19__points40 puntos349850,58360,55920,001040,0024stable
csidev_vs_holdoutx19__points57 puntos249670,41640,44080,00140,0024stable
csidev_vs_holdoutx1__points30 puntos167380,27930,25000,00320,0396stable
csidev_vs_holdoutx1__points40 puntos150460,25080,30260,00970,0396stable
csidev_vs_holdoutx1__points55 puntos4150,06860,03290,02620,0396stable
csidev_vs_holdoutx1__points68 puntos240630,40130,41450,000420,0396stable
csidev_vs_holdoutx2__points31 puntos106290,17730,19080,0009960,0287stable
csidev_vs_holdoutx2__points40 puntos30120,05020,07890,013050,0287stable
csidev_vs_holdoutx2__points47 puntos211500,35280,32890,00170,0287stable
csidev_vs_holdoutx2__points53 puntos153320,25590,21050,00880,0287stable
csidev_vs_holdoutx2__points59 puntos47140,07860,09210,00210,0287stable
csidev_vs_holdoutx2__points67 puntos51150,08530,09870,001960,0287stable
csidev_vs_holdoutx3__points19 puntos43200,07190,13160,03610,0444stable
csidev_vs_holdoutx3__points41 puntos55120,091970,07890,001990,0444stable
csidev_vs_holdoutx3__points46 puntos313790,52340,51970,0000260,0444stable
csidev_vs_holdoutx3__points60 puntos187410,31270,26970,00640,0444stable
csidev_vs_holdoutx4__points21 puntos3070,05020,04610,000350,04196stable
csidev_vs_holdoutx4__points38 puntos63140,10540,09210,00180,04196stable
csidev_vs_holdoutx4__points39 puntos140320,23410,21050,00250,04196stable
csidev_vs_holdoutx4__points47 puntos118380,19730,25000,01250,04196stable
csidev_vs_holdoutx4__points49 puntos1980,03180,05260,01050,04196stable
csidev_vs_holdoutx4__points56 puntos169350,28260,23030,01070,04196stable
csidev_vs_holdoutx4__points72 puntos59180,09870,11840,00360,04196stable
csidev_vs_holdoutx5__points16 puntos43180,07190,11840,02320,0264stable
csidev_vs_holdoutx5__points31 puntos105260,17560,17110,000120,0264stable
csidev_vs_holdoutx5__points54 puntos236550,39460,36180,00280,0264stable
csidev_vs_holdoutx5__points55 puntos214530,35790,34870,000240,0264stable
csidev_vs_holdoutx6__points40 puntos347930,58030,61180,00170,0054stable
csidev_vs_holdoutx6__points48 puntos62160,10370,10530,0000240,0054stable
csidev_vs_holdoutx6__points59 puntos118270,19730,17760,00210,0054stable
csidev_vs_holdoutx6__points63 puntos4090,06690,05920,000940,0054stable
csidev_vs_holdoutx6__points80 puntos3170,05180,04610,000680,0054stable
csidev_vs_holdoutx7__points32 puntos4190,06860,05920,00140,0114stable
csidev_vs_holdoutx7__points33 puntos96280,16050,18420,00330,0114stable
csidev_vs_holdoutx7__points46 puntos208470,34780,30920,00450,0114stable
csidev_vs_holdoutx7__points56 puntos147410,24580,26970,00220,0114stable
csidev_vs_holdoutx7__points59 puntos106270,17730,17767,9e-070,0114stable
csidev_vs_holdoutx8__points37 puntos289700,48330,46050,00110,0167stable
csidev_vs_holdoutx8__points48 puntos87260,14550,17110,00410,0167stable
csidev_vs_holdoutx8__points52 puntos142310,23750,20390,00510,0167stable
csidev_vs_holdoutx8__points77 puntos80250,13380,16450,00630,0167stable

4.8Escala maestra y puntos de corte

5 tramos de puntaje, del 1, de menor riesgo, al 5; cada uno con al menos el 5 % de Desarrollo y una tasa de malos distinta de la de sus vecinos.

PD del tramo de 5,44 % a 73,80 %; su promedio en Desarrollo es el ancla de la calibración, 28,09 %.

En Holdout la tasa de malos sigue el orden de los tramos con contraste y ninguno subestima su PD.

El tramo mayor tiene el 38,0 % de Desarrollo (tramo 1); índice de concentración 0,246.

Sin corte declarado: la tabla de cortes muestra, para cada límite, cuánto se aprueba, la tasa de malos, los malos evitados y los buenos rechazados.

La PD de cada tramo es su tasa de malos de Desarrollo llevada al ancla de la calibración; en una cartera de aprobados, la tabla mide a quien pasó la política anterior.

Qué revisar: En Holdout, los tramos 3, 4 y 5 tienen menos de 30 operaciones con desenlace: sin contraste.

Escala maestra — los tramos y su PD
TramoPuntajePD del tramoParticipación DesarrolloTasa de malos DesarrolloSemáforo DesarrolloParticipación HoldoutTasa de malos HoldoutSemáforo Holdout
1desde 541 puntos5,44 %37,96 %5,29 %Verde34,87 %9,43 %Verde
2de 517 a 540 puntos20,61 %20,40 %20,49 %Verde22,37 %23,53 %Verde
3de 503 a 516 puntos34,29 %12,21 %34,25 %Verde15,13 %39,13 %Sin contraste
4de 472 a 502 puntos50,75 %17,73 %50,94 %Verde13,82 %66,67 %Sin contraste
5hasta 471 puntos73,80 %11,71 %74,29 %Verde13,82 %80,95 %Sin contraste
Tabla de puntos de corte
MuestraAprobarPuntajeAprobadosTasa de malos de los aprobadosPD esperada de los aprobadosMalos evitadosBuenos rechazados
DesarrolloTramos 1 a 1desde 541 puntos37,96 %5,29 %5,44 %92,86 %50,00 %
DesarrolloTramos 1 a 2desde 517 puntos58,36 %10,60 %10,75 %77,98 %27,44 %
DesarrolloTramos 1 a 3desde 503 puntos70,57 %14,69 %14,82 %63,10 %16,28 %
DesarrolloTramos 1 a 4desde 472 puntos88,29 %21,97 %22,03 %30,95 %4,19 %
DesarrolloTodos los tramostodos los puntajes100,00 %28,09 %28,09 %0,00 %0,00 %
HoldoutTramos 1 a 1desde 541 puntos34,87 %9,43 %5,44 %90,57 %51,52 %
HoldoutTramos 1 a 2desde 517 puntos57,24 %14,94 %11,37 %75,47 %25,25 %
HoldoutTramos 1 a 3desde 503 puntos72,37 %20,00 %16,17 %58,49 %11,11 %
HoldoutTramos 1 a 4desde 472 puntos86,18 %27,48 %21,71 %32,08 %4,04 %
HoldoutTodos los tramostodos los puntajes100,00 %34,87 %28,91 %0,00 %0,00 %

5Validación formal

La validación formal del modelo «german_fabrica» ejecutó discriminación, calibración y estabilidad. El estado técnico agregado publicado por el motor es «Pasa».

El resultado registra 1 prueba, de las cuales 0 quedaron fallidas. Las tablas se copian del resultado que publicó la validación, sin recalcular métricas ni decisiones.

Este estado es evidencia técnica; el veredicto de aprobación, aprobación con observaciones o rechazo corresponde al validador humano y queda POR COMPLETAR.

POR COMPLETAR — Veredicto de validación formal

Emite el juicio humano sobre la aptitud del modelo para su uso previsto: aprobar, aprobar con observaciones o rechazar.

Documenta observaciones, responsables, plazos y la fecha de la próxima revisión; el estado técnico del motor no sustituye este veredicto.

5.1Discriminación

La tabla reproduce por partición AUC, Gini y KS, junto con población, fuente y estado de evaluabilidad. Filas evaluadas: 2.

Validación formal — discriminación
partitionn_totaln_badaucginikssourcestatus
Desarrollo5981680,82270,64550,5053Reusada de la etapa de desempeñoEvaluada
Holdout152530,82370,64740,55403Reusada de la etapa de desempeñoEvaluada

5.2Calibración

La tabla reúne Hosmer-Lemeshow, Brier y, cuando fue configurado, el contraste por grado con sus decisiones y semáforo publicados. Filas publicadas: 4; 1 sin veredicto.

Hosmer-Lemeshow no se evaluó en la muestra Holdout: un grupo de PD quedó bajo el mínimo de operaciones (con 152 operaciones en 10 grupos de PD, el grupo de PD más chico quedó con 15 operaciones, bajo el mínimo de 30).

Validación formal — calibración
partitiontestgradenobserved_defaultsexpected_pdobserved_drstatisticdegrees_of_freedomp_valuealphadecisiontraffic_light
DesarrolloHosmer-Lemeshow—5981680,28090,280912,180680,1430,05Pasa—
DesarrolloPuntaje de Brier—5981680,28090,28090,14699———Sin veredicto—
HoldoutHosmer-Lemeshow—152530,29160,3487—8——Sin veredicto—
HoldoutPuntaje de Brier—152530,29160,34870,1665———Sin veredicto—
Hosmer-Lemeshow por grupo · Desarrollo
GrupoObservacionesMalos observadosMalos esperadosTasa observada (%)PD media (%)Diferencia (pp)O/EContribución al estadístico
16001,30000,00002,1800-2,18000,00001,3400
26073,200011,67005,34006,33002,18604,7600
36035,30005,00008,7600-3,76000,57101,0600
46037,60005,000012,5900-7,59000,39703,1400
5601310,600021,670017,64004,02001,22800,6700
6601514,300025,000023,81001,19001,05000,0500
7602019,800033,330032,95000,39001,01200,0000
8602626,600043,330044,3500-1,02000,97700,0300
9593834,600064,410058,61005,80001,09900,8200
10594344,800072,880076,0200-3,13000,95900,3200

5.3Estabilidad

La tabla reproduce PSI/estabilidad, umbrales, banda, acción y la decisión que dejó la validación. Filas evaluadas: 13.

Validación formal — estabilidad
metriccomparisonfeaturevaluestable_thresholdreview_thresholdbandactionsourcestatusdecision
PSI del scoreDesarrollo vs. Holdoutscore0,07640,100,25Estable—Reusado de la etapa de estabilidadEvaluadaPasa
PSI de la PDDesarrollo vs. Holdoutpd_calibrated0,06120,100,25Estable—Reusado de la etapa de estabilidadEvaluadaPasa
CSIDesarrollo vs. Holdoutx14__points0,01050,100,25Estable—Reusado de la etapa de estabilidadEvaluadaPasa
CSIDesarrollo vs. Holdoutx15__points0,00440,100,25Estable—Reusado de la etapa de estabilidadEvaluadaPasa
CSIDesarrollo vs. Holdoutx19__points0,00240,100,25Estable—Reusado de la etapa de estabilidadEvaluadaPasa
CSIDesarrollo vs. Holdoutx1__points0,03960,100,25Estable—Reusado de la etapa de estabilidadEvaluadaPasa
CSIDesarrollo vs. Holdoutx2__points0,02870,100,25Estable—Reusado de la etapa de estabilidadEvaluadaPasa
CSIDesarrollo vs. Holdoutx3__points0,04440,100,25Estable—Reusado de la etapa de estabilidadEvaluadaPasa
CSIDesarrollo vs. Holdoutx4__points0,041960,100,25Estable—Reusado de la etapa de estabilidadEvaluadaPasa
CSIDesarrollo vs. Holdoutx5__points0,02640,100,25Estable—Reusado de la etapa de estabilidadEvaluadaPasa
CSIDesarrollo vs. Holdoutx6__points0,00540,100,25Estable—Reusado de la etapa de estabilidadEvaluadaPasa
CSIDesarrollo vs. Holdoutx7__points0,01140,100,25Estable—Reusado de la etapa de estabilidadEvaluadaPasa
CSIDesarrollo vs. Holdoutx8__points0,01670,100,25Estable—Reusado de la etapa de estabilidadEvaluadaPasa

6Conclusiones y recomendación

Discriminación (AUC): Desarrollo 0,8227 y Holdout 0,8237.

Estabilidad (peor PSI entre score y PD): Desarrollo vs. Holdout 0,0764 («Estable»; score).

Calibración: la PD media calibrada en Desarrollo (28,09 %) se contrasta con la tasa observada (28,09 %).

Estos hallazgos son los que el motor puede sostener con los números de la corrida. La recomendación —aprobar, aprobar con observaciones o rechazar— es un juicio humano y no se deriva automáticamente de ellos.

POR COMPLETAR — Conclusiones y recomendación

Emite el juicio: ¿el modelo es apto para el uso previsto? La recomendación (aprobar, aprobar con observaciones o rechazar) la firma un humano, no el motor.

Enumera las observaciones y condiciones de uso, con responsable y plazo para cada una, y fija la fecha de la próxima revisión.

7Limitaciones y supuestos

El alcance de este informe es la construcción y evaluación del scorecard. La validación formal ejecutó discriminación, calibración y estabilidad y se documenta en su capítulo propio; el estado técnico no sustituye el veredicto humano.

Todas las métricas provienen de la corrida trazada en el Anexo A. El informe no completa ningún hueco con supuestos: lo que no se pudo calcular aparece declarado como no disponible.

Caveats de reproducibilidad declarados por la corrida: git no disponible: la corrida no tiene SHA de origen.

No hay secciones obligatorias ausentes en esta corrida.

Anexo A —Lineage y reproducibilidad

La corrida queda identificada por los hashes de configuración y de datos, el commit del código y la semilla raíz. Con estos cuatro valores el resultado es reproducible.

Parámetros y payload

config_hash
8ff907caa558c9d480cbcf0f74ed9fe77347d4ab1f399e90ea83c2c7bef94b8b
created_at
2026-10-19T14:00:01.273091Z
data_hash
43b7a944f9be20b58f829f5bb3bc11075227c499f6c1df02c21d7f7184c9afd5
determinism_caveats
[
  "git no disponible: la corrida no tiene SHA de origen"
]
git_dirty
no
git_sha
—
library_versions
{
  "PyYAML": "6.0.3",
  "bayesrisk": "2.16.0",
  "numpy": "1.26.4",
  "pandas": "2.3.3",
  "pydantic": "2.14.1"
}
root_seed
20240706
runtime_environment_hash
d41688a64092ab4fe954a4623f0a637fe00e44f3b8d1ab76a8c7cfd837b4fb37
schema_version
1.0.0
uv_lock_hash
6c446c2ad040ff52262caae544ea32b26af36b8abebe5f10d5d276f49e967322

Anexo B —Tablas detalladas

Este anexo reproduce íntegras todas las tablas que produjo la corrida, incluidas las que el cuerpo del informe ya mostró. Es la trazabilidad completa: nada de lo que el motor calculó queda fuera del documento.

Parámetros y payload

figure_keys
[
  "eda.figures"
]
table_keys
[
  "eda.univariate.profiles.x1",
  "eda.univariate.profiles.x10",
  "eda.univariate.profiles.x11",
  "eda.univariate.profiles.x12",
  "eda.univariate.profiles.x13",
  "eda.univariate.profiles.x14",
  "eda.univariate.profiles.x15",
  "eda.univariate.profiles.x16",
  "eda.univariate.profiles.x17",
  "eda.univariate.profiles.x18",
  "eda.univariate.profiles.x19",
  "eda.univariate.profiles.x2",
  "eda.univariate.profiles.x20",
  "eda.univariate.profiles.x3",
  "eda.univariate.profiles.x4",
  "eda.univariate.profiles.x5",
  "eda.univariate.profiles.x6",
  "eda.univariate.profiles.x7",
  "eda.univariate.profiles.x8",
  "eda.univariate.profiles.x9",
  "eda.quality.by_column",
  "binning.tables.x1",
  "binning.tables.x10",
  "binning.tables.x11",
  "binning.tables.x12",
  "binning.tables.x13",
  "binning.tables.x14",
  "binning.tables.x15",
  "binning.tables.x16",
  "binning.tables.x17",
  "binning.tables.x18",
  "binning.tables.x19",
  "binning.tables.x2",
  "binning.tables.x20",
  "binning.tables.x3",
  "binning.tables.x4",
  "binning.tables.x5",
  "binning.tables.x6",
  "binning.tables.x7",
  "binning.tables.x8",
  "binning.tables.x9",
  "binning.summary",
  "binning.woe_frame",
  "selection.selected_woe_frame",
  "selection.selection_table",
  "selection.correlation_matrix",
  "selection.vif_table",
  "selection.stability_table",
  "model.coefficients",
  "model.raw_pd_frame",
  "scorecard.scorecard",
  "scorecard.score",
  "calibration.calibrated_pd_frame",
  "performance.performance_table",
  "performance.discriminant_metrics",
  "stability.psi_table",
  "stability.stability_metrics",
  "master_scale.grades",
  "master_scale.grade_table",
  "master_scale.cutoff_table",
  "data.states",
  "data.partitions",
  "data.exclusions",
  "validation.discrimination",
  "validation.calibration",
  "validation.stability",
  "validation.hosmer_lemeshow_groups.desarrollo",
  "master_scale.scale",
  "master_scale.cutoffs"
]
Tabla de binning WoE — variable «x1»
BinCountCount (%)Non-eventEventEvent rateWoEIVJS
A142400,4013207330,13750,89640,25540,0309
A13410,06863290,21950,32870,00690,00085
A121500,250899510,3400-0,27650,02030,0025
A111670,279392750,4491-0,73550,170990,0209
Valores especiales00,0000000,00000,00000,00000,0000
Faltantes00,0000000,00000,00000,00000,0000
5981,00004301680,28090,45360,0552
Tabla de binning WoE — variable «x10»
BinCountCount (%)Non-eventEventEvent rateWoEIVJS
A103360,06022880,22220,31290,00550,00068
A101, A1025620,93984021600,2847-0,01850,000320,000041
Valores especiales00,0000000,00000,00000,00000,0000
Faltantes00,0000000,00000,00000,00000,0000
5981,00004301680,28090,00580,00072
Tabla de binning WoE — variable «x11»
BinCountCount (%)Non-eventEventEvent rateWoEIVJS
< 1,5800,133860200,25000,15880,00330,00041
≥ 1,5 y < 3,52590,4331185740,2857-0,02350,000240,0000301
≥ 3,52590,4331185740,2857-0,02350,000240,0000301
Valores especiales00,0000000,00000,00000,00000,0000
Faltantes00,0000000,00000,00000,00000,0000
5981,00004301680,28090,00370,00047
Tabla de binning WoE — variable «x12»
BinCountCount (%)Non-eventEventEvent rateWoEIVJS
A1211730,2893139340,19650,46830,05660,00701
A1221250,2090393320,25600,127040,00330,00041
A1232080,3478148600,2885-0,036950,000480,0000598
A124920,153850420,4565-0,76550,10240,0125
Valores especiales00,0000000,00000,00000,00000,0000
Faltantes00,0000000,00000,00000,00000,0000
5981,00004301680,28090,16270,01997
Tabla de binning WoE — variable «x13»
BinCountCount (%)Non-eventEventEvent rateWoEIVJS
< 25,51130,1889671420,3717-0,41480,03520,0044
≥ 25,5 y < 33,51860,31104132540,2903-0,0460030,000660,000083
≥ 33,52990,5000227720,24080,20850,02070,0026
Valores especiales00,0000000,00000,00000,00000,0000
Faltantes00,0000000,00000,00000,00000,0000
5981,00004301680,28090,05660,00704
Tabla de binning WoE — variable «x14»
BinCountCount (%)Non-eventEventEvent rateWoEIVJS
A1434790,8010033601190,24840,16720,02150,0027
A142320,053520120,3750-0,4289960,01070,0013
A141870,145550370,4253-0,63870,06640,0082
Valores especiales00,0000000,00000,00000,00000,0000
Faltantes00,0000000,00000,00000,00000,0000
5981,00004301680,28090,09860,0122
Tabla de binning WoE — variable «x15»
BinCountCount (%)Non-eventEventEvent rateWoEIVJS
A1524330,72413291040,24020,21180,03090,0039
A1511030,172267360,3495-0,31860,01860,0023
A153620,103734280,4516-0,74570,06530,00798
Valores especiales00,0000000,00000,00000,00000,0000
Faltantes00,0000000,00000,00000,00000,0000
5981,00004301680,28090,11490,0142
Tabla de binning WoE — variable «x16»
BinCountCount (%)Non-eventEventEvent rateWoEIVJS
< 1,53840,64212711130,2943-0,06510,00280,00034
≥ 1,52140,3579159550,257010,12170,00520,00064
Valores especiales00,0000000,00000,00000,00000,0000
Faltantes00,0000000,00000,00000,00000,0000
5981,00004301680,28090,00790,00099
Tabla de binning WoE — variable «x17»
BinCountCount (%)Non-eventEventEvent rateWoEIVJS
A1721090,182384250,22940,27210,01270,0016
A1733840,64212761080,2812-0,00160,00000151,9e-07
A174, A1711050,175670350,3333-0,24670,01120,0014
Valores especiales00,0000000,00000,00000,00000,0000
Faltantes00,0000000,00000,00000,00000,0000
5981,00004301680,28090,02390,00298
Tabla de binning WoE — variable «x18»
BinCountCount (%)Non-eventEventEvent rateWoEIVJS
< 1,55050,84453651400,27720,01840,000290,000036
≥ 1,5930,155565280,3011-0,09760,00150,00019
Valores especiales00,0000000,00000,00000,00000,0000
Faltantes00,0000000,00000,00000,00000,0000
5981,00004301680,28090,00180,00022
Tabla de binning WoE — variable «x19»
BinCountCount (%)Non-eventEventEvent rateWoEIVJS
A1922490,4164188610,244980,18570,01380,0017
A1913490,58362421070,3066-0,12370,00920,0011
Valores especiales00,0000000,00000,00000,00000,0000
Faltantes00,0000000,00000,00000,00000,0000
5981,00004301680,28090,02290,0029
Tabla de binning WoE — variable «x2»
BinCountCount (%)Non-eventEventEvent rateWoEIVJS
< 8,5510,08534560,11761,07510,07410,0088
≥ 8,5 y < 11,5470,07863980,17020,64430,02780,0034
≥ 11,5 y < 15,51530,2559119340,22220,31290,02330,0029
≥ 15,5 y < 25,52110,3528153580,27490,03020,000320,0000399
≥ 25,5 y < 31,5300,050219110,3667-0,39330,00840,00104
≥ 31,51060,177355510,4811-0,86430,15180,0184
Valores especiales00,0000000,00000,00000,00000,0000
Faltantes00,0000000,00000,00000,00000,0000
5981,00004301680,28090,28570,0346
Tabla de binning WoE — variable «x20»
BinCountCount (%)Non-eventEventEvent rateWoEIVJS
A202, A2015981,00004301680,28091,1e-160,00000,0000
Valores especiales00,0000000,00000,00000,00000,0000
Faltantes00,0000000,00000,00000,00000,0000
5981,00004301680,28090,00000,0000
Tabla de binning WoE — variable «x3»
BinCountCount (%)Non-eventEventEvent rateWoEIVJS
A341870,3127155320,17110,63790,10840,0133
A323130,5234222910,2907-0,0480030,00120,00015
A33550,0919736190,3455-0,30070,00880,0011
A30, A31430,071917260,6047-1,36470,15730,0183
Valores especiales00,0000000,00000,00000,00000,0000
Faltantes00,0000000,00000,00000,00000,0000
5981,00004301680,28090,27570,0328
Tabla de binning WoE — variable «x4»
BinCountCount (%)Non-eventEventEvent rateWoEIVJS
A41590,09875180,13560,91260,06480,0078
A431690,2826132370,21890,33210,02880,0036
A45, A421180,197385330,27970,00630,00000799,8e-07
A401400,234192480,3429-0,28920,02080,0026
A49630,105441220,3492-0,31730,01130,0014
A46300,050215150,5000-0,93980,05110,0062
A44, A410, A48190,03181450,26320,08980,000250,000031
Valores especiales00,0000000,00000,00000,00000,0000
Faltantes00,0000000,00000,00000,00000,0000
5981,00004301680,28090,177020,0216
Tabla de binning WoE — variable «x5»
BinCountCount (%)Non-eventEventEvent rateWoEIVJS
< 1.766,52140,3579164500,23360,248020,02080,0026
≥ 1.766,5 y < 3.9982360,3946179570,24150,20450,01570,00196
≥ 3.998 y < 7.760,51050,175665400,38095-0,45430,03950,0049
≥ 7.760,5430,071922210,4884-0,89330,065960,00798
Valores especiales00,0000000,00000,00000,00000,0000
Faltantes00,0000000,00000,00000,00000,0000
5981,00004301680,28090,141980,0174
Tabla de binning WoE — variable «x6»
BinCountCount (%)Non-eventEventEvent rateWoEIVJS
A64310,05182830,09681,29380,06110,0072
A63400,06693370,17500,61080,02140,0026
A651180,197395230,19490,47860,04020,00498
A62620,103745170,27420,03360,000120,000015
A613470,58032291180,3401-0,27680,0470040,0059
Valores especiales00,0000000,00000,00000,00000,0000
Faltantes00,0000000,00000,00000,00000,0000
5981,00004301680,28090,16990,0206
Tabla de binning WoE — variable «x7»
BinCountCount (%)Non-eventEventEvent rateWoEIVJS
A741060,177384220,20750,399950,02580,0032
A751470,2458114330,22450,29990,02060,0026
A732080,3478148600,2885-0,036950,000480,0000598
A72960,160559370,3854-0,47320,03930,0049
A71410,068625160,3902-0,49350,01830,0023
Valores especiales00,0000000,00000,00000,00000,0000
Faltantes00,0000000,00000,00000,00000,0000
5981,00004301680,28090,10440,01295
Tabla de binning WoE — variable «x8»
BinCountCount (%)Non-eventEventEvent rateWoEIVJS
< 1,5800,133866140,17500,61080,04280,0053
≥ 1,5 y < 2,51420,2375105370,26060,10320,00250,00031
≥ 2,5 y < 3,5870,145563240,27590,02530,0000920,000012
≥ 3,52890,4833196930,3218-0,19430,018990,0024
Valores especiales00,0000000,00000,00000,00000,0000
Faltantes00,0000000,00000,00000,00000,0000
5981,00004301680,28090,06440,00797
Tabla de binning WoE — variable «x9»
BinCountCount (%)Non-eventEventEvent rateWoEIVJS
A933410,5702253880,25810,11620,00750,00094
A94540,090338160,2963-0,07480,000510,000064
A92, A912030,3395139640,3153-0,16420,00950,0012
Valores especiales00,0000000,00000,00000,00000,0000
Faltantes00,0000000,00000,00000,00000,0000
5981,00004301680,28090,01750,0022
Perfil frente al incumplimiento — variable «x1»
tramoncoveragedefault_rate
A111670,27930,4491
A121500,25080,3400
A13410,06860,2195
A142400,40130,1375
Perfil frente al incumplimiento — variable «x10»
tramoncoveragedefault_rate
A1015340,892980,2772
A102280,04680,4286
A103360,06020,2222
Perfil frente al incumplimiento — variable «x11»
tramoncoveragedefault_rate
> 1 y ≤ 22530,42310,2846
> 2 y ≤ 3860,14380,2558
> 3 y ≤ 42590,43310,2857
Perfil frente al incumplimiento — variable «x12»
tramoncoveragedefault_rate
A1211730,28930,1965
A1221250,209030,2560
A1232080,34780,2885
A124920,15380,4565
Perfil frente al incumplimiento — variable «x13»
tramoncoveragedefault_rate
> 19 y ≤ 23,700000000000003600,10030,3667
> 23,700000000000003 y ≤ 26860,14380,31395
> 26 y ≤ 28580,096990,3103
> 28 y ≤ 30470,07860,3191
> 30 y ≤ 33,5480,08030,2917
> 33,5 y ≤ 36680,11370,1618
> 36 y ≤ 40610,102010,2131
> 40 y ≤ 45520,086960,3269
> 45 y ≤ 53600,10030,2333
> 53 y ≤ 75580,096990,2931
Perfil frente al incumplimiento — variable «x14»
tramoncoveragedefault_rate
A141870,14550,4253
A142320,05350,3750
A1434790,8010030,2484
Perfil frente al incumplimiento — variable «x15»
tramoncoveragedefault_rate
A1511030,17220,3495
A1524330,72410,2402
A153620,10370,4516
Perfil frente al incumplimiento — variable «x16»
tramoncoveragedefault_rate
> 1 y ≤ 25780,96660,28201
> 2 y ≤ 4200,03340,2500
Perfil frente al incumplimiento — variable «x17»
tramoncoveragedefault_rate
A171150,02510,4000
A1721090,18230,2294
A1733840,64210,2812
A174900,15050,3222
Perfil frente al incumplimiento — variable «x18»
tramoncoveragedefault_rate
> 1 y ≤ 25981,00000,2809
Perfil frente al incumplimiento — variable «x19»
tramoncoveragedefault_rate
A1913490,58360,3066
A1922490,41640,24498
Perfil frente al incumplimiento — variable «x2»
tramoncoveragedefault_rate
> 4 y ≤ 9790,13210,1519
> 9 y ≤ 121270,21240,2205
> 12 y ≤ 15450,07530,1778
> 15 y ≤ 18710,11870,3662
> 18 y ≤ 241400,23410,2286
> 24 y ≤ 30300,05020,3667
> 30 y ≤ 36510,08530,4706
> 36 y ≤ 72550,091970,4909
Perfil frente al incumplimiento — variable «x20»
tramoncoveragedefault_rate
A2015760,96320,2882
A202220,03680,0909
Perfil frente al incumplimiento — variable «x3»
tramoncoveragedefault_rate
A30150,02510,6000
A31280,04680,6071
A323130,52340,2907
A33550,091970,3455
A341870,31270,1711
Perfil frente al incumplimiento — variable «x4»
tramoncoveragedefault_rate
A401400,23410,3429
A41590,09870,1356
A41080,01340,3750
A421070,17890,2804
A431690,28260,2189
A4480,01340,2500
A45110,01840,2727
A46300,05020,5000
A49630,10540,3492
_otros_30,005020,0000
Perfil frente al incumplimiento — variable «x5»
tramoncoveragedefault_rate
> 276 y ≤ 944,6600,10030,3000
> 944,6 y ≤ 1.282,4600,10030,2167
> 1.282,4 y ≤ 1.526,4600,10030,2333
> 1.526,4 y ≤ 1.927,2590,09870,2542
> 1.927,2 y ≤ 2.338,5600,10030,3000
> 2.338,5 y ≤ 2.912,6000000000004600,10030,2500
> 2.912,6000000000004 y ≤ 3.598,6590,09870,1525
> 3.598,6 y ≤ 4.683,2600,10030,2833
> 4.683,2 y ≤ 6.879,400000000007600,10030,4000
> 6.879,400000000007 y ≤ 15.945600,10030,4167
Perfil frente al incumplimiento — variable «x6»
tramoncoveragedefault_rate
A613470,58030,3401
A62620,10370,2742
A63400,06690,1750
A64310,05180,0968
A651180,19730,1949
Perfil frente al incumplimiento — variable «x7»
tramoncoveragedefault_rate
A71410,06860,3902
A72960,16050,3854
A732080,34780,2885
A741060,17730,2075
A751470,24580,2245
Perfil frente al incumplimiento — variable «x8»
tramoncoveragedefault_rate
> 1 y ≤ 22220,37120,2297
> 2 y ≤ 3870,14550,2759
> 3 y ≤ 42890,48330,3218
Perfil frente al incumplimiento — variable «x9»
tramoncoveragedefault_rate
A91260,04350,4231
A921770,295990,2994
A933410,57020,2581
A94540,09030,2963
Puntos de corte por muestra
samplegrades_approvedcutoff_scoredeclaredn_scoredn_with_outcomen_approvedn_approved_with_outcomen_badn_goodapproved_shareapproved_bad_rateapproved_expected_pdbads_avoided_sharegoods_rejected_share
desarrollo1540,50no5985982272271684300,37960,05290,05440,92860,5000
desarrollo2516,50no5985983493491684300,58360,106020,10750,77980,2744
desarrollo3502,50no5985984224221684300,70570,14690,14820,630950,1628
desarrollo4471,50no5985985285281684300,88290,21970,22030,30950,0419
desarrollo5—no5985985985981684301,00000,28090,28090,00000,0000
holdout1540,50no152152535353990,34870,09430,05440,90570,5152
holdout2516,50no152152878753990,57240,14940,11370,75470,2525
holdout3502,50no15215211011053990,72370,20000,16170,58490,1111
holdout4471,50no15215213113153990,86180,27480,21710,32080,0404
holdout5—no15215215215253991,00000,34870,28910,00000,0000
Tramos de la escala por muestra
samplegradensharen_with_outcomen_badbad_ratepdjeffreys_p_valuetraffic_light
desarrollo12270,3796227120,05290,05440,525green
desarrollo21220,20401122250,20490,20610,504green
desarrollo3730,122173250,34250,34290,498green
desarrollo41060,1773106540,50940,50750,484green
desarrollo5700,117170520,74290,738030,472green
holdout1530,34875350,09430,05440,106green
holdout2340,22373480,23530,20610,325green
holdout3230,15132390,39130,3429—not_evaluable
holdout4210,138221140,66670,5075—not_evaluable
holdout5210,138221170,80950,73803—not_evaluable
Tramos de la escala maestra
gradescore_minscore_maxlabelpdn_developmentshare_developmentn_bad_developmentbad_rate_developmentsource
1540,50—desde 541 puntos0,05442270,3796120,0529formed
2516,50540,50de 517 a 540 puntos0,20611220,20401250,2049formed
3502,50516,50de 503 a 516 puntos0,3429730,1221250,3425formed
4471,50502,50de 472 a 502 puntos0,50751060,1773540,5094formed
5—471,50hasta 471 puntos0,73803700,1171520,7429formed
Matriz de correlación entre variables
x1__woex2__woex3__woex4__woex6__woex12__woex5__woex15__woex7__woex14__woex8__woex13__woex17__woex19__woe
1,00000,06330,17840,10730,17880,08840,03460,10970,05070,05780,00140,13470,000430,0695
0,06331,00000,1263-0,0426-0,02260,289980,50710,1371-0,08480,08170,15640,01460,2139-0,1328
0,17840,12631,00000,04920,02640,06270,071040,08140,13870,2374-0,01630,098960,04030,0273
0,1073-0,04260,04921,00000,06490,01404-0,059960,031050,07280,07820,0513-0,00302-0,082980,0393
0,1788-0,02260,02640,06491,00000,0322-0,0069970,04270,0651-0,0037-0,035970,0765-0,02590,0992
0,08840,289980,06270,014040,03221,00000,28470,5695-0,06180,10080,0639-0,10640,2528-0,2042
0,03460,50710,07104-0,05996-0,0069970,28471,00000,12290,02410,0554-0,2524-0,01380,2555-0,2442
0,10970,13710,08140,031050,04270,56950,12291,0000-0,00530,007020,00890,000380,1112-0,0697
0,0507-0,08480,13870,07280,0651-0,06180,0241-0,00531,00000,0202-0,11570,20080,1000010,0751
0,05780,08170,23740,0782-0,00370,10080,05540,007020,02021,00000,0457-0,01060,0681-0,0407
0,00140,1564-0,01630,0513-0,035970,0639-0,25240,0089-0,11570,04571,0000-0,07380,0267-0,0062
0,13470,01460,09896-0,003020,0765-0,1064-0,01380,000380,2008-0,0106-0,07381,0000-0,069990,2086
0,000430,21390,0403-0,08298-0,02590,25280,25550,11120,1000010,06810,0267-0,069991,0000-0,3769
0,0695-0,13280,02730,03930,0992-0,2042-0,2442-0,06970,0751-0,0407-0,00620,2086-0,37691,0000
Estabilidad de las variables candidatas
featurewoe_columnsamplecsicsi_bandsmoothing

Detalle por observación

Esta corrida produjo tablas con una fila por operación que no se reproducen en el informe (son datos, no evidencia de validación) y que no se exportaron: añada csv o xlsx a report.formats para obtenerlas completas.

  • Dataset transformado a WoE — 750 filas
  • PD calibrada por observación — 750 filas
  • PD sin calibrar por observación — 750 filas
  • Puntaje por observación — 750 filas
  • Dataset WoE de las variables seleccionadas — 750 filas

Anexo C —Parámetros completos

Este anexo reproduce el payload completo de cada etapa: los parámetros efectivos y las métricas estructuradas tal como las publicó cada step, sin resumir.

C.1Población, particiones y exclusiones

Artefacto de origen: data.data_card

Parámetros y payload

bad_rate
0,2947
class_counts
{
  "bueno": 529,
  "excluido": 0,
  "indeterminado": 0,
  "malo": 221
}
data_hash
43b7a944f9be20b58f829f5bb3bc11075227c499f6c1df02c21d7f7184c9afd5
effective_config
{
  "load": {
    "backend": "pandas",
    "csv_options": {
      "decimal": ".",
      "encoding": "utf-8",
      "sep": ","
    },
    "file_format": "auto",
    "source": "prepared/german/input.parquet"
  },
  "missing": {
    "max_missing_rate": "0,99",
    "special_values": []
  },
  "partition": {
    "min_bads_per_partition": 30,
    "strategy": {
      "dev_fraction": "0,80",
      "holdout_fraction": "0,20",
      "oot_fraction": "0,00",
      "stratify_by": null,
      "type": "random"
    },
    "ttd_includes_excluded": true
  },
  "schema_": {
    "columns": [
      {
        "coerce": false,
        "dtype": "str",
        "ge": null,
        "isin": null,
        "le": null,
        "name": "x1",
        "nullable": false,
        "required": true,
        "unique": false
      },
      {
        "coerce": false,
        "dtype": "int",
        "ge": null,
        "isin": null,
        "le": null,
        "name": "x2",
        "nullable": false,
        "required": true,
        "unique": false
      },
      {
        "coerce": false,
        "dtype": "str",
        "ge": null,
        "isin": null,
        "le": null,
        "name": "x3",
        "nullable": false,
        "required": true,
        "unique": false
      },
      {
        "coerce": false,
        "dtype": "str",
        "ge": null,
        "isin": null,
        "le": null,
        "name": "x4",
        "nullable": false,
        "required": true,
        "unique": false
      },
      {
        "coerce": false,
        "dtype": "int",
        "ge": null,
        "isin": null,
        "le": null,
        "name": "x5",
        "nullable": false,
        "required": true,
        "unique": false
      },
      {
        "coerce": false,
        "dtype": "str",
        "ge": null,
        "isin": null,
        "le": null,
        "name": "x6",
        "nullable": false,
        "required": true,
        "unique": false
      },
      {
        "coerce": false,
        "dtype": "str",
        "ge": null,
        "isin": null,
        "le": null,
        "name": "x7",
        "nullable": false,
        "required": true,
        "unique": false
      },
      {
        "coerce": false,
        "dtype": "int",
        "ge": null,
        "isin": null,
        "le": null,
        "name": "x8",
        "nullable": false,
        "required": true,
        "unique": false
      },
      {
        "coerce": false,
        "dtype": "str",
        "ge": null,
        "isin": null,
        "le": null,
        "name": "x9",
        "nullable": false,
        "required": true,
        "unique": false
      },
      {
        "coerce": false,
        "dtype": "str",
        "ge": null,
        "isin": null,
        "le": null,
        "name": "x10",
        "nullable": false,
        "required": true,
        "unique": false
      },
      {
        "coerce": false,
        "dtype": "int",
        "ge": null,
        "isin": null,
        "le": null,
        "name": "x11",
        "nullable": false,
        "required": true,
        "unique": false
      },
      {
        "coerce": false,
        "dtype": "str",
        "ge": null,
        "isin": null,
        "le": null,
        "name": "x12",
        "nullable": false,
        "required": true,
        "unique": false
      },
      {
        "coerce": false,
        "dtype": "int",
        "ge": null,
        "isin": null,
        "le": null,
        "name": "x13",
        "nullable": false,
        "required": true,
        "unique": false
      },
      {
        "coerce": false,
        "dtype": "str",
        "ge": null,
        "isin": null,
        "le": null,
        "name": "x14",
        "nullable": false,
        "required": true,
        "unique": false
      },
      {
        "coerce": false,
        "dtype": "str",
        "ge": null,
        "isin": null,
        "le": null,
        "name": "x15",
        "nullable": false,
        "required": true,
        "unique": false
      },
      {
        "coerce": false,
        "dtype": "int",
        "ge": null,
        "isin": null,
        "le": null,
        "name": "x16",
        "nullable": false,
        "required": true,
        "unique": false
      },
      {
        "coerce": false,
        "dtype": "str",
        "ge": null,
        "isin": null,
        "le": null,
        "name": "x17",
        "nullable": false,
        "required": true,
        "unique": false
      },
      {
        "coerce": false,
        "dtype": "int",
        "ge": null,
        "isin": null,
        "le": null,
        "name": "x18",
        "nullable": false,
        "required": true,
        "unique": false
      },
      {
        "coerce": false,
        "dtype": "str",
        "ge": null,
        "isin": null,
        "le": null,
        "name": "x19",
        "nullable": false,
        "required": true,
        "unique": false
      },
      {
        "coerce": false,
        "dtype": "str",
        "ge": null,
        "isin": null,
        "le": null,
        "name": "x20",
        "nullable": false,
        "required": true,
        "unique": false
      },
      {
        "coerce": false,
        "dtype": "int",
        "ge": null,
        "isin": null,
        "le": null,
        "name": "target",
        "nullable": false,
        "required": true,
        "unique": false
      }
    ],
    "index_col": null,
    "ordered": false,
    "strict": false,
    "unique_keys": null
  },
  "target": {
    "bad_rule": {
      "all_of": [
        {
          "col": "target",
          "op": "==",
          "value": 1
        }
      ],
      "any_of": []
    },
    "exclusion_rules": [],
    "good_rule": {
      "all_of": [
        {
          "col": "target",
          "op": "==",
          "value": 0
        }
      ],
      "any_of": []
    },
    "indeterminate_rule": {
      "all_of": [
        {
          "col": "target",
          "op": "isna",
          "value": null
        }
      ],
      "any_of": []
    },
    "target_col": "target_bayesrisk",
    "window": null
  },
  "type": "standard"
}
exclusions_by_reason
{}
n_features
21
n_rows
750
partition_bad_rates
{
  "desarrollo": "0,2809",
  "fuera_de_modelo": "0,0000",
  "holdout": "0,3487",
  "oot": "0,0000"
}
partition_sizes
{
  "desarrollo": 598,
  "fuera_de_modelo": 0,
  "holdout": 152,
  "oot": 0
}
performance_window_months
—
source
data-43ea3502f6d24b11.parquet
target_col
target_bayesrisk

C.2Población y calidad de datos

Artefacto de origen: eda.eda_card

Parámetros y payload

axis
period
axis_inferred
no
default_rate_not_evaluable_reason
sin_eje_temporal
effective_config
{
  "analysis_partition": "desarrollo",
  "default_rate": {
    "axis": "period",
    "cohort_col": null,
    "date_col": null,
    "min_obs_per_period": 50,
    "period_freq": "M"
  },
  "quality": {
    "high_cardinality_threshold": 50,
    "near_constant_threshold": "0,99"
  },
  "sampling": {
    "enabled": false,
    "max_rows": 500000
  },
  "stability": {
    "metric": "cv",
    "threshold": "0,25"
  },
  "type": "standard",
  "univariate": {
    "columns": [
      "x1",
      "x2",
      "x3",
      "x4",
      "x5",
      "x6",
      "x7",
      "x8",
      "x9",
      "x10",
      "x11",
      "x12",
      "x13",
      "x14",
      "x15",
      "x16",
      "x17",
      "x18",
      "x19",
      "x20"
    ],
    "compute_descriptive_iv": false,
    "n_quantile_bins": 10,
    "rare_level_threshold": "0,01"
  }
}
failed_analyses
{}
n_columns_profiled
20
n_figures
20
n_periods
0
overall_default_rate
0,2809
quality_flag_counts
{
  "high_cardinality": 0,
  "near_constant": 0,
  "near_unique": 0
}
stability_flagged
no
stability_metric_used
cv
stability_not_evaluable_reason
sin_eje_temporal
stability_threshold
0,25
stability_value
—

C.3Binning WoE y poder predictivo

Artefacto de origen: binning.binning_card

Parámetros y payload

assigned_bins
[]
effective_config
{
  "cat_cutoff": "0,01",
  "cat_unknown": null,
  "categorical_columns": [
    "x1",
    "x3",
    "x4",
    "x6",
    "x7",
    "x9",
    "x10",
    "x12",
    "x14",
    "x15",
    "x17",
    "x19",
    "x20"
  ],
  "exclude_columns": [],
  "fail_on_non_binnable": false,
  "feature_columns": [
    "x1",
    "x2",
    "x3",
    "x4",
    "x5",
    "x6",
    "x7",
    "x8",
    "x9",
    "x10",
    "x11",
    "x12",
    "x13",
    "x14",
    "x15",
    "x16",
    "x17",
    "x18",
    "x19",
    "x20"
  ],
  "keep_structural_columns": true,
  "max_n_bins": 6,
  "max_n_prebins": 20,
  "max_pvalue": null,
  "max_pvalue_policy": "consecutive",
  "metric_missing": "empirical",
  "metric_special": "empirical",
  "min_bin_n_event": 1,
  "min_bin_n_nonevent": 1,
  "min_bin_size": "0,05",
  "min_event_rate_diff": "0,00",
  "min_n_bins": null,
  "min_prebin_size": "0,05",
  "mip_solver": "bop",
  "monotonic_trend": "auto_asc_desc",
  "n_jobs": null,
  "output_suffix": "__woe",
  "require_optimal": true,
  "solver": "mip",
  "special_handling": "separate",
  "split_digits": null,
  "time_limit": 10,
  "type": "standard",
  "variable_overrides": []
}
excluded_by_target_rule
[]
iv_by_variable
{
  "x1": "0,4536",
  "x10": "0,0058",
  "x11": "0,0037",
  "x12": "0,1627",
  "x13": "0,0566",
  "x14": "0,0986",
  "x15": "0,1149",
  "x16": "0,0079",
  "x17": "0,0239",
  "x18": "0,0018",
  "x19": "0,0229",
  "x2": "0,2857",
  "x20": "0,0000",
  "x3": "0,2757",
  "x4": "0,17702",
  "x5": "0,14198",
  "x6": "0,1699",
  "x7": "0,1044",
  "x8": "0,0644",
  "x9": "0,0175"
}
missing_handling
empirical
monotonicity_by_variable
{
  "x1": null,
  "x10": null,
  "x11": "ascending",
  "x12": null,
  "x13": "descending",
  "x14": null,
  "x15": null,
  "x16": "descending",
  "x17": null,
  "x18": "ascending",
  "x19": null,
  "x2": "ascending",
  "x20": null,
  "x3": null,
  "x4": null,
  "x5": "ascending",
  "x6": null,
  "x7": null,
  "x8": "ascending",
  "x9": null
}
n_variables_binned
20
n_variables_requested
20
n_variables_skipped
0
optbinning_version
0.20.0
rare_category_regroupings
{
  "x4": {
    "declared_cat_cutoff": "0,01",
    "effective_cat_cutoff": "0,014214046822742474",
    "levels": [
      "A48"
    ],
    "n_events": 0,
    "n_obs": 3
  }
}
special_handling
separate

C.4Selección de variables

Artefacto de origen: selection.selection_card

Parámetros y payload

dependency_versions
{
  "numpy": "1.26.4",
  "pandas": "2.3.3",
  "scikit-learn": "1.7.2",
  "scipy": "1.17.1",
  "statsmodels": "0.15.0"
}
effective_config
{
  "compute_univariate_metrics": true,
  "correlation": {
    "clustering_method": "none",
    "enabled": true,
    "method": "pearson",
    "threshold": "0,75"
  },
  "exclude_columns": [],
  "fail_if_no_features": true,
  "feature_columns": "*",
  "force_exclude": [],
  "force_include": [],
  "keep_structural_columns": true,
  "max_iv": "0,50",
  "max_iv_action": "flag",
  "min_auc": null,
  "min_gini": null,
  "min_iv": "0,02",
  "min_ks": null,
  "priority_order": [
    "iv",
    "auc",
    "ks",
    "name"
  ],
  "stability": {
    "action": "report_only",
    "enabled": false,
    "review_threshold": "0,25",
    "smoothing": "0,000001",
    "stable_threshold": "0,10"
  },
  "type": "standard",
  "vif": {
    "add_intercept": true,
    "enabled": true,
    "max_iterations": null,
    "threshold": "5,00"
  }
}
excluded_by_reason
{
  "constant_or_nonfinite": 1,
  "low_iv": 5
}
high_iv_flags
[]
max_abs_correlation_after_selection
0,5695
max_vif_after_selection
1,7488
n_candidates
20
n_excluded
6
n_selected
14
selected_features
[
  "x1",
  "x12",
  "x13",
  "x14",
  "x15",
  "x17",
  "x19",
  "x2",
  "x3",
  "x4",
  "x5",
  "x6",
  "x7",
  "x8"
]
stability_flags
[]
thresholds
{
  "correlation.clustering_method": "none",
  "correlation.method": "pearson",
  "correlation.threshold": "0,75",
  "max_iv": "0,50",
  "max_iv_action": "flag",
  "min_auc": null,
  "min_gini": null,
  "min_iv": "0,02",
  "min_ks": null,
  "stability.action": "report_only",
  "stability.review_threshold": null,
  "stability.stable_threshold": null,
  "vif.threshold": "5,00"
}

C.5Modelo PD

Artefacto de origen: model.model_card

Parámetros y payload

dependency_versions
{
  "numpy": "1.26.4",
  "pandas": "2.3.3",
  "scikit-learn": "1.7.2",
  "scipy": "1.17.1",
  "statsmodels": "0.15.0"
}
effective_config
{
  "alpha": "0,05",
  "engine": "logit",
  "fail_if_no_features": true,
  "fit_intercept": true,
  "fit_maxiter": 100,
  "force_exclude": [],
  "force_include": [],
  "iv_contribution": {
    "action": "flag",
    "threshold": "0,90"
  },
  "optimizer": "newton",
  "sign_policy": {
    "action": "flag",
    "expected_beta_sign": "negative",
    "fail_on_forced_inverted": false
  },
  "stepwise": {
    "criterion": "wald_pvalue",
    "direction": "bidirectional",
    "enabled": true,
    "entry_p_value": "0,05",
    "exit_p_value": "0,05",
    "max_iter": 100,
    "min_features": 1
  },
  "tol": "0,00000001",
  "type": "standard"
}
engine
logit
final_features
[
  "x1",
  "x14",
  "x15",
  "x19",
  "x2",
  "x3",
  "x4",
  "x5",
  "x6",
  "x7",
  "x8"
]
fit_statistics
{
  "aic": "563,9317",
  "bic": "616,6547",
  "converged": true,
  "llr": "170,2957",
  "llr_p_value": "< 0,001",
  "log_likelihood": "-269,9658",
  "n_events_dev": 168,
  "n_iterations": 6,
  "n_nonevents_dev": 430,
  "n_obs_dev": 598,
  "null_log_likelihood": "-355,1137",
  "optimizer": "newton",
  "pseudo_r2_mcfadden": "0,2398"
}
iv_contribution_flags
[
  "x1"
]
n_candidates
14
n_final_features
11
sign_flags
[]
thresholds
{
  "alpha": "0,05",
  "engine": "logit",
  "entry_p_value": "0,05",
  "exit_p_value": "0,05",
  "fail_if_no_features": "true",
  "fit_intercept": "true",
  "fit_maxiter": "100,00",
  "iv_contribution.action": "flag",
  "iv_contribution.threshold": "0,90",
  "optimizer": "newton",
  "sign_policy.action": "flag",
  "sign_policy.expected_beta_sign": "negative",
  "stepwise.criterion": "wald_pvalue",
  "stepwise.direction": "bidirectional",
  "stepwise.max_iter": "100,00",
  "stepwise.min_features": "1,00"
}

C.6Scorecard

Artefacto de origen: scorecard.card

Parámetros y payload

dependency_versions
{
  "numpy": "1.26.4",
  "pandas": "2.3.3"
}
effective_config
{
  "clip": false,
  "intercept_allocation": "uniform",
  "max_score": null,
  "min_score": null,
  "output_suffix": "__points",
  "pdo": "20,00",
  "point_overrides": [],
  "rounding_method": "nearest_integer",
  "score_column": "score",
  "score_direction": "higher_is_lower_risk",
  "target_odds": "50,00",
  "target_score": "600,00",
  "type": "standard"
}
factor
28,8539
max_score
—
min_score
—
n_variables
11
offset
487,1229
overrides_count
0
pdo
20,0000
points_columns
[
  "x1__points",
  "x14__points",
  "x15__points",
  "x19__points",
  "x2__points",
  "x3__points",
  "x4__points",
  "x5__points",
  "x6__points",
  "x7__points",
  "x8__points"
]
rounding_method
nearest_integer
score_column
score
score_direction
higher_is_lower_risk
target_odds
50,0000
target_score
600,0000

C.7Calibración

Artefacto de origen: calibration.card

Parámetros y payload

anchor_kind
through_the_cycle
anchor_source
development_observed
calibrated_mean_pd_dev
0,2809
dependency_versions
{
  "numpy": "1.26.4",
  "pandas": "2.3.3",
  "scipy": "1.17.1"
}
effective_config
{
  "anchor_kind": "through_the_cycle",
  "anchor_source": "development_observed",
  "fit_partition": "desarrollo",
  "linear_predictor_calibrated_column": "linear_predictor_calibrated",
  "linear_predictor_column": "linear_predictor",
  "max_abs_offset": null,
  "max_iter": 100,
  "method": "intercept_offset",
  "min_fit_rows": 30,
  "partition_column": "partition",
  "pd_calibrated_column": "pd_calibrated",
  "pd_raw_column": "pd_raw",
  "require_both_classes_for_supervised": true,
  "target_column": "target",
  "target_pd": null,
  "target_tolerance": "0,000000000001",
  "type": "standard"
}
fit_partition
desarrollo
intercept
—
method
intercept_offset
n_fit
598
observed_default_rate_dev
0,2809
offset
8,1e-18
pd_calibrated_column
pd_calibrated
pd_raw_column
pd_raw
ranking_preserved
sí
raw_mean_pd_dev
0,2809
slope
—
target_pd
0,2809
ties_created
0

C.8Desempeño y discriminación

Artefacto de origen: performance.card

Parámetros y payload

bands_by_partition
{
  "desarrollo": "ok",
  "holdout": "ok"
}
dependency_versions
{
  "numpy": "1.26.4",
  "pandas": "2.3.3",
  "scikit-learn": "1.7.2"
}
effective_config
{
  "evaluation_source": "pd_calibrated",
  "min_events_per_partition": 1,
  "min_rows_per_partition": 30,
  "n_deciles": 10,
  "optional_thresholds": {},
  "partition_column": "partition",
  "partitions": [
    "desarrollo",
    "holdout"
  ],
  "pd_column": "pd_calibrated",
  "schema_version": "1.0.0",
  "score_column": "score",
  "score_direction": "higher_is_lower_risk",
  "target_column": "target",
  "type": "standard"
}
evaluation_source
pd_calibrated
max_metrics_by_partition
{
  "desarrollo": {
    "auc": "0,8227",
    "gini": "0,6455",
    "ks": "0,5053"
  },
  "holdout": {
    "auc": "0,8237",
    "gini": "0,6474",
    "ks": "0,55403"
  }
}
n_deciles
10
partitions
[
  "desarrollo",
  "holdout"
]
score_direction
higher_is_lower_risk
thresholds
{}

Métricas estructuradas

discrimination
{
  "effective_deciles_by_partition": {
    "desarrollo": 10,
    "holdout": 10
  },
  "not_evaluable_reasons_by_partition": {},
  "threshold_flags_by_partition": {}
}

C.9Estabilidad

Artefacto de origen: stability.card

Parámetros y payload

bands_by_comparison
{
  "dev_vs_holdout": "stable"
}
comparisons
[
  "dev_vs_holdout"
]
csi_source
score_points
dependency_versions
{
  "numpy": "1.26.4",
  "pandas": "2.3.3",
  "pandera": "0.34.1"
}
effective_config
{
  "comparisons": [
    "dev_vs_holdout"
  ],
  "csi_bins": 10,
  "csi_source": "score_points",
  "include_pd_stability": true,
  "partition_column": "partition",
  "pd_column": "pd_calibrated",
  "psi_bins": 10,
  "psi_review_threshold": "0,25",
  "psi_stable_threshold": "0,10",
  "schema_version": "1.0.0",
  "score_column": "score",
  "score_direction": "higher_is_lower_risk",
  "smoothing": "0,000001",
  "temporal_axis": "none",
  "temporal_column": null,
  "temporal_freq": "M",
  "type": "standard"
}
max_psi_by_comparison
{
  "dev_vs_holdout": "0,0764"
}
psi_bins
10
psi_metric_by_comparison
{
  "dev_vs_holdout": "score_psi"
}
review_threshold
0,25
score_direction
higher_is_lower_risk
stable_threshold
0,10
worst_csi_feature
x3__points
worst_csi_value
0,0444

Métricas estructuradas

stability
{
  "csi_features": [
    "x14__points",
    "x15__points",
    "x19__points",
    "x1__points",
    "x2__points",
    "x3__points",
    "x4__points",
    "x5__points",
    "x6__points",
    "x7__points",
    "x8__points"
  ],
  "include_pd_stability": true,
  "n_periods": 0,
  "temporal_axis": "none"
}

C.10Validación formal

Artefacto de origen: validation.card

Parámetros y payload

dependency_versions
{
  "numpy": "1.26.4",
  "pandas": "2.3.3",
  "scipy": "1.17.1"
}
effective_config
{
  "backtesting": {
    "alpha": "0,05",
    "enabled": false,
    "one_sided": true,
    "parameters": [
      "pd",
      "lgd",
      "ead"
    ],
    "pd_test": "jeffreys",
    "realised_ead_col": "realised_ead",
    "realised_lgd_col": "realised_lgd",
    "realised_pd_col": "realised_default",
    "segment_col": "portfolio"
  },
  "calibration": {
    "alpha": "0,05",
    "binomial_by_grade": false,
    "brier": true,
    "grade_col": "grade",
    "hl_grouping": "deciles",
    "hl_n_groups": 10,
    "hosmer_lemeshow": true,
    "min_rows_per_group": 30,
    "partition_column": "partition",
    "pd_column": "pd_calibrated",
    "pd_test": "jeffreys",
    "target_column": "target",
    "traffic_light_green_alpha": "0,05",
    "traffic_light_red_alpha": "0,01"
  },
  "discrimination": {
    "consume_performance": true,
    "partitions": [
      "desarrollo",
      "holdout"
    ]
  },
  "fail_on_falta_dato": true,
  "families": [
    "discrimination",
    "calibration",
    "stability"
  ],
  "schema_version": "1.0.0",
  "stability": {
    "consume_stability": true,
    "psi_review_threshold": "0,25",
    "psi_stable_threshold": "0,10"
  },
  "type": "standard"
}
falta_dato
[]
families_run
[
  "discrimination",
  "calibration",
  "stability"
]
model_ref
german_fabrica
n_failed
0
n_tests
1
overall_status
pass

Métricas estructuradas

validation
{
  "families_run": [
    "discrimination",
    "calibration",
    "stability"
  ],
  "min_rows_per_group": 30,
  "n_failed": 0,
  "n_tests": 1,
  "not_evaluable_grades": [],
  "not_evaluable_partitions": [
    {
      "min_group_size": 15,
      "min_rows": 30,
      "n": 152,
      "n_groups": 10,
      "partition": "holdout",
      "reason": "group_below_min"
    }
  ],
  "overall_status": "pass",
  "stability_recompute": null,
  "stability_source": "stability_artifact",
  "traffic_light": {
    "amber": 0,
    "green": 0,
    "red": 0
  },
  "traffic_light_cuts": null
}

C.11Escala maestra y puntos de corte

Artefacto de origen: master_scale.card

Parámetros y payload

anchor
0,2809
anchor_source
development_observed
approval_cutoff
—
cutoff_out_of_range
no
cuts
[
  "471,50",
  "502,50",
  "516,50",
  "540,50"
]
delta
-0,0073
diagnostics
{
  "desarrollo": {
    "amber_grades": [],
    "hhi": "0,2457",
    "inversions": [],
    "max_share": "0,3796",
    "max_share_grade": 1,
    "monotonic": true,
    "not_evaluable_grades": [],
    "red_grades": []
  },
  "holdout": {
    "amber_grades": [],
    "hhi": "0,2327",
    "inversions": [],
    "max_share": "0,3487",
    "max_share_grade": 1,
    "monotonic": true,
    "not_evaluable_grades": [
      3,
      4,
      5
    ],
    "red_grades": []
  }
}
effective_config
{
  "approval_cutoff": null,
  "grade_edges": null
}
equalized_grades
[]
formation_cause
—
integer_card
sí
n_grades
5
neighbours_not_distinct
[]
pd
[
  "0,0544",
  "0,2061",
  "0,3429",
  "0,5075",
  "0,73803"
]
samples
[
  "desarrollo",
  "holdout"
]
score_direction
higher_is_lower_risk
solver_status
OPTIMAL
source
formed