Agrupa y codifica variables categóricas utilizando técnicas de agrupación supervisadas y no supervisadas. Esta acción es fundamental en la preparación de datos para el modelado, permitiendo transformar variables nominales en representaciones numéricas significativas, como Weight of Evidence (WOE), o agrupar niveles raros para mejorar la robustez del modelo.
| Parámetro | Descripción |
|---|---|
| arguments | Especifica la lista de argumentos a utilizar. Alias: args. |
| casOut | Puntúa la tabla de entrada y guarda los resultados de la puntuación como una tabla en CAS. |
| casOutBinDetails | Especifica la configuración para una tabla de salida que incluye información sobre los resultados de la agrupación (binning). |
| casOutLevelBinMap | Especifica la configuración para una tabla de salida que contiene la información de mapeo de niveles nominales a bins. |
| code | Especifica la configuración para generar código de puntuación SAS DATA step. |
| copyAllVars | Cuando se establece en True, todas las variables de la tabla de entrada se copian a la tabla de salida puntuada. Por defecto es False. |
| copyVars | Especifica los nombres de las variables en la tabla de entrada para usar como identificadores en la tabla de salida. Estas variables se copian a la tabla de salida. |
| distinctCountLimit | Especifica el límite de conteo de valores distintos para las variables categóricas. |
| evaluationStats | Cuando se establece en True, solicita que se calculen el conjunto predeterminado de estadísticas de evaluación para las variables transformadas. Por defecto es False. |
| events | Especifica una lista de eventos que corresponden a la lista de variables objetivo. Estos valores se emparejan uno a uno con las variables objetivo del parámetro 'targets'. |
| freq | Especifica la variable de frecuencia. Alias: frequency. |
| fuzzyCompare | Especifica el umbral de comparación difusa que se utiliza para determinar la distinción de valores numéricos. Rango: 0–1E-05. |
| includeInputVars | Cuando se establece en True, las variables de análisis de la tabla de entrada especificadas en el parámetro 'inputs' se copian a la tabla de salida. Por defecto es False. |
| includeMissingGroup | Cuando se establece en True, los valores perdidos se permiten como claves de agrupación (group-by). Por defecto es False. |
| inputs | Especifica las variables a utilizar para el análisis. Puede especificar un subconjunto de las variables de la tabla de entrada. Alias: vars. |
| inputsInheritFormats | Especifica que las variables de entrada heredan los formatos de la tabla subyacente. Por defecto es False. |
| method | Especifica la técnica de agrupación a utilizar. Los valores posibles son 'DTREE', 'GROUPRARE', 'ONEHOT', 'RTREE', 'WOE'. El valor predeterminado es 'GROUPRARE'. |
| outputTableOptions | Especifica opciones para las tablas de resultados, como qué tablas devolver y cómo manejar los resultados de group-by. |
| outVarsNamePrefix | Especifica un prefijo para aplicar a los nombres de las variables de salida. El valor predeterminado es 'cat'. |
| outVarsNameSuffix | Especifica un sufijo para aplicar a los nombres de las variables de salida. |
| sasVarNameLength | Cuando se establece en True, la longitud de los nombres de las variables de salida se restringe a 32 caracteres o menos. Por defecto es False. |
| table | Parámetro requerido. Especifica la tabla de entrada para el análisis. |
| targets | Especifica una lista de variables objetivo. Este parámetro es requerido para las técnicas de agrupación supervisada. Alias: evalVars. |
| targetsInheritFormats | Especifica que las variables objetivo heredan los formatos de la tabla subyacente. Por defecto es False. |
| weight | Especifica la variable de ponderación. |
Creamos una tabla de ejemplo 'CARS_CATEGORICAL' en la caslib 'casuser'. Esta tabla contiene información sobre vehículos, incluyendo el tipo (Type), el origen (Origin) y una variable objetivo binaria 'High_MPG' que indica si el consumo es alto (1) o no (0).
| 1 | DATA casuser.cars_categorical; |
| 2 | SET sashelp.cars; |
| 3 | IF MPG_City > 25 THEN High_MPG = 1; ELSE High_MPG = 0; |
| 4 | keep Type Origin High_MPG; |
| 5 | RUN; |
Este ejemplo utiliza el método no supervisado 'GROUPRARE' para agrupar los niveles de la variable 'Type' que aparecen con poca frecuencia. Los niveles con una frecuencia inferior al 10% del total de observaciones se agruparán en una única categoría. Esto es útil para simplificar variables con muchas categorías poco comunes.
| 1 | PROC CAS; |
| 2 | dataPreprocess.catTrans / |
| 3 | TABLE={name='CARS_CATEGORICAL', caslib='casuser'}, |
| 4 | inputs={{name='Type'}}, |
| 5 | method='GROUPRARE', |
| 6 | arguments={rareThresholdPercent=10}, |
| 7 | casOut={name='CARS_PROCESSED_RARE', caslib='casuser', replace=true}, |
| 8 | copyVars={'Type', 'High_MPG'}; |
| 9 | RUN; |
| 10 | QUIT; |
Este ejemplo realiza una transformación supervisada utilizando el método 'WOE' (Weight of Evidence). Agrupa los niveles de la variable 'Origin' basándose en su relación con la variable objetivo binaria 'High_MPG'. Se especifican el evento de interés ('1') y se generan tablas de salida detalladas ('WOE_DETAILS', 'WOE_MAP') que contienen las estadísticas de agrupación, como el WOE y el Information Value (IV) para cada grupo.
| 1 | PROC CAS; |
| 2 | dataPreprocess.catTrans / |
| 3 | TABLE={name='CARS_CATEGORICAL', caslib='casuser'}, |
| 4 | inputs={{name='Origin'}}, |
| 5 | targets={{name='High_MPG'}}, |
| 6 | events={'1'}, |
| 7 | method='WOE', |
| 8 | evaluationStats=true, |
| 9 | casOut={name='CARS_PROCESSED_WOE', caslib='casuser', replace=true}, |
| 10 | casOutBinDetails={name='WOE_DETAILS', caslib='casuser', replace=true}, |
| 11 | casOutLevelBinMap={name='WOE_MAP', caslib='casuser', replace=true}, |
| 12 | copyVars={'Origin', 'High_MPG'}; |
| 13 | RUN; |
| 14 | QUIT; |
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 Civi...
Un gigante del e-commerce analiza el comportamiento de navegación de usuarios. Para alimentar una red neuronal profunda, necesitan convertir la variable 'Categoría_Producto' (qu...
En el mantenimiento predictivo de una planta industrial, los sensores envían códigos de estado. Existen muchos códigos de error 'raros' (ruido) y fallos de transmisión que gener...