Maîtriser les Statistiques Descriptives sous SAS : PROC MEANS, SUMMARY et TABULATE
Simon 13 vues
Niveau de difficulté
Débutant
Publié le :
Le conseil de l'expert
Stéphanie
Un conseil pour la lisibilité de votre code : arrêtez d'utiliser PROC MEANS avec l'option NOPRINT ! La PROC SUMMARY est techniquement identique mais conçue spécifiquement pour créer des tables de sortie sans polluer la fenêtre de résultats. C'est une distinction sémantique qui rend votre programme immédiatement plus clair pour ceux qui le reliront.
La procédure PROC MEANS est souvent le premier réflexe de l'analyste. Sa fonction principale est de calculer des statistiques descriptives pour des variables, soit sur l'ensemble des observations, soit par groupes.
Ses capacités incluent :
L'estimation des quantiles (y compris la médiane).
Le calcul des limites de confiance pour la moyenne.
L'identification des valeurs extrêmes.
La réalisation de tests de Student (t-test).
Particularité principale : Par défaut, PROC MEANS affiche ses résultats directement dans la fenêtre de sortie (Output window).
PROC SUMMARY : La Puissance Discrète
Techniquement, la PROC SUMMARY est identique à la PROC MEANS en termes de calculs statistiques. Elle offre les mêmes options de traitement.
La différence clé : Contrairement à MEANS qui privilégie l'affichage, SUMMARY est conçue pour écrire ses résultats dans une table de sortie (dataset). Elle n'affiche rien par défaut dans la fenêtre de résultats, ce qui la rend idéale pour préparer des données intermédiaires sans encombrer les rapports.
PROC TABULATE : La Mise en Forme Avancée
La PROC TABULATE reprend les concepts de MEANS et SUMMARY mais va beaucoup plus loin en matière de présentation. Elle est spécialisée dans l'affichage de statistiques descriptives sous forme de tableaux hiérarchiques.
Ses atouts majeurs :
Flexibilité : Elle permet de classer les valeurs des variables et d'établir des relations hiérarchiques complexes entre elles.
Double Sortie : Elle peut envoyer les résultats vers la fenêtre de sortie et/ou vers une table de données.
Formatage : Elle offre un contrôle total sur les étiquettes (labels) et le formatage des statistiques générées.
Le code ci-dessous illustre la différence de sortie. PROC MEANS affiche le résultat, tandis que PROC SUMMARY crée une table nommée WORK.summaryout.
1
/* Affichage direct des statistiques */
proc means data=sashelp.cars;
var msrp invoice;
run;
/* Création d'une table de sortie */
proc summary data=sashelp.cars;
var msrp invoice;
OUTPUT out=WORK.summaryout (LABEL="Table de sortie PROC SUMMARY pour SASHELP.CARS");
run;
1
/* Affichage direct des statistiques */
2
PROC MEANSDATA=sashelp.cars;
3
var msrp invoice;
4
RUN;
5
6
/* Création d'une table de sortie */
7
PROC SUMMARYDATA=sashelp.cars;
8
var msrp invoice;
9
OUTPUT out=WORK.summaryout (LABEL="Table de sortie PROC SUMMARY pour SASHELP.CARS");
10
RUN;
Utilisation de TABULATE pour un tableau structuré
Ici, nous créons un tableau croisant le type de véhicule (en ligne) avec des statistiques de poids et d'empattement (en colonne).
PROC TABULATE
DATA=SASHELP.CARS
OUT=WORK.tabulateout (LABEL="Table de sortie PROC TABULATE pour SASHELP.CARS")
FORMAT=comma10.2;
VAR Weight Wheelbase;
CLASS Type / ORDER=freq MISSING;
TABLE /* Dimension Ligne */
Type,
/* Dimension Colonne */
N
Weight * Range
Wheelbase * Mean;
run; quit;
1
PROC TABULATE
2
DATA=SASHELP.CARS
3
OUT=WORK.tabulateout (LABEL="Table de sortie PROC TABULATE pour SASHELP.CARS")
4
FORMAT=comma10.2;
5
VAR Weight Wheelbase;
6
CLASS Type / ORDER=freq MISSING;
7
8
TABLE/* Dimension Ligne */
9
Type,
10
/* Dimension Colonne */
11
N
12
Weight * Range
13
Wheelbase * Mean;
14
RUN; QUIT;
Aller plus loin : Coloration conditionnelle avec TABULATE
L'un des grands avantages de PROC TABULATE est sa capacité à utiliser des formats personnalisés pour mettre en évidence des données (ex: code couleur "feu tricolore").
/* Définition du format de couleur */
PROC FORMAT;
VALUE watchit
0 - 20000 = 'Green'
20001 - 30000 = 'Orange'
30001 - 50000 = 'Blue'
50001 - 60000 = 'Purple'
60001 - high = 'Red';
run;
/* Application du format comme couleur de fond (foreground) */
PROC TABULATE data=sashelp.cars S=[foreground=watchit.]
FORMAT=dollar10.2
OUT=WORK.tabulatecolor (LABEL="Table de sortie colorée pour SASHELP.CARS");
CLASS type cylinders / MISSING;
VAR invoice;
TABLE type ALL,
Invoice * mean;
run;
1
/* Définition du format de couleur */
2
PROC FORMAT;
3
VALUE watchit
4
0 - 20000 = 'Green'
5
20001 - 30000 = 'Orange'
6
30001 - 50000 = 'Blue'
7
50001 - 60000 = 'Purple'
8
60001 - high = 'Red';
9
RUN;
10
11
/* Application du format comme couleur de fond (foreground) */
OUT=WORK.tabulatecolor (LABEL="Table de sortie colorée pour SASHELP.CARS");
15
CLASS type cylinders / MISSING;
16
VAR invoice;
17
18
TABLE type ALL,
19
Invoice * mean;
20
RUN;
Synthèse Comparative
Pour vous aider à choisir la bonne procédure selon vos besoins, voici un tableau récapitulatif des principales différences fonctionnelles et de leur disponibilité dans les interfaces graphiques :
Bien que PROC MEANS, SUMMARY et TABULATE soient similaires dans les statistiques descriptives qu'elles génèrent, elles se distinguent par la nature de leurs sorties et leur flexibilité.
Si PROC MEANS est idéale pour une vérification rapide et PROC SUMMARY pour la création de tables de données, PROC TABULATE offre le plus grand contrôle. Sa polyvalence en fait souvent le meilleur choix pour les scénarios nécessitant une présentation soignée et hiérarchisée des données.
Avertissement important
Les codes et exemples fournis sur WeAreCAS.eu sont à but pédagogique. Il est impératif de ne pas les copier-coller aveuglément sur vos environnements de production. La meilleure approche consiste à comprendre la logique avant de l'appliquer. Nous vous recommandons vivement de tester ces scripts dans un environnement de test (Sandbox/Dev). WeAreCAS décline toute responsabilité quant aux éventuels impacts ou pertes de données sur vos systèmes.
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.