bart bartScoreMargin

Robustesse du scoring face à des données de capteurs manquantes en maintenance prédictive

Scénario de test & Cas d'usage

Contexte Métier

Un fabricant industriel utilise des modèles pour prédire le risque de défaillance de ses équipements à partir de données de capteurs. Cependant, les données réelles sont souvent incomplètes. Le test vise à vérifier que l'action `bartScoreMargin` se comporte correctement lorsqu'on lui demande de simuler un scénario ('what-if') sur une variable qui contient des valeurs manquantes dans la table d'entrée.
À propos du Set : bart

Modèles d'arbres de régression additive bayésienne.

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

Création de données de maintenance où un capteur ('sensor_B') a des valeurs manquantes pour 30% des observations.

Copié !
1DATA casuser.maintenance_data;
2 call streaminit(789);
3 DO machine_id = 1 to 1000;
4 sensor_A = rand('UNIFORM') * 100;
5 sensor_B = rand('UNIFORM') * 50;
6 /* Introduire des valeurs manquantes */
7 IF rand('UNIFORM') < 0.3 THEN call missing(sensor_B);
8 risk_score = (sensor_A * 0.5) + (coalesce(sensor_B, 25) * 0.8) + rand('NORMAL', 0, 5);
9 OUTPUT;
10 END;
11RUN;

Étapes de réalisation

1
Entraînement d'un modèle BART. Les modèles BART gèrent nativement les valeurs manquantes.
Copié !
1PROC CAS;
2 LOADACTIONSET 'bart';
3 bart.bartGauss TABLE='maintenance_data',
4 model={depvar='risk_score', effects={'sensor_A', 'sensor_B'}},
5 store={name='model_maintenance', replace=true};
6RUN;
2
Test du cas limite : calcul d'une marge prédictive en fixant 'sensor_B' à une valeur spécifique (15.5). L'action doit utiliser cette valeur pour toutes les lignes, y compris celles où 'sensor_B' était manquant. Utilisation d'un alpha non standard.
Copié !
1PROC CAS;
2 bart.bartScoreMargin TABLE='maintenance_data',
3 model='model_maintenance',
4 alpha=0.10, /* Test d'un alpha non-défaut pour un intervalle de crédibilité de 90% */
5 margins={{name='margin_sensorB_fixed', label='Scénario Sensor B = 15.5', at={{var='sensor_B', value=15.5}}}},
6 marginInfo=true;
7RUN;
8QUIT;

Résultat Attendu


L'action doit s'exécuter avec succès sans générer d'erreur liée aux valeurs manquantes. La table 'PredMargins' doit afficher une marge prédictive calculée. La table 'MarginInfo' doit confirmer que 'sensor_B' a été fixé à 15.5. Le résultat doit démontrer que la valeur spécifiée dans le paramètre `at` supplante les valeurs originales (y compris manquantes) de la table d'entrée pour le calcul de la marge. Les intervalles de crédibilité doivent être à 90%.