Autres procédures

In document SAS base Introduction à SAS SQL SAS IML (Page 70-89)

On détaillera maintenant quelques procédures usuelles :

• PROC TABULATE (pour les tableaux croisés statistiques),

• PROC MEANS (pour le calcul de statistiques descriptives),

• PROC FREQ (pour l’édition de tableaux de fréquence et les tests du Chi-2 et assimilés),

• PROC CORR (calculs de corrélations),

• PROC UNIVARIATE (description de la distribution d’une variable)

• et PROC IML (calculs matriciels).

On abordera en TP les principales procédures nécessaires à une analyse statistique poussée (régressions, ACP…).

5. 1. Les points communs des procédures d’analyse statistique

5. 1. 1. La sélection de l’échantillon d’étude

Pour effectuer une sélection des observations de la table SAS spécifiée en entrée d’une procédure SAS, on peut utiliser l’option WHERE= :

PROC NOMPROC DATA=nomlib.nomtableentree (WHERE=(expression));

Instructions;

RUN;

5. 1. 2. La sélection des variables d’analyse

Pour sélectionner les variables analysées dans les procédures de statistique, on utilise généralement l’instruction VAR. Elle est valable dans un grand nombre de procédures statistiques, en particulier MEANS, UNIVARIATE et CORR. Les variables numériques sont les seules autorisées dans une instruction VAR ou les procédures statistiques.

VAR variable(s)Numérique(s) ;

En l’absence d’une instruction VAR dans les procédures où cette dernière est valide, la procédure utilisera toutes les variables numériques de la table SAS en entrée.

5. 1. 3. L’analyse statistique par sous-groupes

Pour mener une analyse sur plusieurs sous-groupes d’observations, on dispose des instructions CLASS et BY.

BY <DESCENDING> variable(s) ; CLASS variable(s) ;

On obtient des résultats par sous-groupe étudié mais l’affichage des sorties de résultats diffère généralement selon l’emploi des instructions BY ou CLASS.

Différences entre les instructions BY et CLASS dans les procédures de statistique

Instruction BY Instruction CLASS

Valable dans toutes les procédures d’analyse statistique

Valable uniquement dans les procédures MEANS, UNIVARIATE et TTEST.

Les valeurs manquantes de chaque variable du BY constituent un sous-groupe qui est pris en compte dans l’analyse.

Par défaut, les valeurs manquantes des variables de classe ne sont pas prises en compte dans l’analyse.

Nécessite un tri préalable de la table en entrée : tri par la même liste de variables que celle de l’instruction BY et dans le même ordre.

Ne nécessite pas de tri préalable de la table en entrée.

Pendant la phase de calcul, SAS ne garde en mémoire que les observations d’un sous-groupe à la fois.

Toutes les observations de la table sont conservées pendant la phase de calculs. On évitera CLASS pour les tables volumineuses.

5. 1. 4. Le regroupement des valeurs d’une variable

Pour créer des sous-groupes d’observations en n’utilisant pas toutes les valeurs distinctes d’une variable, mais en faisant des regroupements, il est possible d’utiliser une instruction FORMAT combinée avec la présence d’une instruction BY, CLASS ou TABLE.

Cette démarche sera utile pour mettre une variable quantitative en classes sans avoir à créer une nouvelle variable.

5. 1. 5. La pondération des observations

Dans certains cas de figure, il peut s’avérer nécessaire de pondérer les observations de la table en entrée par les valeurs d’une variable numérique. Pour cela, on dispose des instructions WEIGHT ou FREQ. Les deux instructions ne peuvent pas être utilisées simultanément.

WEIGHT|FREQ variableNumérique ;

Avec ces deux instructions, les observations ayant un poids négatif ou nul sont ignorées dans les calculs. En outre, avec FREQ, les valeurs non entières sont tronquées au nombre entier inférieur.

La principale différence est la suivante :

• chaque valeur de l’instruction WEIGHT est considérée comme le poids de l’observation correspondante : le nombre d’observations renseignées considéré ne change pas.

• Chaque valeur de l’instruction FREQ est considérée comme le nombre d’occurrences de l’observation correspondante : le nombre d’observations renseignées considéré est égal à la somme des pondérations données dans l’instruction FREQ.

5. 2. La procédure TABULATE : créer des tableaux de synthèse

La procédure TABULATE permet de créer des tableaux de synthèse à une dimension ou des tableaux croisés à plusieurs dimensions.

La procédure TABULATE s’appuie sur trois instructions particulières : CLASS, VAR et TABLE.

Syntaxe :

PROC TABULATE DATA=tableSAS <options> ; CLASS variable(s) ;

VAR variable(s)_de_calcul ;

TABLE (structure des lignes du tableau), (structure des colonnes du tableau)*

(calculs apparaissant dans les cases du tableau)

; RUN ;

• CLASS permet de lister les variables qui spécifient des catégories. Ces catégories constituent des lignes et/ou des colonnes du tableau. Par défaut, les valeurs manquantes de ces variables n’apparaissent pas dans le tableau ;

• VAR identifie une ou plusieurs variables numériques comme étant celles sur lesquelles des statistiques seront calculées. Les valeurs manquantes de ces variables ne participent pas aux calculs des statistiques.

En l’absence de statistiques et de variables numériques citées dans VAR, la procédure TABULATE produit des comptages d’observations (N).

• TABLE est une instruction obligatoire. Elle permet de spécifier l’organisation du tableau ainsi que son aspect. On y décrit les variables à mettre dans le tableau, les statistiques à afficher et éventuellement d’autres caractéristiques comme les formats, les libellés ou le style à appliquer à un élément du tableau.

En l’absence d’éléments en ligne dans l’instruction TABLE, tout le tableau est organisé en colonnes.

En présence d’au moins une variable de calcul (citée dans VAR) et en l’absence de statistique, des sommes sont calculées par défaut.

Exemple :

Dans le tableau suivant, les variables ANNEE et SEXE sont des variables de l’instruction CLASS : chacune de leurs valeurs constitue une ligne ou une colonne du tableau. La variable REVENU_BRUT est citée, elle, dans l’instruction VAR, car on calcule des statistiques (minimum, moyenne) sur ses valeurs.

ANNEE

2003 2004

Revenu brut Revenu brut Revenu brut Revenu brut

MINIMUM MOYENNE MINIMUM MOYENNE

SEXE F H Ensemble

Structures de tableaux possibles (lignes ou colonnes) Juxtaposition (A B) Imbrication (A * B)

En lignes A

B

B B A

B

En colonnes

A B

B B B

La dernière partie de l’instruction TABLE concerne les calculs à effectuer. L’écriture générale est de la forme nomVariabledeCalcul*statistique, où la variable de calcul a son nom cité dans l’instruction VAR et la statistique est l’une des suivantes :

• N

Nombre total d’observations ;

• PCTN, ROWPCTN, COLPCTN

Pourcentages d’un nombre d’observations (pourcentage de l’ensemble, pourcentage-ligne et pourcentage-colonne respectivement) ;

• SUM, MEAN STD, MAX, MIN, RANGE, MEDIAN, Q1, Q3, P1, P5, P10, P90, P95, P99 Somme, moyenne, écart-type, maximum, minimum, étendue, médiane, quartiles, centiles ;

• NMISS

Nombre d’observations manquantes de la variable de calcul ;

• PCTSUM, ROWPCTSUM, COLPCTSUM

Pourcentage de la somme d’une variable de calcul (respectivement pourcentage du total, pourcentage du total-ligne et pourcentage du total-colonne).

Il est possible d’effectuer, avec cette instruction TABLE, des factorisations ou mises en commun : par exemple, au lieu d’écrire VAR1*SUM VAR2*SUM, on pourra écrire (VAR1 VAR2)*SUM pour un résultat semblable.

Pour changer l’intitulé d’une case du tableau, qu’il corresponde au nom ou au label d’une variable ou à un mot-clé (ALL ou une statistique), il suffit d’ajouter à côté de l’élément concerné="texte de remplacement".

Exemple : répartition d’une variable qualitative entre ses différentes modalités.

proc tabulate data=pays.russet;

class Demo;

table (Demo ALL="Tous")*(N="Effectif" PCTN="%");

run;

Les statistiques affichées dans les cellules sont les effectifs (N) et les pourcentages (PCTN).

Le mot-clé ALL crée une colonne récapitulative : il s’agit ici du total des effectifs.

Pour obtenir le tableau transposé du précédent, on remplace l’instruction TABLE précédente par l’instruction :

table (Demo ALL="Tous"),(N="Effectif" PCTN="%");

Exemple : tableau de synthèse d’une variable quantitative.

On utilise l’instruction VAR pour lister les variables d’analyse.

On peut en outre utiliser une instruction CLASS pour faire des statistiques par groupe.

proc tabulate data=pays.russet;

class Demo;

var Gini;

table (Demo ALL="Tous"),Gini*MEAN="Moyenne";

run;

Exemple : tableaux croisés de deux variables qualitatives. Ces deux variables doivent être spécifiées dans une instruction CLASS.

Cet exemple génère, à partir de la table chien, un tableau croisé de la variable affection en lignes avec la variable agressivité en colonnes. Les statistiques sont les effectifs (N) et les pourcentages (PCTN). L’utilisation du mot ALL à la suite des deux variables du tableau donne un total en ligne et un autre en colonne.

proc tabulate data=chien;

class affection agressivite;

table (affection ALL="Total"), (agressivite ALL="Total")*

(N PCTN);

run;

Exemple avec l’instruction FORMAT et pourcentage lignes.

On peut réaliser plusieurs variantes du tableau précédent en jouant sur les options de la procédure TABULATE et sur les éléments de l’instruction TABLE.

proc tabulate data=chien format=4.1;

class affection agressivite;

table affection, agressivite*

ROWPCTN="%";

run;

Avec l’option FORMAT, le format d’affichage par défaut du contenu de toutes les cellules du tableau est modifié : on passe de deux décimales à une seule. Avec le mot-clé ROWPCTN, on obtient dans les cellules les pourcentages-lignes.

De manière similaire, on pourrait obtenir un tableau avec des pourcentages colonnes. Il suffirait d’utiliser l’instruction TABLE suivante :

table affection, agressivite*

COLPCTN="%";

Il est possible de mettre en forme les tableaux obtenus par cette procédure à l’aide des options STYLE, que nous ne détaillerons pas ici.

5. 3. La procédure FREQ : analyser la distribution de variables qualitatives

Cette procédure est à la fois :

• une procédure descriptive dans le sens où elle produit des tableaux de fréquences unidimensionnelles ou des tris croisés multidimensionnels. Elle permet de calculer les effectifs et les fréquences de chaque valeur prise par une variable ;

• une procédure statistique permettant de faire certains tests comme le test du chi2.

Syntaxe :

PROC FREQ DATA=tableSAS ORDER=ordreValeurs <liste d’options> ; BY liste_de_variables ;

TABLES requête </liste d’options> ; WEIGHT variable ;

RUN ;

Instruction TABLES

TABLES permet de définir la liste des distributions souhaitées. Plusieurs distributions peuvent être demandées simultanément, chacune pouvant être unidimensionnelle ou multidimensionnelle.

Dans le cas de demande de plusieurs distributions simultanées, il suffit de séparer chaque distribution par un espace. Par exemple, TABLES a b correspond à la demande de la distribution simple de la variable a, puis celle de la variable b.

Si on veut croiser plusieurs variables entre elles, il suffit de les séparer par des astérisques.

Par exemple, TABLE a*b correspond à la demande de tri croisé, affichant une modalité de a à chaque ligne et une modalité de b à chaque colonne.

On peut utiliser les facilités d’écriture résumées sur les exemples suivants : a*(b c) correspond à a*b a*c

(a b)*(c d) correspond à a*c b*c a*d b*d (a b c)*d correspond à a*d b*d c*d a - - c correspond a b c

(a - - c)*d correspond à a*d b*d c*d.

Exemple : dans l’étude de la relation herbivores-environnement, on veut croiser la densité au km_ des éléphants et la proximité de l’eau :

proc freq data=parc;

tables A*EAU;

run;

Pour une table unidimensionnelle, PROC FREQ calcule : l’effectif

l’effectif cumulé le pourcentage

le pourcentage cumulé.

Pour une table multidimensionnelle, PROC FREQ calcule : le pourcentage ligne

le pourcentage colonne le pourcentage total l’effectif.

Option ORDER

L’instruction ORDER= permet de spécifier l’ordre dans lequel SAS devra éditer les valeurs des variables en lignes dans les tableaux produits par la procédure FREQ :

• ORDER=DATA pour éditer les valeurs dans l’ordre d’apparition dans la table ;

• ORDER=FORMATTED pour éditer les valeurs dans l’ordre croissant du format d’affichage ;

• ORDER=FREQ pour éditer les valeurs dans l’ordre de leurs fréquences décroissantes ;

• ORDER=INTERNAL pour éditer les valeurs dans l’ordre croissant des valeurs non formatées. C’est l’ordre utilisé par défaut.

Exemple :

proc freq data=voiture order=internal;

table origine*finition;

run;

Extrait de la table obtenue :

The FREQ Procedure Table of Origine by Finition Origine(Origine) Finition(Finition) Frequency‚

Percent ‚ Row Pct ‚

Col Pct ‚B ‚M ‚TB ‚ Total ƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒˆ D ‚ 2 ‚ 0 ‚ 1 ‚ 3

‚ 11.11 ‚ 0.00 ‚ 5.56 ‚ 16.67 ‚ 66.67 ‚ 0.00 ‚ 33.33 ‚ ‚ 28.57 ‚ 0.00 ‚ 16.67 ‚

ƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒˆ F ‚ 2 ‚ 2 ‚ 2 ‚ 6

‚ 11.11 ‚ 11.11 ‚ 11.11 ‚ 33.33 ‚ 33.33 ‚ 33.33 ‚ 33.33 ‚ ‚ 28.57 ‚ 40.00 ‚ 33.33 ‚

ƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒˆ GB ‚ 1 ‚ 0 ‚ 0 ‚ 1

‚ 5.56 ‚ 0.00 ‚ 0.00 ‚ 5.56 ‚ 100.00 ‚ 0.00 ‚ 0.00 ‚ ‚ 14.29 ‚ 0.00 ‚ 0.00 ‚

ƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒˆ Total 7 5 6 18 38.89 27.78 33.33 100.00 (Continued)

On aurait obtenu le même résultat avec ORDER=FORMATTED puisqu’on n’a pas utilisé l’option format.

Exercice 10 : utilisation d’un format d’affichage

Editez la répartition des voitures en fonction de l’origine et de la finition, en ayant préalablement regroupé les voitures européennes dans une seule catégorie ‘Europe ‘, et les autres voitures dans la catégorie ‘Autres’ (utiliser une procédure Format, puis une instruction format dans la procédure Freq). Le listing obtenu sera le suivant :

The FREQ Procedure Table of Origine by Finition Origine(Origine) Finition(Finition) Frequency‚

Percent ‚ Row Pct ‚

Col Pct ‚B ‚M ‚TB ‚ Total ƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒˆ Europe ‚ 7 ‚ 2 ‚ 5 ‚ 14 ‚ 38.89 ‚ 11.11 ‚ 27.78 ‚ 77.78 ‚ 50.00 ‚ 14.29 ‚ 35.71 ‚ ‚ 100.00 ‚ 40.00 ‚ 83.33 ‚

ƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒˆ Autres ‚ 0 ‚ 3 ‚ 1 ‚ 4 ‚ 0.00 ‚ 16.67 ‚ 5.56 ‚ 22.22 ‚ 0.00 ‚ 75.00 ‚ 25.00 ‚ ‚ 0.00 ‚ 60.00 ‚ 16.67 ‚

ƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒˆ Total 7 5 6 18 38.89 27.78 33.33 100.00

Exercice 11 : utiliser une option ORDER pour obtenir la sortie ci-dessous :

The FREQ Procedure Table of Origine by Finition Origine(Origine) Finition(Finition) Frequency‚

Percent ‚ Row Pct ‚

Col Pct ‚B ‚M ‚TB ‚ Total ƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒˆ Autres ‚ 0 ‚ 3 ‚ 1 ‚ 4 ‚ 0.00 ‚ 16.67 ‚ 5.56 ‚ 22.22 ‚ 0.00 ‚ 75.00 ‚ 25.00 ‚ ‚ 0.00 ‚ 60.00 ‚ 16.67 ‚

ƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒˆ Europe ‚ 7 ‚ 2 ‚ 5 ‚ 14 ‚ 38.89 ‚ 11.11 ‚ 27.78 ‚ 77.78 ‚ 50.00 ‚ 14.29 ‚ 35.71 ‚ ‚ 100.00 ‚ 40.00 ‚ 83.33 ‚

ƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒˆ Total 7 5 6 18 38.89 27.78 33.33 100.00

Options principales de l’instruction TABLES Concernant les distributions croisées :

NOCOL : supprime l’impression des pourcentages colonne NOROW : supprime l’impression des pourcentages lige NOFREQ : supprime l’impression des fréquences croisées NOPERCENT : supprime l’impression des pourcentages croisés

NOCUM : supprime l’impression des fréquences et des pourcentages cumulés

CUMCOL : imprime les pourcentages colonne cumulés.

Concernant les distributions à dimension >2 :

TOTPCT : affiche les pourcentages totaux par rapport à l’ensemble de la distribution, et non plus par rapport aux critères page.

Concernant l’aspect général du tableau de sortie :

NOPRINT : supprime l’impression des tables mais permet l’impression de statistiques

OUT= : stocke les résultats de la demande dans la table SAS

MISSING : traite les valeurs manquantes comme des modalités renseignées dans les calculs et tous les tableaux.

MISSPRINT : permet d’éditer les valeurs manquantes dans les tableaux demandés dans l’instruction TABLE, mais elles ne sont pas prise en compte dans les calculs statistiques effectués par la procédure.

Concernant le calcul des valeurs attendues par rapport aux valeurs observées :

EXPECTED : imprime les fréquences attendues sous l’hypothèse d’indépendance

DEVIATION : édite les écarts entre les effectifs observés et théoriques

LIST : imprime des tables de dimension 2 sous forme de liste plutôt que de tableaux

CELLCHI2 : imprime la contribution de chaque case à la statistique du chi2 totale

CHISQ : calcule le test du chi2 d’homogénéité ou d’indépendance de chaque strate et calcule les mesures associées au chi2.

D’autres options non détaillées ici permettent de calculer d’autres statistiques.

Résultat en « liste »

L’option LIST édite les tableaux croisés demandés dans l’instruction TABLE sous forme de liste. Cette option n’est pas valide si des indicateurs de liaison (options EXPECTED, DEVIATION) sont demandés.

L’option SPARSE permet d’obtenir toutes les combinaisons possibles des modalités des variables, même celles d’effectifs nul dans le cas où l’on demande un affichage du tableau sous forme de liste (option LIST).

Exemple

proc freq data=voiture order=internal;

table origine*finition/list sparse;

run;

The FREQ Procedure

Cumulative Cumulativ

Origine Finition Frequency Percent Frequency Percent

ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ D B 2 11.11 2 11.11

D M 0 0.00 2 11.11 D TB 1 5.56 3 16.67 F B 2 11.11 5 27.78 F M 2 11.11 7 38.89 F TB 2 11.11 9 50.00 GB B 1 5.56 10 55.56 GB M 0 0.00 10 55.56 GB TB 0 0.00 10 55.56 I B 2 11.11 12 66.67 I M 0 0.00 12 66.67 I TB 2 11.11 14 77.78 J B 0 0.00 14 77.78 J M 2 11.11 16 88.89 J TB 1 5.56 17 94.44 U B 0 0.00 17 94.44 U M 1 5.56 18 100.00 U TB 0 0.00 18 100.00

En l’absence de l’option SPARSE, les lignes correspondant aux sous-groupes d’effectif nul (ex. : voitures allemandes notées M) n’auraient pas été listées.

Stockage du résultat dans une table SAS Syntaxe

TABLES requête / OUT=nom_de_table OUTPCT ;

Les résultats de la procédure peuvent être stockés dans une table SAS. La table en sortie contiendra une observation par croisement des modalités des différentes variables. Les variables présentes dans cette table, outre les variables origine de la demande TABLES sont :

COUNT, l’effectif

et PERCENT, le pourcentage par rapport à l’ensemble des observations.

De plus, si l’option OUTPCT est activée, les variables suivantes sont conservées : PCT_COL : pourcentage colonne

PCT_ROW : pourcentage ligne

PCT_TABL : pourcentage par rapport à l’ensemble de la table de dimension 2 (cas des tables de dimension>2).

De la même manière l’option OUTEXPECT permet d’inclure les effectifs théoriques.

En outre, si une instruction BY est activée, les variables correspondantes seront ajoutées à la table de sortie.

Tous les autres éléments obtenus par une PROC FREQ, notamment tous les indicateurs statistiques peuvent être sauvegardés dans une autre table SAS, par l’adjonction d’une autre instruction :

OUTPUT OUT=nom_de_table <liste_de_statistiques_à_sauvegarder> ;

Les test d’indépendance

L’utilisation de l’option CHISQ permet de réaliser des tests d’indépendance. L’hypothèse nulle testée est l’indépendance de deux variables.

Exemple : on va tester l’indépendance de l’origine des voitures et la qualité de la finition.

proc format;

value $ note 'B','TB'='B-TB' ;

run;

proc freq data=voiture order=internal;

table origine*finition/CHISQ;

format finition $note.;

run;

The FREQ Procedure

Statistics for Table of Origine by Finition Statistic DF Value Prob

ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ Chi-Square 5 8.0308 0.1545

Likelihood Ratio Chi-Square 5 9.8131 0.0807 Mantel-Haenszel Chi-Square 1 2.4445 0.1179 Phi Coefficient 0.6679

Contingency Coefficient 0.5554 Cramer's V 0.6679

WARNING: 100% of the cells have expected counts less than 5. Chi-Square may not be a valid test.

Sample Size = 18

On a effectué l’analyse sur un échantillon très petit, aussi le test du Chi-2 n’est pas très fiable. Cette réserve mise à part, le test du Chi-2 montre une probabilité d’accepter l’hypothèse d’indépendance des deux variables de 15% (0,1545), ce qui est assez faible : on peut rejeter cette hypothèse. Cette conclusion est corroborée par les valeurs des trois derniers coefficients, phi, contingence et V de Cramer : pour ce dernier, par exemple, la liaison observée correspond à 67% à une liaison parfaite entre les deux variables.

5. 4. La procédure MEANS : analyser la distribution de variables quantitatives (calcul de statistiques simples)

PROC MEANS permet d’analyser la distribution d’une variable numérique sur une population donnée. Cette procédure pourra notamment servir à :

• calculer la somme de la variable ;

• calculer la moyenne et la médiane ;

• calculer l’écart-type, l’étendue et l’intervalle inter quantiles (caractéristiques de dispersion) ;

• étudier la répartition de la variable (médiane, quartiles d’ordre 1 et 3, centiles d’ordre 1, 5, 10, 25, 50, 75, 90, 95, 99) ;

• étudier la forme de la distribution (coefficients d’aplatissement et d’asymétrie) ;

• identifier les valeurs extrêmes de la variable.

Syntaxe :

PROC MEANS <DATA=nom_de_table STAT1…STATm <liste d’options> ; CLASS liste_de_variables ;

VAR liste_de_variables_numériques ; BY liste_de_variables ;

FREQ variable ; WEIGHT variable ; ID variable;

OUTPUT OUT=nom_de_table;

Seule l’instruction VAR est obligatoire. Si on ne précise aucune option ni instruction spécifique, la procédure MEANS va calculer par défaut, pour chaque variable numérique :

• le nombre d’observations renseignées (N) ;

• la moyenne (Mean) ;

• l’écart-type (Std Dev) ;

• le minimum ;

• le maximum.

Sinon, on précise sur la première ligne (STAT1…STATm) les statistiques descriptives à calculer.

Exemple : comparaison des sorties obtenues avec CLASS et BY, lorsque l’on veut calculer la moyenne du PNB par tête des pays en fonction du régime politique.

Avec l’instruction CLASS :

proc means data=pays.russet mean;

var gnpr;

class demo;

run;

The MEANS Procedure Analysis Variable : Gnpr Nb

Demo obs. Moyenne ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ 1 15 1055.00

2 11 490.2727273 3 21 241.2857143

ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ

Avec l’instruction BY :

proc sort data=pays.russet;

by demo;

run;

proc means mean;

var gnpr;

by demo;

run;

- Demo=1 The MEANS Procedure Analysis Variable : Gnpr Moyenne ƒƒƒƒƒƒƒƒƒƒƒƒ 1055.00 ƒƒƒƒƒƒƒƒƒƒƒƒ

- Demo=2 Analysis Variable : Gnpr Moyenne ƒƒƒƒƒƒƒƒƒƒƒƒ 490.2727273 ƒƒƒƒƒƒƒƒƒƒƒƒ

- Demo=3 Analysis Variable : Gnpr Moyenne ƒƒƒƒƒƒƒƒƒƒƒƒ 241.2857143 ƒƒƒƒƒƒƒƒƒƒƒƒ

Choix de croisements des variables de classes

La présence de l’instruction CLASS avec plusieurs variables construit des groupes correspondant au croisement de toutes les variables citées dans cette instruction. Avec l’instruction TYPES, on peut préciser les croisements voulus. Les combinaisons se spécifient avec le nom d’une variable de l’instruction CLASS, éventuellement séparée de celle avec laquelle elle est croisée par un astérisque (*). Le niveau le plus agrégé, n’utilisant aucune variable de l’instruction CLASS, se note ().

Exemple : on souhaite obtenir la moyenne des cylindrées et de la puissance de 18 voitures sur les deux combinaisons origine*tranche_de_prix et origine*finition.

proc means data=voiture mean;

class origine finition tranche_prix;

types origine*finition origine*tranche_prix ();

var cylindree puissance;

run;

The MEANS Procedure N

Obs Variable Mean ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ 18 Cylindree 1631.67 Puissance 84.6111111 ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ

N

Origine Tranche_prix Obs Variable Mean

ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ D 1 1 Cylindree 1979.00

Puissance 100.0000000 2 2 Cylindree 1790.50 Puissance 91.5000000 F 1 4 Cylindree 1469.25 Puissance 65.2500000 2 2 Cylindree 2053.00 Puissance 104.0000000 GB 2 1 Cylindree 1798.00 Puissance 82.0000000 I 1 1 Cylindree 1350.00 Puissance 79.0000000 2 3 Cylindree 1484.00 Puissance 96.3333333 J 1 2 Cylindree 1467.50 Puissance 69.0000000 2 1 Cylindree 1998.00 Puissance 115.0000000 U 1 1 Cylindree 1294.00 Puissance 68.0000000

ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ

N

Origine Finition Obs Variable Mean

ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ D B 2 Cylindree 1986.00

Puissance 99.0000000 TB 1 Cylindree 1588.00 Puissance 85.0000000 F B 2 Cylindree 1680.50 Puissance 67.0000000 M 2 Cylindree 1258.00 Puissance 63.5000000 TB 2 Cylindree 2053.00 Puissance 104.0000000 GB B 1 Cylindree 1798.00 Puissance 82.0000000 I B 2 Cylindree 1467.50 Puissance 88.5000000

ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ

Le traitement des valeurs manquantes

Les valeurs manquantes d’une variable d’analyse sont toujours exclues des calculs.

Concernant les variables de classes, les observations ayant des valeurs manquantes sont gardées dans l’analyse si l’on utilise l’instruction BY. Si l’on utilise CLASS, SAS ne prend pas en compte par défaut le groupe constitué des valeurs manquantes de la variable de classe ; l’option MISSING dans l’instruction PROC MEANS permet de considérer que dans une variable de l’instruction CLASS, la valeur manquante définit un groupe à part entière.

Autres instructions

VAR : variables (numériques) pour lesquelles on sollicite la procédure BY : la procédure s’exécute pour chaque groupe d’observation WEIGHT : variable de pondération

OUTPUT : permet de stocker les résultats dans une table

ID : la valeur maximum de la variable mentionnée, au niveau de chaque groupe défini par l’instruction CLASS, sera conservée dans la table de sortie.

Options

DESCENDING : inverse l’ordre des observations dans la table en sortie

NOPRINT : empêche PROC MEANS de produire un état dans la fenêtre OUTPUT.

IDMIN : pour retenir la valeur minimum de la variable ID au lieu de son maximum.

VARDEF : diviseur calculé pour les variances et les covariances DF : degrés de liberté (n-1)

N : nombre d’observations

WDF : somme des poids – 1 (variance corrigée – estimateur non biaisé) WEIGHT : somme des poids.

ALPHA : seuil pour les intervalles de confiance.

PROC MEANS peut également calculer d’autres statistiques, parmi lesquelles :

KURTOSIS : coefficient de KURTOSIS (compare la forme de la courbe de distribution des observations à celle de la loi normale : un coefficient positif indique une plus forte concentration des observations ; un coefficient négatif indique une courbe plus « aplatie »).

PRT : probabilité de nullité de la moyenne (test de Student)

RANGE : étendue

SKEWNESS : coefficient de symétrie (indique sur les observations sont réparties équitablement autour de la moyenne (le coefficient est alors nul) ou si elles sont plutôt concentrées vers les valeurs les plus faibles (coefficient positif) ou vers les valeurs les plus élevées (coefficient négatif).

SUM : somme

T : valeur de Student

VAR : variance

La création d’une table SAS de résultats

Tous les résultats issus de la PROC MEANS peuvent être sauvegardés dans une table.

Alors qu’à l’écran ne sont affichées que les statistiques au niveau le plus fin, toutes les statistiques au niveau agrégé sont conservées dans la table de sortie.

Syntaxe :

OUTPUT OUT=nom_de_table <statistiques_à_conserver> / <AUTONAME>

OUT= : nom de la table créée

Statistiques : statistiques à conserver.

Il existe trois formes de demandes statistiques : statistique=

calculera les statistiques décrites plus haut pour les variables précisées dans VAR= et donne les mêmes noms aux variables en sortie que les variables en entrée. Une seule statistique peut être sauvegardée par ce biais.

In document SAS base Introduction à SAS SQL SAS IML (Page 70-89)

Related documents