La standardisation des données est une étape de prétraitement critique, souvent sous-estimée, dont dépend la stabilité de nombreux algorithmes de machine learning. Ce script illustre une expertise fondamentale : le choix d'une méthode de mise à l'échelle adaptée à la distribution des données. Alors que la méthode classique METHOD=STD (score Z) est extrêmement sensible aux valeurs aberrantes — comme le montre la suppression de l'outlier total=64 qui modifie radicalement les statistiques de groupe — l'utilisation de la PROC STDIZE permet d'explorer des alternatives robustes.
L'expertise réside ici dans le passage aux méthodes basées sur les statistiques de rang ou de dispersion robuste. En utilisant METHOD=MAD (Median Absolute Deviation) ou METHOD=IQR (Interquartile Range), vous centrez vos scores sur la médiane plutôt que sur la moyenne, rendant la standardisation insensible aux points extrêmes. L'option METHOD=ABW (Biweight d'Andrews) va encore plus loin en appliquant une pondération itérative qui minimise l'influence des outliers sans avoir à les supprimer manuellement.
L'astuce d'expert consiste à utiliser l'option PSTAT pour afficher les coefficients de localisation et d'échelle calculés. Cela permet de vérifier la cohérence des transformations avant de les injecter dans une analyse de clusters ou une régression, garantissant que les variables ayant des échelles différentes contribuent de manière équitable au modèle final.
Le script crée un jeu de données 'TotalScores' avec les scores d'étudiants de zones 'rural' et 'urban'. Il visualise d'abord la distribution pour identifier les outliers via une PROC BOXPLOT, puis calcule les statistiques de base avec PROC UNIVARIATE. Le cœur du script compare plusieurs méthodes de standardisation (STD, MAD, IQR, ABW) via PROC STDIZE. Finalement, il démontre l'effet de la suppression d'un outlier en ré-appliquant la méthode de standardisation standard pour comparer les résultats.
Analyse des données
Type : CREATION_INTERNE
Les données sont entièrement créées au sein du script via une étape DATA avec une instruction DATALINES. L'indicateur '@@' est utilisé pour lire plusieurs observations à partir d'une seule ligne de données.
1 Bloc de code
DATA STEP Data
Explication : Ce bloc crée le jeu de données 'TotalScores' à partir de données internes (datalines). L'instruction 'input' avec '@@' permet de lire plusieurs observations par ligne de texte.
Explication : Génère des diagrammes en boîtes (boxplots) pour la variable 'total' en fonction de la variable 'Type', afin de visualiser la distribution et les valeurs aberrantes (outliers).
Explication : Calcule des statistiques descriptives détaillées (moyenne, médiane, écart-type, etc.) pour la variable 'total', séparément pour chaque valeur de 'Type'.
Copié !
proc univariate data=TotalScores;
var total;
by Type;
run;
1
PROC UNIVARIATEDATA=TotalScores;
2
var total;
3
BY Type;
4
RUN;
4 Bloc de code
PROC STDIZE
Explication : Standardise la variable 'total' en utilisant la méthode de l'écart-type (STD). L'option 'pstat' affiche les statistiques de localisation et d'échelle utilisées.
Copié !
proc stdize data=totalscores method=std pstat;
title2 'METHOD=STD';
var total;
by Type;
run;
1
PROC STDIZEDATA=totalscores method=std pstat;
2
title2 'METHOD=STD';
3
var total;
4
BY Type;
5
RUN;
5 Bloc de code
PROC STDIZE
Explication : Standardise la variable 'total' en utilisant la méthode robuste de l'écart absolu médian (Median Absolute Deviation - MAD).
Copié !
proc stdize data=totalscores method=mad pstat;
title2 'METHOD=MAD';
var total;
by Type;
run;
1
PROC STDIZEDATA=totalscores method=mad pstat;
2
title2 'METHOD=MAD';
3
var total;
4
BY Type;
5
RUN;
6 Bloc de code
PROC STDIZE
Explication : Standardise la variable 'total' en utilisant la méthode robuste de l'intervalle interquartile (Interquartile Range - IQR).
Copié !
proc stdize data=totalscores method=iqr pstat;
title2 'METHOD=IQR';
var total;
by Type;
run;
1
PROC STDIZEDATA=totalscores method=iqr pstat;
2
title2 'METHOD=IQR';
3
var total;
4
BY Type;
5
RUN;
7 Bloc de code
PROC STDIZE
Explication : Standardise la variable 'total' en utilisant l'estimateur de poids bi-carré d'Andrew (Andrew's biweight estimator - ABW) avec un paramètre de réglage de 4.
Copié !
proc stdize data=totalscores method=abw(4) pstat;
title2 'METHOD=ABW(4)';
var total;
by Type;
run;
1
PROC STDIZEDATA=totalscores method=abw(4) pstat;
2
title2 'METHOD=ABW(4)';
3
var total;
4
BY Type;
5
RUN;
8 Bloc de code
DATA STEP Data
Explication : Crée un nouveau jeu de données 'NoOutlier' en supprimant l'observation identifiée comme une valeur aberrante (total = 64).
Copié !
data NoOutlier;
set totalscores;
if (total = 64) then delete;
run;
1
DATA NoOutlier;
2
SET totalscores;
3
IF (total = 64) THEN delete;
4
RUN;
9 Bloc de code
PROC STDIZE
Explication : Ré-applique la standardisation par écart-type (STD) sur le jeu de données sans l'outlier pour montrer l'impact de ce dernier sur les statistiques de standardisation.
Copié !
proc stdize data=NoOutlier method=std pstat;
title2 'After Removing Outlier, METHOD=STD';
var total;
by Type;
run;
1
PROC STDIZEDATA=NoOutlier method=std pstat;
2
title2 'After Removing Outlier, METHOD=STD';
3
var total;
4
BY Type;
5
RUN;
L'Astuce Pro
Pour optimiser la robustesse de votre standardisation face aux valeurs atypiques (comme le score 64 dans votre table urban), privilégiez METHOD=MAD ou METHOD=IQR plutôt que METHOD=STD : alors que la méthode standard (STD) est extrêmement sensible aux valeurs extrêmes qui tirent la moyenne et l écart-type vers le bas ou le haut, les méthodes basées sur la déviation absolue médiane (MAD) ou l écart interquartile (IQR) utilisent des statistiques de position beaucoup plus stables qui ne nécessitent pas la suppression manuelle des outliers pour obtenir une mise à l échelle cohérente.
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.
Informations de Copyright : S A S S A M P L E L I B R A R Y
SAS et tous les autres noms de produits ou de services de SAS Institute Inc. sont des marques déposées ou des marques de commerce de SAS Institute Inc. aux États-Unis et dans d'autres pays. ® indique un enregistrement aux États-Unis. WeAreCAS est un site communautaire indépendant et n'est pas affilié à SAS Institute Inc.
Ce site utilise des cookies techniques et analytiques pour améliorer votre expérience.
En savoir plus.