dataSciencePilot

analyzeMissingPatterns

##set_datasciencepilot

Description

L'action analyzeMissingPatterns effectue une analyse détaillée des profils de valeurs manquantes au sein de votre table de données. Elle est redoutable pour diagnostiquer la qualité de vos données avant toute modélisationProcessus de création de structures mathématiques ou statistiques sur SAS Viya pour prédire des comportements, classifier des données ou identifier des tendances à partir de jeux de données CAS. (parce qu'un modèleReprésentation mathématique entraînée sur des données pour capturer des tendances, prédire des résultats ou classifier des observations via des algorithmes (Régression, Forêt aléatoire, Gradient Boosting). entraîné sur des données trouées, c'est un peu comme un gruyère sans fromage : décevant). Vous pouvez approfondir cette action dans la documentation officielle .

Syntaxe Officielle
proc cas;
dataSciencePilot.analyzeMissingPatterns /
casOut={caslib="string", name="table-name", replace=TRUE|FALSE, promote=TRUE|FALSE, ...}
distinctCountLimit=integer
ecdfTolerance=double
freq="variable-name"
inputs={"var1", "var2", ...}
misraGries=TRUE|FALSE
nominals={"var1", "var2", ...}
table={caslib="string", name="table-name", where="where-expression", ...}
target="variable-name";
run;
quit;

Paramètres Clés

Nom du paramètre Description
casOut La table CAS de sortie qui contiendra les résultats de l'analyse des profils manquants. C'est ici que vos trous de données seront fièrement exposés. Paramètre requis.
table La table CAS en entrée contenant les données à analyser. Paramètre requis.
inputs Liste des variables spécifiques à analyser. Si non spécifié, l'action analysera goulûment toutes les variables de la table.
nominals Permet de forcer manuellement le traitement de certaines variables comme étant catégorielles (nominales).
target Variable cible (target). Utile pour observer comment les valeurs manquantes se comportent par rapport à ce que vous essayez de prédire.
freq Spécifie une variable numérique contenant les fréquences (ou poids) pour chaque observation.
distinctCountLimit Limite du nombre de valeurs distinctes. Au-delà, l'algorithme s'adapte ou s'arrête (voir misraGries).
misraGries Si défini sur True, active l'algorithme de Misra-Gries pour estimer la distribution de fréquence quand la 'distinctCountLimit' est dépassée.
ecdfTolerance Tolérance pour l'algorithme de calcul des quantiles (fonction de distribution cumulative empirique).

Préparation des données

Génération d'une table avec des valeurs manquantes

Nous allons charger la fameuse table SASHELP.CARS dans CAS et y injecter aléatoirement quelques valeurs manquantes pour avoir de la matière à analyser.

1PROC CASUTIL;
2 load DATA=sashelp.cars casout="cars_missing" outcaslib="casuser" replace;
3QUIT;
4DATA casuser.cars_missing;
5 SET casuser.cars;
6 /* On supprime ~10% des poids et ~5% des types */
7 IF rand("Uniform") < 0.1 THEN weight = .;
8 IF rand("Uniform") < 0.05 THEN type = '';
9RUN;

Exemples d'utilisation

Analyse globale basique

Exécution de l'action sur la table entière avec les options par défaut, en spécifiant simplement la table d'entrée et la table de sortie.

1PROC CAS;
2 dataSciencePilot.analyzeMissingPatterns /
3 TABLE={name="cars_missing", caslib="casuser"}
4 casOut={name="missing_patterns_out", caslib="casuser", replace=true};
5RUN;
6QUIT;
Résultat Attendu :
Une table CAS nommée 'missing_patterns_out' est créée. Elle contiendra un rapport détaillé montrant quelles combinaisons de variables ont des valeurs manquantes.
Analyse ciblée avec variables nominales et algorithme robuste

Cette fois, on cible un sous-ensemble de variables (inputs), en forçant le format de 'Type', en ajoutant la variable 'MSRP' comme cible et en activant le filet de sécurité algorithmique Misra-Gries.

1PROC CAS;
2 dataSciencePilot.analyzeMissingPatterns /
3 TABLE={name="cars_missing", caslib="casuser"}
4 inputs={"Weight", "Type", "EngineSize", "Horsepower"}
5 nominals={"Type"}
6 target="MSRP"
7 casOut={name="missing_patterns_detailed", caslib="casuser", replace=true, promote=true}
8 distinctCountLimit=5000
9 misraGries=true;
10RUN;
11QUIT;
Résultat Attendu :
La table 'missing_patterns_detailed' est générée et promue en mémoire globale. Elle met en évidence les interactions de valeurs manquantes spécifiquement entre le poids, le type et le moteur, en lien avec le prix (MSRP).