SAS Base  •  Module VII  •  2 h
Statistiques descriptives et graphiques
M2 TIDE — Stage de programmation SAS — Enseignement 100 % distanciel
Objectifs du module
  • Produire des tableaux de fréquence et de contingence avec la PROC FREQ
  • Calculer et récupérer des statistiques descriptives avec la PROC MEANS
  • Réaliser des graphiques avec les PROC GCHART et GPLOT

1. PROC FREQ

La PROC FREQ produit des statistiques univariées ou bivariées sur des variables nominales : tableaux de fréquence et tableaux de contingence. C'est également là que l'on trouve les tests du khi-deux.

proc freq data = TABLE <order = > ;
    tables LISTE_DES_VARIABLES </options> ;
    <by VARIABLE ;>
    <weight VARIABLE ;>
run ;

L'instruction TABLES prend deux formes :

Écriture Résultat
tables var1 var2 ... varn ; Édite les tableaux de fréquence de var1 jusqu'à varn, séparément
tables var1*var2 ; Édite le tableau croisé (tableau de contingence) de var1 par var2
tables var1*...*varn ; Pour chaque profil des n-2 premières variables, le tableau croisé des deux dernières

L'option OUT= enregistre le résultat de l'instruction TABLES dans une table. L'option ORDER= choisit l'ordre d'apparition des modalités : order = freq trie par effectif décroissant, order = data par ordre d'apparition dans la table.

proc freq data = SASHELP.PRDSALE order = freq ;
    tables COUNTRY  PRODTYPE ;
    tables COUNTRY * PRODTYPE / nocol norow ;
run ;

2. PROC MEANS

C'est la première procédure à connaître pour des statistiques descriptives élémentaires sur des variables quantitatives. Par défaut, elle calcule le nombre d'observations non manquantes, la moyenne, l'écart-type, le minimum et le maximum de toutes les variables numériques de la table, ou des variables indiquées par VAR.

proc means data = TABLE <options> ;
    var LISTE_VARIABLES_QUANTITATIVES ;
    <by variable ;>
    <class variable ;>
    <output out = table_sortie
            mot_cle = nom_dans_la_table ... ;>
run ;
Dès qu'une option de statistique est spécifiée, l'édition par défaut est annulée. Il faut alors expliciter toutes les statistiques souhaitées, y compris celles qui apparaissaient auparavant.

Les statistiques disponibles :

Mot-clé Statistique
N / NMISS Effectif / nombre de valeurs manquantes
MIN / MAX / RANGE Minimum, maximum, étendue
SUM / SUMWGT Somme, somme des poids
MEAN / MEDIAN Moyenne, médiane
STD / STDERR / VAR / CV Écart-type, erreur standard, variance, coefficient de variation
SKEWNESS / KURTOSIS Coefficients d'asymétrie et d'aplatissement
USS / CSS Somme des carrés, somme des carrés des écarts à la moyenne
T / PROBT Statistique de Student pour H0 : moyenne nulle, et p-value associée
Q1 / Q3 / QRANGE Premier et troisième quartiles, distance interquartile
P1 P5 P10 P90 P95 P99 Centiles

Les instructions :

Instruction Effet
var Variables analysées. Omise, la procédure prend toutes les variables numériques
by Exécute la procédure sur chaque sous-population. Requiert que la table soit triée
class Regroupe les observations par profil. La procédure n'est exécutée qu'une fois, la table n'a pas besoin d'être triée, et la présentation est plus synthétique
freq Tout se passe comme si chaque observation apparaissait v(i) fois dans la table
weight Variable de pondération des observations
id Variable servant d'identifiant
output out = Récupère les statistiques dans une table SAS
proc means data = SASHELP.PRDSALE noprint ;
    class COUNTRY PRODTYPE ;
    var ACTUAL PREDICT ;
    output out = work.stat
           mean = moy_actual moy_predict
           std  = std_actual std_predict ;
run ;

3. PROC GCHART : les variables qualitatives

La PROC GCHART réalise des diagrammes en bâtons, circulaires, en blocs ou en étoiles, y compris en trois dimensions.

proc gchart data = TABLE <options> ;
    HBAR   variables </options> ;
    VBAR   variables </options> ;
    PIE    variables </options> ;
    BLOCK  variables </options> ;
    STAR   variables </options> ;
    <by variables ;>
run ;

Au moins une de ces instructions est nécessaire. HBAR produit des bâtons horizontaux, VBAR des bâtons verticaux, PIE des camemberts ; les variantes HBAR3D, VBAR3D et PIE3D ajoutent la perspective. L'instruction BY trace un graphique distinct par sous-population.

Options des instructions à bâtons :

Option Effet
ascending / descending Ordonne les bâtons par taille croissante / décroissante
nozero N'édite pas les bâtons correspondant à une occurrence nulle
group = Génère des diagrammes juxtaposés selon les modalités d'une variable
subgroup = Génère des diagrammes superposés
midpoints = Définit les valeurs au centre des blocs, si la variable est numérique
outside = Place une statistique au-dessus des barres : freq, cfreq, percent, cpercent, sum, mean
type = / sumvar = Change l'ordonnée : fréquence par défaut, ou cumulée, pourcentage, somme, moyenne d'une variable désignée par sumvar

Options des camemberts : explode = modalite fait ressortir une part, other = p regroupe les modalités inférieures à p pour cent dans une catégorie « autres », fill = S ou fill = X choisit un remplissage plein ou quadrillé.

Si la variable graphique est de type caractère, une barre ou un secteur est créé pour chaque valeur unique. Si elle est numérique, elle est considérée comme continue : les intervalles sont calculés automatiquement et identifiés par des points médians.

4. PROC GPLOT : les variables quantitatives

La PROC GPLOT réalise des graphiques croisant deux variables : nuages de points et courbes.

proc gplot data = TABLE <options> ;
    plot  yvar * xvar </options> ;
    <plot2 yvar * xvar ;>
    <bubble yvar * xvar = bubble_var </options> ;>
    <by variables ;>
    <symbol <interpol = > ;>
run ;

Dans l'instruction PLOT, la première variable citée est en ordonnée. On peut demander plusieurs graphiques dans la même instruction — plot y*x1 y*x2 ; — et factoriser : plot y*(x1 x2) ;. L'option OVERLAY superpose les tracés ; PLOT2 permet de superposer des graphiques avec des échelles différentes, donc deux axes verticaux distincts.

L'instruction SYMBOL définit l'aspect du graphique. Elle est globale — active jusqu'à modification ou fin de session — et additive : définir une option n'affecte pas les autres.

Option de SYMBOL Valeurs courantes
value = (ou v =) PLUS (défaut), STAR, SQUARE, DIAMOND, TRIANGLE, NONE
i = JOIN (lignes droites), SPLINE (trait lissé), NEEDLE (verticales jusqu'à l'axe)
width = (ou w =) Épaisseur de la ligne
color = (ou c =) Couleur de la ligne

Pour annuler une instruction SYMBOL, on soumet une instruction SYMBOL nulle (symbol1 ;) ; pour toutes les annuler, goptions reset = symbol ;.

Contrôle des axes, dans les options de l'instruction PLOT : haxis = et vaxis = établissent les échelles, caxis = la couleur des axes, ctext = la couleur du texte des axes.

goptions reset = symbol ;
symbol1 v = none  i = join   c = black  w = 2 ;
symbol2 v = star  i = join   c = red    l = 2 ;

proc gplot data = work.temp ;
    plot PRECIPITATIONS * DATE = 1
         TEMPERATURE    * DATE = 2 / overlay
         vaxis = 0 to 200 by 25  ctext = blue ;
    title "Precipitations et temperatures au Canada" ;
run ;
quit ;

Les instructions TITLE et FOOTNOTE acceptent les options COLOR= (ou C=), FONT= (ou F=) et HEIGHT= (ou H=), cette dernière pouvant être exprimée en pouces, centimètres ou pourcentage.

5. Exercices d'application

Exercice VII.1 — Calculer les fréquences pour COUNTRY puis pour PRODTYPE à partir de SASHELP.PRDSALE. Puis le tableau croisé des deux variables.
Voir le corrigé
proc freq data=sashelp.prdsale ;
    tables country ;
    tables prodtype ;
run ;

proc freq data=sashelp.prdsale ;
    tables country*prodtype ;
run ;
Exercice VII.2 — Réaliser quelques statistiques sur ACTUAL avec une rupture sur COUNTRY, avec une sortie html.
Voir le corrigé
ods html file="/chemin/stats_actual.html" ;

proc means data=sashelp.prdsale ;
    class country ;
    var actual ;
run ;

ods html close ;
Exercice VII.3 — Créer une table SAS contenant les statistiques sur ACTUAL et PREDICT, avec les variables de rupture COUNTRY et PRODTYPE, sans sortie HTML, dans la table temporaire STAT.
Voir le corrigé
proc means data=sashelp.prdsale noprint ;
    class country prodtype ;
    var actual predict ;
    output out=work.stat
           mean = moy_actual moy_predict
           std  = std_actual std_predict ;
run ;
Exercice VII.4 — À partir de la table CREW, créer un graphique à barres verticales, puis horizontales, puis un graphique circulaire indiquant le nombre d'employés par JobCode.
Voir le corrigé
proc gchart data=crew ;
    vbar jobcode ;
run ;

proc gchart data=crew ;
    hbar jobcode ;
run ;

proc gchart data=crew ;
    pie jobcode ;
run ;
Exercice VII.5 — Créer un graphique à barres verticales pour la variable numérique Salary ; puis un graphique illustrant le salaire moyen par code d'emploi ; puis un camembert du salaire global par code d'emploi, secteurs quadrillés, en mettant en évidence PILOT3.
Voir le corrigé
proc gchart data=crew ;
    vbar salary ;
run ;

proc gchart data=crew ;
    vbar jobcode / type=mean sumvar=salary ;
run ;

proc gchart data=crew ;
    pie jobcode / sumvar=salary fill=x explode="PILOT3" ;
run ;
Exercice VII.6 — À partir de FLIGHT114, représenter le nombre de passagers par date du 2 au 8 mars 2001, avec un titre sur deux lignes. Utiliser un carré comme symbole et relier les points par des lignes droites, en rouge et double épaisseur.
Voir le corrigé
symbol1 v=square  i=join  c=red  w=2 ;

proc gplot data=flight114 ;
    plot boarded*date ;
    where date between "02MAR2001"d and "08MAR2001"d ;
    title "Nombre de passagers"
          "du 2 au 8 mars 2001" ;
run ; quit ;
Exercice VII.7 — Définir l'échelle de l'axe vertical entre 100 et 200 par graduations de 25, le texte des axes en bleu, et ajouter les étiquettes Boarded et Date.
Voir le corrigé
symbol1 v=square  i=join  c=red  w=2 ;

proc gplot data=flight114 ;
    plot boarded*date / vaxis = 100 to 200 by 25  ctext = blue ;
    where date between "02MAR2001"d and "08MAR2001"d ;
    label boarded="Boarded"  date="Date" ;
    title "Nombre de passagers"
          "du 2 au 8 mars 2001" ;
run ; quit ;
Point de contrôle — à faire avant de continuer
Sur SASHELP.PRDSALE, produisez sans regarder vos notes : un tableau de fréquence croisé PRODTYPE*COUNTRY, une PROC MEANS avec rupture par COUNTRY, et un graphique en barres du nombre d'observations par PRODTYPE. Si l'un des trois vous résiste, relisez la section correspondante avant de continuer.
Pour valider ce module
  • QCM — QCM Module VII — 6 questions, auto-évaluation
Modifié le: mardi 11 août 2026, 14:16
Accessibilité

Couleur de fond Couleur de fond

Police Police

Crénage de la police Crénage de la police

Visibilité de l’image Visibilité de l’image

Hauteur de ligne Hauteur de ligne

1.2

Surbrillance de lien Surbrillance de lien

Alignement du texte Alignement du texte

Taille de police Taille de police

1

Espacement des lettres Espacement des lettres

0

Couleur de texte Couleur de texte

Largeur de paragraphe Largeur de paragraphe

0