percentile assess

Scénario Cas Limite : Évaluation d'un modèle de maintenance prédictive avec données manquantes

Scénario de test & Cas d'usage

Contexte Métier

Une entreprise industrielle utilise un modèle pour prédire les pannes de ses équipements. Les données collectées des capteurs sont souvent incomplètes. Ce scénario vise à tester la robustesse de l'action `assess` face à des données réelles, en particulier la gestion des valeurs manquantes dans la variable cible (la panne réelle), et à personnaliser la granularité de l'analyse ROC.
À propos du Set : percentile

Calcul précis des percentiles et quantiles.

Découvrir toutes les actions de percentile
Préparation des Données

Cré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é.

Copié !
1DATA 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;
11RUN;

Étapes de réalisation

1
Première évaluation en incluant par défaut les observations avec une cible manquante. On personnalise la courbe ROC avec un pas de `cutStep=0.02` pour une analyse plus fine.
Copié !
1PROC 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};
9RUN;
10QUIT;
2
Seconde évaluation en utilisant le paramètre `noMissingTarget=True` pour exclure explicitement les observations où la variable `panne_future` est manquante. On compare les statistiques d'ajustement avec celles de l'étape 1.
Copié !
1PROC 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};
9RUN;
10QUIT;

Résultat Attendu


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.