percentile assess

Evaluación de un Modelo de Propensión de Compra por Segmento de Cliente

Scénario de test & Cas d'usage

Contexto empresarial

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 modelo en diferentes segmentos demográficos (región y edad) para personalizar la estrategia de campaña y optimizar el presupuesto.
Sobre el conjunto : percentile

Cálculo preciso de percentiles y cuantiles.

Descubrir todas las acciones de percentile
Preparación de datos

Crea una tabla de clientes con datos demográficos, el resultado histórico de una campaña similar (Target_Compra) y la puntuación del nuevo modelo (Prob_Compra).

¡Copiado!
1DATA casuser.clientes_scored;
2 call streaminit(123);
3 array regiones[4] $ E N S O;
4 array grupos_edad[3] $ Joven Adulto Senior;
5 DO id_cliente = 1 to 50000;
6 region = regiones[rand('integer', 1, 4)];
7 grupo_edad = grupos_edad[rand('integer', 1, 3)];
8 ingreso_anual = 20000 + rand('uniform') * 80000;
9 /* Simulación de probabilidad base con ruido */
10 prob_base = 0.1 + (ifn(region='N', 0.1, 0)) + (ifn(grupo_edad='Senior', 0.15, 0)) - (ingreso_anual / 500000);
11 Prob_Compra = prob_base + rand('normal', 0, 0.05);
12 IF Prob_Compra < 0.01 THEN Prob_Compra = 0.01;
13 IF Prob_Compra > 0.99 THEN Prob_Compra = 0.99;
14 Target_Compra = rand('binomial', Prob_Compra, 1);
15 OUTPUT;
16 END;
17RUN;

Étapes de réalisation

1
Carga de la tabla de clientes en memoria CAS.
¡Copiado!
1 
2PROC CASUTIL;
3load
4DATA=casuser.clientes_scored casout='clientes_scored' replace;
5QUIT;
6 
2
Ejecución de la evaluación del modelo, agrupando los resultados por 'region' y 'grupo_edad' para comparar el rendimiento. Se generan las tablas de salida para ROC y Lift.
¡Copiado!
1PROC CAS;
2 percentile.assess
3 TABLE={name='clientes_scored', groupBy={'region', 'grupo_edad'}},
4 response='Target_Compra',
5 event='1',
6 inputs={'Prob_Compra'},
7 pVar={'Prob_Compra'},
8 pEvent={'1'},
9 rocOut={name='roc_results_segmentos', replace=true},
10 casOut={name='lift_results_segmentos', replace=true},
11 fitStatOut={name='fitstat_results_segmentos', replace=true};
12RUN;
13QUIT;
3
Verificación de las estadísticas de ajuste (FitStat) para el segmento 'Senior' de la región 'N', que se espera que tenga el mejor rendimiento.
¡Copiado!
1 
2PROC PRINT
3DATA=casuser.fitstat_results_segmentos(where=(region='N' and grupo_edad='Senior'));
4title 'Estadísticas de Ajuste para Senior en Región N';
5RUN;
6 

Resultado esperado


La acción debe generar tres tablas de salida (`roc_results_segmentos`, `lift_results_segmentos`, `fitstat_results_segmentos`) que contienen las métricas de evaluación para cada combinación de región y grupo de edad. El análisis de estas tablas permitirá al equipo de marketing confirmar si el modelo es consistentemente bueno en todos los segmentos o si necesita ajustes para ciertos grupos. Se espera que el área bajo la curva (AUC) sea mayor en los segmentos 'Senior' y 'N'.