Scénario de test & Cas d'usage
Calcul précis des percentiles et quantiles.
Découvrir toutes les actions de percentileCréation d'une table de clients avec la réponse réelle à la campagne ('a_repondu') et la probabilité prédite par le modèle ('score_propension'). La table contient des informations démographiques de base.
| 1 | DATA casuser.marketing_scores (promote=yes); |
| 2 | call streaminit(123); |
| 3 | DO client_id = 1 to 5000; |
| 4 | a_repondu = rand('BERNOULLI', 0.15); |
| 5 | IF a_repondu = 1 THEN score_propension = rand('UNIFORM')*0.5 + 0.45; /* Higher scores for responders */ |
| 6 | ELSE score_propension = rand('UNIFORM')*0.6; /* Lower scores for non-responders */ |
| 7 | IF score_propension > 1 THEN score_propension = 1; |
| 8 | IF score_propension < 0 THEN score_propension = 0; |
| 9 | OUTPUT; |
| 10 | END; |
| 11 | RUN; |
| 1 | PROC CAS; |
| 2 | percentile.assess |
| 3 | TABLE='marketing_scores', |
| 4 | response='a_repondu', |
| 5 | event='1', |
| 6 | pVar={'score_propension'}; |
| 7 | RUN; |
| 8 | QUIT; |
| 1 | PROC CAS; |
| 2 | percentile.assess |
| 3 | TABLE='marketing_scores', |
| 4 | response='a_repondu', |
| 5 | event='1', |
| 6 | pVar={'score_propension'}, |
| 7 | fitStatOut={name='fit_stats_marketing', replace=true}, |
| 8 | rocOut={name='roc_data_marketing', replace=true}; |
| 9 | RUN; |
| 10 | QUIT; |
L'action doit produire des statistiques d'évaluation (KS, Gini, AUC) indiquant une bonne performance du modèle. Les tables `fit_stats_marketing` et `roc_data_marketing` doivent être créées dans la caslib `casuser` et contenir les données nécessaires pour visualiser la courbe ROC et analyser les métriques d'ajustement du modèle.