La acción `assess` del conjunto de acciones `percentile` se utiliza para evaluar y comparar el rendimiento de modelos predictivos. Es especialmente útil para modelos de clasificación, generando métricas como la curva ROC, la tabla de elevación (lift chart) y estadísticas de ajuste para determinar la precisión y eficacia del modelo.
| Parámetro | Descripción |
|---|---|
| attributes | Especifica atributos temporales, como un formato, para aplicar a las variables de entrada. |
| binNum | Número de bins (contenedores) a utilizar en el cálculo de tres pasadas. |
| casOut | Especifica la tabla de salida para los resultados de la evaluación de la curva de elevación (lift). |
| cutStep | Especifica el tamaño del paso a utilizar para los cálculos de la curva ROC. |
| epsilon | Especifica la tolerancia utilizada para determinar la convergencia del algoritmo iterativo para el cálculo de percentiles. |
| event | Especifica el valor formateado de la variable de respuesta que representa el evento de interés (por ejemplo, '1' para un evento positivo). |
| fitStatOut | Especifica la tabla de salida para las estadísticas de ajuste del modelo. |
| freq | Especifica la variable numérica que contiene la frecuencia de cada observación. |
| groupByLimit | Especifica el número máximo de niveles en un conjunto de agrupación (group-by). |
| includeCutoffOne | Cuando se establece en True, incluye una fila para el punto de corte (cutoff) de 1 en las estadísticas ROC, lo que simplifica el trazado de la curva. |
| includeFitStat | Cuando se establece en False, las estadísticas de ajuste no se generan para acelerar el cálculo. |
| includeLift | Cuando se establece en False, los cálculos de la tabla de elevación (lift) no se generan. |
| includeRoc | Cuando se establece en False, los cálculos de la curva ROC no se generan. |
| includeZeroDepth | Cuando se establece en True, incluye una fila para la profundidad (depth) de 0 en las estadísticas de elevación, lo que simplifica el trazado de la curva de elevación. |
| inputs | Especifica las variables de predicción del modelo a evaluar. |
| maxIters | Especifica el número máximo de iteraciones para el algoritmo de cálculo de percentiles. |
| method | Especifica el algoritmo para el análisis de percentiles. 'ITERATIVE' es más rápido pero aproximado, 'EXACT' es preciso pero más lento. |
| nBins | Especifica el número de contenedores (bins) a utilizar para los cálculos de la tabla de elevación (lift). |
| noMissingTarget | Si se establece en True, excluye las observaciones donde la variable objetivo tiene un valor perdido. |
| partition | Cuando se establece en True y la tabla está particionada, los resultados se calculan para cada partición de manera eficiente. |
| partKey | Especifica una clave de partición para calcular los resultados solo para esa partición específica. |
| pEvent | Especifica los eventos que corresponden a cada variable de probabilidad en `pVar`. |
| pResponse | Especifica la variable de respuesta predicha para la evaluación del modelo. |
| pVar | Especifica las variables que contienen las probabilidades del evento. |
| response | Especifica la variable de respuesta real (objetivo) para la evaluación del modelo. |
| responseFmt | Especifica un formato temporal para la variable de respuesta. |
| rocOut | Especifica la tabla de salida para los cálculos de la curva ROC. |
| table | Especifica la tabla de entrada que contiene los datos a evaluar. |
| useRawPResponse | Cuando se establece en True, se utilizan los valores brutos de la variable de respuesta predicha para filtrar las observaciones. |
| userCutoff | Especifica un punto de corte definido por el usuario para la matriz de confusión. |
| weight | Especifica la variable numérica que contiene el peso de cada observación. |
Este código crea una tabla en memoria llamada `hmeq_scored` que contiene los resultados de la puntuación de un modelo. Incluye una variable objetivo `BAD`, una probabilidad predicha `P_BAD1` y una variable de partición `_PARTIND_` para simular conjuntos de entrenamiento y validación.
| 1 | |
| 2 | DATA casuser.hmeq_scored; |
| 3 | SET sampsio.hmeq; |
| 4 | _PARTIND_ = (mod(_n_, 2)); |
| 5 | P_BAD1 = 1 / (1 + exp(-(0.5 - 0.1 * DELINQ + 0.05 * DEROG - 0.02 * VALUE))); |
| 6 | |
| 7 | RUN; |
| 8 |
Este ejemplo realiza una evaluación básica de un modelo de clasificación. Utiliza la variable `BAD` como objetivo y `P_BAD1` como la probabilidad predicha para el evento '1'. Los resultados se agrupan por la variable de partición `_PARTIND_`.
| 1 | |
| 2 | PROC CAS; |
| 3 | percentile.assess TABLE={name='hmeq_scored', groupBy={'_PARTIND_'}}, response='BAD', event='1', pVar={'P_BAD1'}, pEvent={'1'}; |
| 4 | |
| 5 | RUN; |
| 6 |
Este ejemplo realiza una evaluación más detallada, generando tablas de salida explícitas para los datos de la curva ROC (`roc_results`) y la curva de elevación (`lift_results`). Se especifica un número de contenedores (`nBins`) de 100 para la curva de elevación y se incluyen filas para profundidad cero y punto de corte uno para facilitar el trazado de las curvas.
| 1 | |
| 2 | PROC CAS; |
| 3 | percentile.assess TABLE={name='hmeq_scored', groupBy={'_PARTIND_'}}, response='BAD', event='1', pVar={'P_BAD1'}, pEvent={'1'}, nBins=100, includeZeroDepth=true, includeCutoffOne=true, rocOut={name='roc_results', replace=true}, casOut={name='lift_results', replace=true}; |
| 4 | |
| 5 | RUN; |
| 6 |
Una empresa de retail ha desarrollado un modelo para predecir qué clientes son más propensos a responder a una nueva campaña de marketing. El objetivo es evaluar la eficacia del...
Una entidad financiera necesita evaluar diariamente un modelo de detección de fraude sobre millones de transacciones. La velocidad del cálculo es crítica. Este escenario busca c...
Un hospital analiza un modelo que predice el riesgo de reingreso de pacientes. Los datos son imperfectos: algunos pacientes tienen un estado de reingreso desconocido (missing) y...