Au cœur de la structure multivariée : L'approche matricielle directe pour analyser la variance conjointe de vos features

Niveau de difficulté
Expert
Publié le :
Michael

Le Conseil de l'Expert

Michael
Responsable de l'infrastructure Viya.

Ce script illustre une compétence avancée sous SAS : l'utilisation du module IML (Interactive Matrix Language) pour manipuler les données non plus comme des observations, mais comme des objets mathématiques.1. L'abstraction des donnéesContrairement à une étape DATA classique, l'utilisation de TableCreateFromDataSet et tableGetVarData transforme les colonnes du jeu de données Cars en une matrice numérique $X$. Cette conversion est fondamentale : elle permet de passer du traitement de données statistique au calcul d'algèbre linéaire pur.2. La Matrice de CovarianceLa fonction cov(X) génère ici une matrice carrée $(3 \times 3)$ essentielle pour l'analyse multivariée.La diagonale représentera la variance de chaque variable (la dispersion de la puissance, du prix MSRP, et de la facture).Les éléments hors-diagonale indiqueront la direction de la relation linéaire entre les paires (ex: Covariance positive entre HorsePower et MSRP).Note de lisibilité : L'instruction print cov[c = colNames r = colNames] est une bonne pratique cruciale en IML. Sans elle, la sortie serait une matrice brute anonyme ; avec elle, vous obtenez un tableau lisible où chaque coefficient est immédiatement identifiable.

Le script initialise une session IML, crée un objet table à partir du jeu de données `Sashelp.Cars`, puis extrait les colonnes 'HorsePower', 'MSRP' et 'Invoice'. Il calcule ensuite la matrice de covariance de ces variables et affiche le résultat avec des étiquettes de ligne et de colonne appropriées, facilitant l'interprétation des relations entre les variables.
Analyse des données

Type : SASHELP


Le script utilise le jeu de données `Cars` de la bibliothèque `Sashelp`, qui est une bibliothèque de données d'exemple fournie par SAS et est disponible par défaut dans l'environnement SAS.

1 Bloc de code
PROC IML
Explication :
Ce bloc de code IML initialise une table IML à partir du jeu de données `Sashelp.Cars`. Il définit ensuite un vecteur de noms de colonnes ('HorsePower', 'MSRP', 'Invoice') et extrait les données correspondantes dans une matrice `X`. La fonction `cov(X)` calcule la matrice de covariance de `X`, qui est ensuite affichée avec des étiquettes de colonnes et de lignes pour une meilleure lisibilité.
Copié !
1PROC IML;
2tClass = TableCreateFromDataSet("Sashelp", "Cars");
3colNames = {"HorsePower" "MSRP" "Invoice"};
4X = tableGetVarData(tClass, colNames);
5cov = cov(X);
6PRINT cov[c = colNames r = colNames];
7RUN;
L'Astuce Pro
Attention aux données manquantes : contrairement aux procédures statistiques classiques comme PROC CORR qui gèrent automatiquement les valeurs manquantes (souvent par suppression par paire), les fonctions matricielles IML comme cov(X) peuvent propager les valeurs manquantes (missing values) à tout le résultat ou nécessiter une étape de nettoyage préalable avec la fonction loc() pour ne garder que les lignes complètes.
Ce matériel est fourni "tel quel" par We Are Cas. Il n'y a aucune garantie, expresse ou implicite, quant à la qualité marchande ou à l'adéquation à un usage particulier concernant le matériel ou le code contenu dans les présentes. We Are Cas n'est pas responsable des erreurs dans ce matériel tel qu'il existe maintenant ou existera, et We Are Cas ne fournit pas de support technique pour celui-ci.