dataPreprocess catTrans

Transformación Supervisada WOE para Modelado de Riesgo Crediticio

Scénario de test & Cas d'usage

Contexto empresarial

Una entidad financiera desea desarrollar un modelo de Scorecard para predecir la probabilidad de impago (default). Las variables categóricas como 'Tipo de Empleo' y 'Estado Civil' no pueden ser utilizadas directamente en una regresión logística. Se requiere transformarlas a valores numéricos utilizando la técnica Weight of Evidence (WOE) para establecer una relación monótona con la variable objetivo 'Incumplimiento', generando además el código de puntuación para producción.
Sobre el conjunto : dataPreprocess

Limpieza, imputación y preprocesamiento de datos.

Descubrir todas las acciones de dataPreprocess
Preparación de datos

Simulación de una cartera de clientes con historial de pagos, introduciendo correlación entre el tipo de trabajo y el impago.

¡Copiado!
1 
2DATA casuser.cartera_credito;
3call streaminit(123);
4DO id = 1 to 5000;
5u = rand('Uniform');
6IF u < 0.3 THEN Trabajo = 'Autonomo';
7ELSE IF u < 0.6 THEN Trabajo = 'Asalariado';
8ELSE IF u < 0.8 THEN Trabajo = 'Funcionario';
9ELSE Trabajo = 'Desempleado';
10IF Trabajo = 'Desempleado' THEN Prob_Impago = 0.6;
11ELSE IF Trabajo = 'Autonomo' THEN Prob_Impago = 0.3;
12ELSE Prob_Impago = 0.05;
13IF rand('Uniform') < Prob_Impago THEN Incumplimiento = 1;
14ELSE Incumplimiento = 0;
15OUTPUT;
16END;
17 
18RUN;
19 

Étapes de réalisation

1
Carga y ejecución de la transformación WOE especificando el evento de interés (1) y generación de código de scoring.
¡Copiado!
1 
2PROC CAS;
3dataPreprocess.catTrans / TABLE={name='cartera_credito', caslib='casuser'} inputs={{name='Trabajo'}} targets={{name='Incumplimiento'}} events={'1'} method='WOE' evaluationStats=true casOut={name='datos_woe', caslib='casuser', replace=true} casOutBinDetails={name='detalles_bin', caslib='casuser', replace=true} code={casOut={name='codigo_scoring', caslib='casuser', replace=true}};
4 
5RUN;
6 
7QUIT;
8 
2
Verificación de los estadísticos de evaluación (Information Value - IV) en la tabla de detalles.
¡Copiado!
1 
2PROC CAS;
3TABLE.fetch / TABLE={name='detalles_bin', caslib='casuser'} fetchVars={'Variable', 'IV_Value'};
4 
5RUN;
6 
7QUIT;
8 

Resultado esperado


La acción debe generar una tabla con la variable 'cat_Trabajo' transformada a valores WOE. La tabla 'detalles_bin' debe mostrar un Valor de Información (IV) alto para la variable 'Trabajo', confirmando su poder predictivo. Además, se debe haber generado la tabla 'codigo_scoring' conteniendo el código SAS Data Step listo para ser desplegado en producción.