Scénario de test & Cas d'usage
Limpieza, imputación y preprocesamiento de datos.
Descubrir todas las acciones de dataPreprocessCrea una tabla de solicitantes de crédito. Aproximadamente el 15% de los registros tendrán un valor faltante en 'puntuacion_crediticia' para probar la gestión de nulos.
| 1 | DATA casuser.solicitudes_credito (promote=yes); |
| 2 | call streaminit(456); |
| 3 | DO id_solicitud = 1 to 1000; |
| 4 | puntuacion_crediticia = 300 + floor(rand('UNIFORM') * 550); |
| 5 | ingresos_verificados = rand('BERNOULLI', 0.8); |
| 6 | IF rand('UNIFORM') < 0.15 THEN call missing(puntuacion_crediticia); |
| 7 | OUTPUT; |
| 8 | END; |
| 9 | RUN; |
| 1 | |
| 2 | PROC CASUTIL; |
| 3 | load |
| 4 | DATA=casuser.solicitudes_credito casout='solicitudes_credito' replace; |
| 5 | QUIT; |
| 6 |
| 1 | PROC CAS; |
| 2 | dataPreprocess.binning / |
| 3 | TABLE={name='solicitudes_credito', caslib='casuser'}, |
| 4 | inputs={{name='puntuacion_crediticia'}}, |
| 5 | method='CUTPTS', |
| 6 | cutPoints={580, 670, 740, 800}, |
| 7 | binMissing=true, |
| 8 | copyVars={'id_solicitud', 'puntuacion_crediticia'}, |
| 9 | outVarsNameSuffix='_NivelRiesgo', |
| 10 | casOut={name='solicitudes_riesgo', caslib='casuser', replace=true}; |
| 11 | RUN; |
| 12 | QUIT; |
| 1 | PROC CAS; |
| 2 | SIMPLE.freq / |
| 3 | TABLE={name='solicitudes_riesgo', caslib='casuser'} |
| 4 | inputs={'bin_puntuacion_crediticia_NivelRiesgo'}; |
| 5 | RUN; |
| 6 | QUIT; |
Se crea la tabla 'solicitudes_riesgo'. Contiene una nueva columna 'bin_puntuacion_crediticia_NivelRiesgo'. Las observaciones con 'puntuacion_crediticia' faltante tendrán el valor 0 en esta nueva columna. Las demás observaciones tendrán valores del 1 al 5, correspondiendo a los intervalos: (-inf, 580], (580, 670], (670, 740], (740, 800], y (800, +inf). El resultado de FREQ debe mostrar un recuento significativo para el valor 0.