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 données de capteurs de machines. Des valeurs manquantes sont intentionnellement introduites dans la variable de réponse ('panne_future') pour simuler des cas où le statut de la panne n'a pas pu être confirmé.
| 1 | DATA casuser.donnees_machines (promote=yes); |
| 2 | call streaminit(789); |
| 3 | DO machine_id = 1 to 2000; |
| 4 | pression_capteur = 100 + rand('NORMAL')*10; |
| 5 | temperature_capteur = 80 + rand('NORMAL')*5; |
| 6 | prob_panne_predite = rand('UNIFORM'); |
| 7 | panne_future = rand('BERNOULLI', 0.1); |
| 8 | IF mod(machine_id, 10) = 0 THEN call missing(panne_future); /* Introduire 10% de valeurs manquantes */ |
| 9 | OUTPUT; |
| 10 | END; |
| 11 | RUN; |
| 1 | PROC CAS; |
| 2 | percentile.assess |
| 3 | TABLE='donnees_machines', |
| 4 | response='panne_future', |
| 5 | event='1', |
| 6 | pVar={'prob_panne_predite'}, |
| 7 | cutStep=0.02, |
| 8 | rocOut={name='roc_avec_manquants', replace=true}; |
| 9 | RUN; |
| 10 | QUIT; |
| 1 | PROC CAS; |
| 2 | percentile.assess |
| 3 | TABLE='donnees_machines', |
| 4 | response='panne_future', |
| 5 | event='1', |
| 6 | pVar={'prob_panne_predite'}, |
| 7 | noMissingTarget=True, |
| 8 | fitStatOut={name='fit_stats_sans_manquants', replace=true}; |
| 9 | RUN; |
| 10 | QUIT; |
La première étape doit s'exécuter et inclure les observations avec cibles manquantes dans les totaux, mais pas dans les calculs de métriques. La table `roc_avec_manquants` doit être créée. La seconde étape doit produire des statistiques dans `fit_stats_sans_manquants` basées sur un nombre total d'observations réduit (90% du total initial), car les cibles manquantes ont été exclues. Les métriques de performance comme l'AUC devraient différer entre les deux exécutions, démontrant l'impact de la gestion des valeurs manquantes.