📖 Module VII - Statistiques descriptives et graphiques
- 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 ;
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
Voir le corrigé
proc freq data=sashelp.prdsale ;
tables country ;
tables prodtype ;
run ;
proc freq data=sashelp.prdsale ;
tables country*prodtype ;
run ;
Voir le corrigé
ods html file="/chemin/stats_actual.html" ;
proc means data=sashelp.prdsale ;
class country ;
var actual ;
run ;
ods html close ;
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 ;
Voir le corrigé
proc gchart data=crew ;
vbar jobcode ;
run ;
proc gchart data=crew ;
hbar jobcode ;
run ;
proc gchart data=crew ;
pie jobcode ;
run ;
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 ;
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 ;
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 ;
- QCM — QCM Module VII — 6 questions, auto-évaluation
Background Colour
Font Face
Font Kerning
Image Visibility
Line Height
Link Highlight
Text Alignment
Font Size
Letter Spacing
Text Colour
Paragraph Width