?> assess - WeAreCAS
percentile

assess

Descripción

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.

percentile.assess <result=results> <status=rc> / attributes={{casinvardesc-1} <, {casinvardesc-2}, ...>}, binNum=64-bit-integer, casOut={casouttable}, cutStep=double, epsilon=double, event="string", fitStatOut={casouttable}, freq="variable-name", groupByLimit=64-bit-integer, includeCutoffOne=TRUE | FALSE, includeFitStat=TRUE | FALSE, includeLift=TRUE | FALSE, includeRoc=TRUE | FALSE, includeZeroDepth=TRUE | FALSE, inputs={{casinvardesc-1} <, {casinvardesc-2}, ...>}, maxIters=integer, method="EXACT" | "ITERATIVE", nBins=integer, noMissingTarget=TRUE | FALSE, partition=TRUE | FALSE, partKey={"string-1" <, "string-2", ...>}, pEvent={"string-1" <, "string-2", ...>}, pResponse="variable-name", pVar={"variable-name-1" <, "variable-name-2", ...>}, response="variable-name", responseFmt="string", rocOut={casouttable}, table={castable}, useRawPResponse=TRUE | FALSE, userCutoff=double, weight="variable-name";
Parámetros
ParámetroDescripción
attributesEspecifica atributos temporales, como un formato, para aplicar a las variables de entrada.
binNumNúmero de bins (contenedores) a utilizar en el cálculo de tres pasadas.
casOutEspecifica la tabla de salida para los resultados de la evaluación de la curva de elevación (lift).
cutStepEspecifica el tamaño del paso a utilizar para los cálculos de la curva ROC.
epsilonEspecifica la tolerancia utilizada para determinar la convergencia del algoritmo iterativo para el cálculo de percentiles.
eventEspecifica el valor formateado de la variable de respuesta que representa el evento de interés (por ejemplo, '1' para un evento positivo).
fitStatOutEspecifica la tabla de salida para las estadísticas de ajuste del modelo.
freqEspecifica la variable numérica que contiene la frecuencia de cada observación.
groupByLimitEspecifica el número máximo de niveles en un conjunto de agrupación (group-by).
includeCutoffOneCuando 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.
includeFitStatCuando se establece en False, las estadísticas de ajuste no se generan para acelerar el cálculo.
includeLiftCuando se establece en False, los cálculos de la tabla de elevación (lift) no se generan.
includeRocCuando se establece en False, los cálculos de la curva ROC no se generan.
includeZeroDepthCuando 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.
inputsEspecifica las variables de predicción del modelo a evaluar.
maxItersEspecifica el número máximo de iteraciones para el algoritmo de cálculo de percentiles.
methodEspecifica el algoritmo para el análisis de percentiles. 'ITERATIVE' es más rápido pero aproximado, 'EXACT' es preciso pero más lento.
nBinsEspecifica el número de contenedores (bins) a utilizar para los cálculos de la tabla de elevación (lift).
noMissingTargetSi se establece en True, excluye las observaciones donde la variable objetivo tiene un valor perdido.
partitionCuando se establece en True y la tabla está particionada, los resultados se calculan para cada partición de manera eficiente.
partKeyEspecifica una clave de partición para calcular los resultados solo para esa partición específica.
pEventEspecifica los eventos que corresponden a cada variable de probabilidad en `pVar`.
pResponseEspecifica la variable de respuesta predicha para la evaluación del modelo.
pVarEspecifica las variables que contienen las probabilidades del evento.
responseEspecifica la variable de respuesta real (objetivo) para la evaluación del modelo.
responseFmtEspecifica un formato temporal para la variable de respuesta.
rocOutEspecifica la tabla de salida para los cálculos de la curva ROC.
tableEspecifica la tabla de entrada que contiene los datos a evaluar.
useRawPResponseCuando se establece en True, se utilizan los valores brutos de la variable de respuesta predicha para filtrar las observaciones.
userCutoffEspecifica un punto de corte definido por el usuario para la matriz de confusión.
weightEspecifica la variable numérica que contiene el peso de cada observación.
Preparación de datos
Creación de Datos de Ejemplo

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.

1DATA casuser.hmeq_scored; SET sampsio.hmeq; _PARTIND_ = (mod(_n_, 2)); P_BAD1 = 1 / (1 + exp(-(0.5 - 0.1 * DELINQ + 0.05 * DEROG - 0.02 * VALUE))); RUN;

Ejemplos

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_`.

Código SAS® / CAS
¡Copiado!
1PROC CAS; percentile.assess TABLE={name='hmeq_scored', groupBy={'_PARTIND_'}}, response='BAD', event='1', pVar={'P_BAD1'}, pEvent={'1'}; RUN;
Resultado :
La acción genera varias tablas de resultados, incluyendo estadísticas de ajuste (FitStat), datos para la curva ROC (ROCInfo) y datos para la curva de elevación (LiftInfo) para cada partición de datos (entrenamiento y validación).

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.

Código SAS® / CAS
¡Copiado!
1PROC CAS; 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}; RUN;
Resultado :
Además de las tablas de resultados por defecto, se crean dos tablas adicionales en la caslib activa: `roc_results` con los datos detallados de la curva ROC y `lift_results` con los datos de la curva de elevación para cada grupo. Estas tablas pueden ser utilizadas para visualizaciones personalizadas.

FAQ

¿Cuál es el propósito de la acción 'assess' en el conjunto de acciones 'percentile'?
¿Qué especifica el parámetro 'event'?
¿Cómo se pueden generar estadísticas de ajuste (fit statistics) y dónde se almacenan?
¿Qué hace el parámetro 'cutStep' y cuál es su valor predeterminado?
¿Es posible incluir un punto de corte de 1 en las estadísticas ROC?
¿Para qué se utiliza el parámetro 'pResponse'?
¿Qué métodos de cálculo de percentiles están disponibles a través del parámetro 'method'?