Analyser ses données écologiques en SAS

Dernière modification : 20/03/04

Les procédures de base :

Introduction

Les séquences PROC sont des appels de procédures prédéfinies qui réalisent une série d'actions ou d'analyses. Il ne s'agit plus de programmer comme dans l'étape DATA, mais de choisir la procédure convenable ainsi que les options nécessaires pour résoudre un problème.

On n'abordera ici qu'une petite série des procédures disponibles dans les modules BASE et STAT de SAS : ANOVA, CHART, CORR, FORMAT, FREQ, MEANS, PLOT, PRINT, REG, SORT, TABULATE, TRANSPOSE. D'autres procédures d'analyses multivariées sont abordées dans les différents exemples.

Les procédures partagent un certain nombre de structures communes en fonction de leurs objectifs :

PROC nomdelaprocédure (options : DATA = nomdudataset, ...);

Instructions spécifiques / (options);

VAR nomsdesvariablesutilisées;

CLASS nomsdevariablesdeclassification;

LABEL listedelabels;

FORMAT listedeformats;

BY nomsdesvariablesdetri;

Mis à part l'appel "PROC" à la procédure qui doit être la première instruction, l'ordre des instructions n'a pas d'importance car la procédure ne sera exécutée que lorsque SAS aura terminé sa lecture, c'est-à-dire en arrivant sur une nouvelle instruction PROC, une instruction DATA ou une instruction RUN.

Détaillons cette structure :

PROC nomdelaprocédure (options : DATA = nomdudataset, ...);

Chaque procédure est paramétrable par un certain nombre d'options qui ne doivent pas nécessairement être détaillées systématiquement car l'usage le plus fréquent est défini par des valeurs par défaut. Dans l'exemple suivant, on demande de réaliser une analyse des corrélations entre les variables numériques du fichier "donnees" en spécifiant l'usage du coefficient de corrélation de rang de KENDALL.
PROC CORR DATA=donnees KENDALL;

Si l'option "KENDALL" avait été omise, la procédure aurait réalisé l'analyse avec le coefficient de corrélation paramétrique de PEARSON.

L'une des options de base est le nom du fichier de données en format SAS sur lequel la procédure doit être exécutée. Par défaut, si on ne spécifie pas d'option DATA=..., SAS utilisera le dernier dataset utilisé.

Si on désire n'appliquer la procédure que sur les données pour lesquelles une condition est satisfaite, on poura utiliser l'instrucion WHERE;comme on le fait dans le DATA step.

PROC . . . DATA=ENFANTS; WHERE SEXE='F';

Instructions spécifiques / (options);

Chaque procédure dispose d'un certain nombre d'instructions qui lui sont spécifiques et qui seront détaillées ci-dessous.
PROC FREQ; TABLES var1*var2;
PROC PLOT; PLOT y*x=z;
PROC REG; MODEL y=x;

VAR nomsdesvariablesutilisées;

L'instruction VAR spécifie la liste des variables à utiliser dans la procédure. Lorsque la liste des variables n'est pas spécifiée par l'utilisateur, SAS utilise par défaut toutes les variables disponibles, uniquement les numériques s'il s'agit de traitement de nombres.

Lorsque les variables ont un suffixe numérique, on peut les appeler avec un tiret séparant la première et la dernière de la série :

VAR col1-col7 col9-col28;

Lorsque les listes sont longues, il est aussi possible d'utiliser deux tirets comme séparateur :

VAR abaxater--trecrivu;

Les variables sont prises dans l'ordre de leur création (faire un PROC PRINT sans instruction VAR ou un PROC CONTENTS pour obtenir l'ordre des variables).

CLASS nomsdesvariablesdeclassification;

L'instruction CLASS spécifie le nom d'une ou de plusieurs variables qui définissent des classes indispensables pour l'exécution de certaines procédures. Par exemple, pour un test de comparaison de moyennes entre des groupes d'objets, on doit préciser la variable qui décrit l'appartenance des objets à chaque groupe.
PROC TTEST;
CLASS alimen;
VAR poids;

LABEL variable =nom ... ;

L'instruction LABEL permet de donner à une variable un nom différent, qui sera utilisé dans toutes les impressions de la procédure.
PROC TTEST;
VAR pds; CLASS aliment;
LABEL pds="Poids du corps au sixième mois";

fait qu'à la place d'écrire "pds" sur le listing, SAS inscrira l'appelation "Poids du corps au sixième mois".

FORMAT variable format;

Cette instruction permet d'attribuer à une ou plusieurs variables un format particulier. Les formats sont soit, choisis parmi les formats standards fournis par SAS, soit créés par l'utilisateur avec la procédure PROC FORMAT.

Par exemple, dans le premier cas, on peut définir le nombre de décimales sur les listings ou utiliser des formats spécifiques pour les dates.

PROC PRINT; FORMAT A1 A2 A3 5.1;

Dans le second cas, on a défini un format "frmalim" pour les deux types d'aliments (codés par 0 et 1 dans la variable aliment) dont on veut tester l'effet sur le poids :

PROC FORMAT; VALUE frmalim 0="normal" 1="enrichi".

Pour obtenir un listing détaillé, on écrira :

PROC TTEST;
CLASS aliment; VAR poids;
LABEL pds="Poids du corps au sixième mois";
FORMAT aliment frmalim.;

BY variable(s);

Cette instruction provoque l'exécution de la procédure demandée pour chaque état de la variable ou chaque combinaison univoque des variables définies dans le BY. Si on veut par exemple faire une analyse de comparaison de moyennes des poids pour chacun des sexes, on écrira simplement :

PROC TTEST;
CLASS aliment; VAR poids;
BY sexe;

L'emploi du BY dans une procédure demande que les observations du tableau soient préalablement triées (utiliser PROC SORT).

WHERE expression;

Cette instruction limite le nombre d'observations utilisées en les sélectionnant avec une expression du type : variable = valeur ou variable > valeur ou ...
PROC REG DATA = donnes;
MODEL poids = taille;
WHERE taille > 100;
RUN;

Dans ce petit programme, la régression sera calculée sur les observations répondant à la contrainte d'avoir une taille plus grande que 100 cm.

 

Les procédures de modification des fichiers

PROC SORT : Tri de fichier

La procédure SORT sert à trier toutes les observations d'un fichier SAS en fonction des valeurs d'une ou de plusieurs variables.

PROC SORT
DATA = nomdudataset;
Nom du fichier de données SAS à transposer.
BY
variables; Liste des variables utilisées pour trier le fichier.

Si une variable est précédée de DESCENDING, le tri se fait dans l'ordre décroissant plutôt que croissant (défaut). L'exemple suivant trie le fichier SAS "filles" en fonction de l'âge croissant, et pour chaque valeur d'âge identique, trie les observations dans l'ordre décroissant des valeurs de poids.

PROC SORT DATA=filles;
BY age DESCENDING poids;
RUN;

A priori, l'ordre de tri sur PC Windows ou UNIX est celui qui correspond à la table suivante (ASCII) :

blanc ! " # $ % & ' ( ) * + , - . /0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ 
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z[ \] ˆ_ 
a b c d e f g h i j k l m n o p q r s t u v w x y z { } ~ 

Les chiffres sont classés avant les lettres majuscules puis les lettres minuscules. Le caractère " " est le premier caractère.

PROC TRANSPOSE : transpose un fichier SAS

La procédure TRANSPOSE renverse les lignes et les colonnes d'un fichier de données SAS: les observations deviennent des variables et les variables deviennent des observations.

PROC TRANSPOSE
DATA = nomdudataset
Nom du fichier de données SAS à transposer.
 
OUT = nomdudataset
Nom du fichier de données SAS avec les données transposées.
 
PREFIX=nom
Préfixe qui sera utilisé pour nommer les nouvelles variables (anciennes observations) (voir l'instruction ID, ci-dessous). Si on n'utilise pas cette option ni l'instruction ID, le préfixe utilisé sera "COL" pour nommer les nouvelles variables (COL1, COL2, ...).
 
NAME=nom;
Nom de la variable qui contiendra les noms des anciennes variables qui seront devenues des observations.
VAR 
variables;
Noms des variables à transposer.
ID 
variable;
Désigne l'éventuelle variable alphabétique du fichier à transposer qui permettra de nommer les futures variables dans le nouveau fichier. Si aucune variable n'existe, il suffit d'utiliser l'option "PREFIX" citée ci-dessous.

Si on souhaite transposer le fichier "morpho" suivant avec 3 variables :

code
poids
taille
A123
10
75
A234
15
80
A345
10
70
A456
13
82

On écrira :

PROC TRANSPOSE DATA=morpho OUT=specimen NAME=variable;
VAR poids taille;
ID code;
RUN;

pour obtenir :

variable
A123
A234
A345
A456
poids
10
15
10
13
taille
75
80
70
82

Si on n'avait pas utilisé l'instruction ID, les nouvelles variables seraient nommées COL1 à COL4.

La combinaison de PROC TRANSPOSE et du BY permet de transformer des fichiers de vecteurs en matrices de données (voir l'exemple 2).

Les procédures de présentation de données

PROC FORMAT : Création de formats personnalisés

Dans les différents listings produits par SAS, on peut définir des formats de présentation de données qui sont personnalisés au même titre que ceux définis par SAS par exemple pour les dates, pour définir le nombre de décimales, ... (voir la section consacré aux formats prédéfinis ci-dessus). Ces formats de présentation donnent un sens beaucoup plus clair à des informations qui sont généralement codées de manière résumée sous la forme de chiffres ou de codes.

PROC FORMAT
;
Appel de la procédure
VALUE
nom

valeur1 = label1
valeur2 = label2
...;

nom définit le nom du format. On spécifiera un $ devant le nom si il est destiné à des variables alphabétiques.

"valeur" identifie les valeurs qui seront remplacées par les "label" lors des impressions des contenus des procédures. Il y a différentes manières de coder les valeurs des variables (voir ci-dessous).

On définira par exemple :

PROC FORMAT;
VALUE cetace                  1 = "baleine bleue  "
                              2 = "baleine à bosse"
                          OTHER = "mauvais code   ";
VALUE age                LOW-12 = "enfant    "
                          13-18 = "adolescent"
                        19-HIGH = "adulte    ";
VALUE $cat                 "a1" = "enfant    "
                           "a2" = "adolescent"
                           "a3" = "adulte    ";

Ces 3 formats définis (rappel, un format se différencie d'une variable par sa terminaison avec un ".") pourront être appelés dans n'importe quelle procédure qui suit cette définition pour modifier la représentation des contenus de variables :

FORMAT taxon cetace.;
FORMAT age age.;
FORMAT groupe $cat.;

remplaceront par exemple les valeurs 1 et 2 de la variable taxon par les expressions "baleine bleue" et "baleine à bosse". Si un autre chiffre est présent, il sera inscrit "mauvais code".

PROC PRINT : impression du contenu d'un fichier SAS

La procédure PRINT sert à imprimer le contenu d'un fichier de données SAS.

PROC PRINT
DATA = nomdudataset
Nom du fichier de données SAS à imprimer.
 
N
Impression du nombre total d'observations.
 
LABEL
Provoque l'utilisation des labels à la place des noms des variables s'ils sont définis. Ces labels peuvent contenir un caractère spécial qui permettra à SAS de les écrire sur plusieurs lignes en les découpant aux endroits indiqués par ce caractère spécial (un blanc ou *).
 
SPLIT = "*"
Identifie le caractère qui sert à découper les labels pour les écrire sur plusieurs lignes (ici un *).
VAR 
variables; Noms des variables à imprimer (par défaut = toutes).
ID 
variable; Identifie une variable qui est utilisée pour remplacer la colonne "OBS" qui numérote par défaut les observations.

Le programme suivant :

PROC PRINT DATA=morpho LABEL SPLIT="*";
       LABEL poids = "Poids*des*bestioles" taille = "Taille*des*bestioles";
       ID code;
       VAR poids taille;
donne le listing suivant :


code Poids
des
bestioles
Taille
des
bestioles
A123 10 75
A234 15 80
A345 10 70
A456 13 82
N = 4

PROC PLOT : dessine un graphique à deux dimensions

La procédure PLOT permet de réaliser des graphiques à deux dimensions en format "text". Comparés aux graphiques produits par des logiciels actuels, ces dessins n'ont rien de produits finis mais ils permettent en cours d'analyse d'avoir très rapidement un aperçu de la structure des données. Des dessins de bien meilleure qualité (en format jpg ou eps) sont disponibles en SAS avec la procédure GPLOT qui est très similaire à la procédure PLOT ou à l'interface graphique de SAS ENTERPRISE.

PROC PLOT
DATA = nomdudataset
Nom du fichier de données SAS utilisé.
PLOT
y * x ou 
La première variable (y) est l'ordonnée, la seconde (x) l'abscisse. Dans ce cas, chaque point est représenté par une lettre "A" si il y a un seul point au même endroit, une lettre "B" si il y en a deux ...
 
y * x = "*" ou
Dessine le symbole "*" pour représenter chaque point.
 
y * x = var ou
Prend le premier caractère de la variable "var" pour identifier chaque point.
 
y * x $ var 
Ecrit tout le contenu de la variable "var" près du symbole représentant le point.
 
/
Iindique que des options de l'instruction PLOT vont suivre.
 
BOX
Cadre autour du graphique.
 
VPOS=50 HPOS=80
Défini un graphique qui utilise 50 lignes en hauteur et 80 colonnes en largeur.
 
VAXIS = 10 TO 100 BY 5
Provoque l'apparition de marques sur l'axe vertical placée en 10, 15, 20, ...
 
HAXIS = 10 100 1000 1000
Engendre une échelle logarithmique de base 10 en abscisse.
 
OVERLAY
Permet de demander de dessiner plusieurs variables sur le même dessin (PLOT y*x="*" z*x="+" / OVERLAY).
 
;
Fin de l'instruction PLOT.

Le programme suivant :

PROC PLOT DATA=morpho;
PLOT poids*taille $code;

donne le résultat suivant :


                       Plot of poids*taille$code.  Symbol points to label.                       
                                                                                                 
                    ---+----------+----------+----------+----------+----------+---               
              poids |                                                            |               
                    |                                                            |               
                    |                                                            |               
                 16 +                                                            +               
                    |                                                            |               
                    |                                                            |               
                    |                                              > A234        |               
                    |                                                            |               
                    |                                                            |               
                 14 +                                                            +               
                    |                                                            |               
                    |                                                            |               
                    |                                                  A456 <    |               
                    |                                                            |               
                    |                                                            |               
                 12 +                                                            +               
                    |                                                            |               
                    |                                                            |               
                    |                                                            |               
                    |                                                            |               
                    |                                                            |               
                 10 +  > A345                > A123                              +               
                    |                                                            |               
                    |                                                            |               
                    |                                                            |               
                    ---+----------+----------+----------+----------+----------+---               
                     70.0       72.5       75.0       77.5       80.0       82.5                 
                                                                                                 
                                                taille                                           

PROC CHART : dessine des histogrammes

La procédure CHART permet d'obtenir différents types d'histogrammes. Encore une fois, comparés aux graphiques produits par des logiciels actuels, ces dessins n'ont rien de produits finis mais ils permettent en cours d'analyse d'avoir très rapidement un aperçu de la structure des données. Des dessins de bien meilleure qualité (en format jpg ou eps) sont disponibles en SAS avec la procédure GCHART qui est très similaire à la procédure CHART ou à l'interface graphique de SAS ENTERPRISE.

PROC CHART
DATA = nomdudataset
Nom du fichier de données SAS utilisé.
VBAR
HBAR
BLOCK
PIE
STAR
variable(s) /

VBAR pour des histogrammes verticaux
HBAR pour des histogrammes horizontaux
BLOCK pour des histogrammes à deux dimensions
PIE pour des camemberts
STAR pour des étoiles

 
DISCRETE

Indique que la variable doit être considérée comme discrète, ne devant pas être rassemblée en classes.

 
TYPE = freq ou
Spécifie que le graphique indiquera la fréquence des valeurs de la variable dans des classes.
 
TYPE = pct ou
Spécifie que le graphique indiquera le pourcentage des valeurs de la variable dans des classes.
 
TYPE = CFREQ ou
Spécifie que le graphique indiquera la fréquence cumulative des valeurs de la variable dans des classes.
 
TYPE = CPCT ou
Spécifie que le graphique indiquera le pourcentage cumulatif des valeurs de la variable dans des classes.
 
TYPE = SUM ou
Spécifie que le graphique indiquera la somme de la variable définie dans l'option SUMVAR.
 
TYPE = MEAN
Spécifie que le graphique indiquera la moyenne de la variable définie dans l'option SUMVAR.
 
SUMVAR=variable
Définit une variable pour laquelle la somme ou la moyenne sera calculée.
 
MIDPOINTS = subdivision

Permet de définir soit même les subdivisions en indiquant par exemple :

midpoints = 10 20 30 40
midpoints = 10 100 1000 1000
midpoints = 0 to 500 by 5
 
FREQ=variable
Spéficie la variable qui représente la hauteur des histogrammes à représenter si les lignes sont univoques.
 
AXIS=valeur
Indique une valeur maximale pour l'axe.
 
GROUP=variable
Produit des histogrammes côte à côte pour chaque valeur de la variable.
 
SUBGROUP=variable
Chaque barre de l'histogramme montre successivement la contribution de chaque valeur prise par la variable.
 
LEVELS=n
Fixe le nombre de subdivisions de l'histogramme.

Si on dispose d'un jeu de données concernant la répartition de différentes espèces dans deux stations :

Data carabid;
input espece$ Nind station;
   cards;
   Aba_ater 76 2
   Pte_oblo 51 2
   Aba_para 10 1
   Car_prob 34 2
   Car_prob 25 1
;

Le programme suivant :

PROC CHART DATA=carabid;
     VBAR espece / FREQ=nind subgroup=station;
     run;

donne le résultat suivant :


                    Frequency                                                                     
                                                                                                 
                      |       22222                                                              
                      |       22222                                                              
                      |       22222                                                              
                   60 +       22222                   22222                                      
                      |       22222                   22222                                      
                      |       22222                   22222       22222                          
                      |       22222                   22222       22222                          
                   40 +       22222                   22222       22222                          
                      |       22222                   22222       22222                          
                      |       22222                   22222       22222                          
                      |       22222                   11111       22222                          
                   20 +       22222                   11111       22222                          
                      |       22222                   11111       22222                          
                      |       22222       11111       11111       22222                          
                      |       22222       11111       11111       22222                          
                      --------------------------------------------------------                   
                            Aba_ater    Aba_para    Car_prob    Pte_oblo                         
                                                                                                 
                                                taxon                                            

Le programme suivant :

PROC CHART DATA=carabid;
PIE espece / FREQ=nind;
run;

donne le résultat suivant :


                                   Frequency of Nind by espece                                   
                                                                                                 
                                                                                                 
                                                                                                 
                                            *********  Aba_ater                                  
                                        ****         ****                                        
                                      **                 **                                      
                                     *                     *                                     
                                   ** ..          76        **                                   
                                  **    .       38.78%       **                                  
                                  *       ..                  *                                  
                                 *          .                  *                                 
                                 *           .                 *                                 
                                 *              +  . . ..10 .. *                                 
                                 *     59          . .. 5.10%  *                                 
                        Car_prob *   30.10%    .        .. .   * Other                           
                                  *           .              .*                                  
                                  **         .     51        **                                  
                                   **        .   26.02%     **                                   
                                     *      .              *                                     
                                      **   .             **                                      
                                        ****         ****                                        
                                            *********   Pte_oblo                                 
                                                                                                 
                                                                                                 

Le programme suivant :

PROC CHART DATA=carabid;
BLOCK espece / freq=nind group=station ;
run;

donne le résultat suivant :


                         Frequency of Nind by espece grouped by station                          

___

/_ /|
_
|**| |

|**| | ___

|**| | /_ /|
_
|**| | |**| |

|**| | ___ |**| |

-|**| |-----------------------/_ /|--------|**| |-------
_
/ |**| | / / |**| | / |**| | /

/ |**| | / / |**| | / |**| | /

2 / |**| | / / |**| | / |**| | /

/ |**|/ / / |**|/ / |**|/ /
__ __ __
/ / / / /

/ 76 / / 34 / 51 /

station /-------------/-------------/--___ -------/-------------/

/ / / /_ /| / /
_
/ / ___ / |**| | / /

1 / / /_ /| / |**| | / /
_
/ / |**|/ / |**|/ / /
__ __
/ / / / /

/ / 10 / 25 / /

/-------------/-------------/-------------/-------------/


Aba_ater Aba_para Car_prob Pte_oblo

espece

PROC TABULATE : Création de tableau de données

(à compléter)

Les procédures d'analyse de données

PROC MEANS : Calculs de statistiques de base

La procédure MEANS (comme la procédure SUMMARY, voir ci-dessous) fournit une série de statistiques simples (minimum, maximum, nombre d'observations, moyenne, écart-type, variance, coefficient de variation ...). Combinée avec un "BY", cette procédure est très utile pour calculer des statistiques partielles pour des lots d'observations identifiés par différents états de variables de classification.

PROC MEANS
DATA = nomdudataset
Nom du fichier de données SAS à analyser.
 
NOPRINT
Supprime l'impression sur le listing (n'est utile que lorsque qu'on souhaite seulement obtenir des fichiers de données SAS avec les statistiques pour effectuer d'autres traitements. On pourrait alors utiliser de manière identique la procédure SUMMARY qui a cette mission spécifique et qui ne produit aucun output).
 
N NMISS MIN MAX SUM 
MEAN STD STDERR VAR
CV T PRT
Demande de calculer spécifiquement une statistique plutôt que uniquement N, MIN, MAX, MEAN et STD par défaut. Dans l'ordre : le nombre d'observations (N), le nombre d'observations manquantes (NMISS), le minimum (MIN), le maximum (MAX), la somme (SUM), la moyenne (MEAN), l'écart-type (STD), l'écart à la moyenne (STDERR), la variance (VAR), le coefficient de variation (CV), la valeur d'un test de t de Student pour vérifier si la moyenne est égale à 0 (T) et la probabilité associée à ce test de Student (PRT).
 
MAXDEC=n
Défini le nombre de décimales sur le listing.
 
;
Fin des options du PROC MEANS.
CLASS ou BY
variables;
Défini les variables qui créent des sous-ensembles d'observations pour lesquels les statistiques demandées doivent être calculées. Le BY impose que le fichier de données soit au préalable trié alors que l'instruction CLASS ne le demande pas.
VAR 
variables;
Noms des variables pour lesquelles il faut calculer les statistiques demandées.
FREQ
variable;
Défini la variable qui multiplie le nombre de fois que chaque observation compte dans le calcul des statistiques (voir l'exemple ci-dessous).
WEIGHT
variable;
Défini la variable qui pondère chaque observation du fichier de données (voir l'exemple ci-dessous).
OUTPUT
OUT=Nomdudatasetresu 
N=... MEAN=... SUM=...
Défini le nom du fichier SAS avec les statistiques résumées pour l'ensemble du fichier (une ligne) ou des sous-ensembles défini par les instructions BY ou CLASS.
ID
variables;
Identifie des variables qui seront associées dans l'output à celles déjà définies.
     

Le programme suivant donne différentes combinaisons des instructions FREQ et WEIGHT :

DATA carabid;
     INPUT espece$ nind station poids;
     CARDS;
     Aba_ater 50 2 1
     Pte_oblo 30 2 1
     Aba_para 10 1 2
     Car_prob 20 2 1
     Car_prob 40 1 2
     ;
TITLE "PROC MEANS simple";
     PROC MEANS DATA=carabid N MEAN SUM STD VAR CV;
     CLASS station;VAR nind;
     RUN;
TITLE "PROC MEANS avec un FREQ";
     PROC MEANS DATA=carabid N MEAN SUM STD VAR CV;
     CLASS station;VAR nind;
     FREQ poids;
     RUN;

TITLE "PROC MEANS après avoir multiplié les lignes (=FREQ)";
     DATA carafreq;SET carabid;
     DO j= 1 TO poids;
        OUTPUT;
     END;
     RUN;
     PROC MEANS DATA=carafreq N MEAN SUM STD VAR CV;
     CLASS station;VAR nind;
     RUN;
TITLE "PROC MEANS avec un WEIGHT";
     PROC MEANS DATA=carabid N MEAN SUM STD VAR CV;
     CLASS station;VAR nind;
     WEIGHT poids;
     RUN;
TITLE "PROC MEANS après avoir pondéré les lignes (=WEIGHT)";
     DATA caraweig;SET carabid;
     nind2=nind*poids;
     RUN;
     PROC MEANS DATA=caraweig N MEAN SUM STD VAR CV;
     CLASS station;VAR nind2;
     RUN;

donne les résultats suivants :

PROC MEANS simple
Analysis Variable : nind
station N Obs N Mean Sum Std Dev Variance Coeff of Variation
1 2 2
25.00
50.00
21.21
450.00
84.85
2 3 3
33.33
100.00
15.28
233.33
45.83
PROC MEANS avec un FREQ
Analysis Variable : nind
station N Obs N Mean Sum Std Dev Variance Coeff of Variation
1 4 4 25.00 100.00 17.32 300.00 69.28
2 3 3 33.33 100.00 15.28 233.33 45.83
PROC MEANS après avoir multiplié les lignes (=FREQ)
Analysis Variable : nind
station N Obs N Mean Sum Std Dev Variance Coeff of Variation
1 4 4 25.00 100.00 17.32 300.00 69.28
2 3 3 33.33 100.00 15.28 233.33 45.83
PROC MEANS avec un WEIGHT
Analysis Variable : nind
station N Obs N Mean Sum Std Dev Variance Coeff of Variation
1 2 2 25.00 100.00 30.00 900.00 120.00
2 3 3 33.33 100.00 15.28 233.33 45.83
PROC MEANS après avoir pondéré les lignes (=WEIGHT)
Analysis Variable : nind2
station N Obs N Mean Sum Std Dev Variance Coeff of Variation
1 2 2 50.00 100.00 42.43 1800.00 84.85
2 3 3 33.33 100.00 15.28 233.33 45.83

Pour l'instruction FREQ, la comparaison entre l'utilisation directe du FREQ ou la multiplication de lignes donne bien les mêmes résultats. Par contre, pour l'instruction WEIGHT donne des résultats différents pour le calcul de la moyenne et de la variance où le nombre utilisé pour diviser la moyenne et le calcul des écartypes n'est pas le même! Il existe une option VARDEF pour définir le dénominateur des calculs de variance mais il n'a pas d'influence sur la moyenne. Utilisez donc le WEIGHT en connaissance de cause !!!

Exemple de production de fichier de statistiques résumés et comparaison de l'utilisation du CLASS et du BY : On disipose d'un fichier avec les abondances des espèces dans deux stations pour trois relevés et on souhaite récupérer un fichier SAS avec la moyenne et la somme des abondances par station pour chacun des relevés.

DATA carabid;
INPUT espece$ nind1-nind3 station;
CARDS;
Aba_ater 50 22 31 1
Pte_oblo 30 32 31 1
Aba_para 10 41 32 2
Car_prob 20 12 31 2
Car_prob 40 31 32 1
;
TITLE "PROC MEANS OUTPUT avec CLASS"; PROC MEANS DATA=carabid MEAN SUM MIN MAX NOPRINT; CLASS station;VAR nind1-nind3; OUTPUT OUT=somme MEAN=mean1-mean3 SUM=sum1-sum3; RUN; PROC PRINT DATA=somme;RUN; TITLE "PROC MEANS OUTPUT avec BY"; PROC SORT DATA=carabid; BY station; PROC MEANS DATA=carabid MEAN SUM MIN MAX NOPRINT; BY station;VAR nind1-nind3; OUTPUT OUT=somme MEAN=mean1-mean3 SUM=sum1-sum3; RUN; PROC PRINT DATA=somme;RUN;

donne le listing suivant :

PROC MEANS OUTPUT avec CLASS
Obs station _TYPE_ _FREQ_ mean1 mean2 mean3 sum1 sum2 sum3
1 . 0 5 30 27.6000 31.4000 150 138 157
2 1 1 3 40 28.3333 31.3333 120 85 94
3 2 1 2 15 26.5000 31.5000 30 53 63
PROC MEANS OUTPUT avec BY
Obs station _TYPE_ _FREQ_ mean1 mean2 mean3 sum1 sum2 sum3
1 1 0 3 40 28.3333 31.3333 120 85 94
2 2 0 2 15 26.5000 31.5000 30 53 63

L'utilisation du CLASS génére une ligne de plus qui donne les statistiques pour l'ensemble du fichier et pour chacune des stations. Le BY ne le donne que pour les deux stations. Ces données peuvent ensuite être associée au fichier intial (MERGE) pour calculer des pourcentages, des indices de diversité, ...

PROC FREQ : Calculs de fréquences, tableaux de contingence et test de Chicarré

La procédure FREQ calcule des fréquences, construit des tableaux de contingence à plusieurs dimensions et permet de calculer des tests de Chicarré.

PROC FREQ
DATA = nomdudataset
Nom du fichier de données SAS à analyser.
 
MISSING ;
Indique que les valeurs manquantes doivent être traitées comme une classe particulière.
TABLES
entrées /
défini les combinaisons de variables qui formeront les ou les tableaux. TABLES a; calculera la fréquence de chaque valeur de la variable "a". TABLES a*b; calculera la fréquence de chaque combinaison des valeurs des variables "a" et "b". On utilise "*" pour ajouter une dimension et des "()" pour grouper les variables d'un même niveau. TABLES a * (b c); est équivalent à TABLES a*b a*c;
 
NOPRINT NOFREQ
NOPERCENT NOROW NOCOL
NOCUM
Défini ce qui ne doit pas apparaître sur le listing, soit dans l'ordre : aucune d'impression, pas d'impression des fréquences, pas d'impression du pourcentage de chaque cellule par rapport au grand total; pas d'impression du pourcentage de chaque cellule par rapport au total marginal de la ligne; pas d'impression du pourcentage de chaque cellule par rapport au total marginal de la colonne; pas de fréquence ni pourcentage cumulé.
 
EXPECTED DEVIATION
CELLCHI2 CHISQ
Calcul de la fréquence attendue (EXPECTED), de la différence entre la fréquence observée et la fréquence attendue (DEVIATION), du chicarré partiel de la cellule (CELLCHI2) et calcul des tests de Chicarré (CHISQ).
 
OUT=nomdudataset
Nom du fichier SAS avec les données de fréquence mais sous la forme de vecteurs de données (pas de tableau !, voir ci-dessous ).
 
SPARSE
Génère dans le fichier SAS défini ci-dessus des lignes avec une fréquence nulle pour les combinaisons des variables qui n'existeraient pas dans le fichier original.
 
;
Fin des options du TABLES.
WEIGHT
variable;
Défini la variable qui pondère chaque observation du fichier de données sinon c'est simplement le nombre de fois que la combinaison des variables du TABLES qui est utilisé.

Le programme suivant veut mesurer l'interaction entre des variables écologiques (humidité et l'acidité) sur la fréquence des spécimens d'une espèce de carabides. Des échantillons sont réalisés dans différentes stations et donne le tableau suivant :

DATA carabid;
     INPUT drainage$ ph$ nind;
     CARDS;
     Humide Acide 10
     Humide Acide 12
     Humide Acide 8
     Humide Acide 4
     Humide Basique 2
     Humide Basique 1
     Humide Basique 1
     Humide Basique 3
     Humide Basique 1
     Sec Acide 5
     Sec Acide 6
     Sec Acide 4
     Sec Acide 8
     Sec Basique 21
     Sec Basique 15
     Sec Basique 12
     Sec Basique 11
     Sec Basique 12
;
PROC FREQ DATA=carabid;
     TABLES drainage*ph / NOROW NOCOL NOPERCENT EXPECTED CELLCHI2 CHISQ OUT=freq;
     WEIGHT nind;
RUN;
PROC PRINT DATA=freq;RUN;

Le résultat obtenu est le suivant :

The FREQ Procedure
Frequency
Expected
Cell Chi-Square
Table of drainage by ph
drainage ph Total
Acide Basique
Humide 34
17.603
15.274
8
24.397
11.02
42
 
 
Sec 23
39.397
6.8245
71
54.603
4.924
94
 
 
Total 57 79 136

Ce tableau résume dans chaque cellule la fréquence totale des spécimens dans chaque classe (34 en station acide et humide), la fréquence attendue (17.603 pour la même cellule) et le Chicarré partiel (15.274 pour la même cellule). La fréquence attendue résulte du produit des totaux marginaux de la ligne et de la colonne divisé par le total général, soit 42*57/136. Le Chicarré partiel résulte de l'application de la formule : (Fr. observed - Freq. expected) * (Fr. observed - Freq. expected) / Freq. expected soit (34 - 17.603) * (34 - 17.603) / 17.603 = 15.274. Le chicarré global est simplement la somme des chicarrés partiels. Ce chicarré correspond au premier nombre donné dans le tableau suivant (Chi-square). Le nombre suivant (Likelihood Ratio Chi-Square) est celui recommandé par Sokal et Rholf (1995) sous le nom de test de G ( formule = 2 * somme pour toutes les cellules du produit Fr. observed * ln [Fr. observed/Freq. expected]). Les autres nombres correspondent à d'autres indices utilisables sur de tels tableaux de fréquence.

Statistics for Table of drainage by ph
Statistic DF Value Prob
Chi-Square 1 38.0425 <.0001
Likelihood Ratio Chi-Square 1 39.4547 <.0001
Continuity Adj. Chi-Square 1 35.7578 <.0001
Mantel-Haenszel Chi-Square 1 37.7628 <.0001
Phi Coefficient   0.5289  
Contingency Coefficient   0.4675  
Cramer's V   0.5289  
Fisher's Exact Test
Cell (1,1) Frequency (F) 34
Left-sided Pr <= F 1.0000
Right-sided Pr >= F 6.232E-10
Table Probability (P) 5.784E-10
Two-sided Pr <= P 9.938E-10

Le tableau qui suit donne le contenu du fichier SAS généré (appelé "freq" dans le programme ci-dessus) par la procédure FREQ. Le tableau de données est présenté sous la forme de vecteurs identifiant les lignes, les colonnes et le contenu des cellules, exprimés en fréquences brutes et en pourcentages.

Impression du fichier "OUT"
Obs drainage ph COUNT PERCENT
1 Humide Acide 34 25.0000
2 Humide Basique 8 5.8824
3 Sec Acide 23 16.9118
4 Sec Basique 71 52.2059

PROC CORR : Calcul de coefficients de corrélation

La procédure CORR permet de calculer le coefficient de corrélation paramétrique de PEARSON et les coefficients de corrélation de rang de KENDALL et SPEARMAN.

PROC CORR
DATA = nomdudataset
Nom du fichier de données SAS à analyser.
 
PEARSON
Spécifie de calculer le coefficient de Pearson (= défaut).
 
SPEARMAN
Spécifie de calculer le coefficient de Spearman.
 
KENDALL
Spécifie de calculer le coefficient de Kendall.
 
OUTP = nomdudataset
Noms du fichier SAS pour récupérer la matrice de corrélation de Pearson (OUTS et OUTK pour les deux autres indices).
 
NOPRINT
Aucune impression.
 
NOSIMPLE
Supprime les statistiques descriptives.
 
NOPROB
Supprime les calculs de probabilités.
 
;
Fin des options du PROC CORR.
VAR 
variables; Noms des variables à analyser.
PARTIAL
variables; Nom de la ou des variables utilisées pour calculer des corrélations partielles

Dans le programme suivant on veut calculer la corrélation entre deux variables environnementales et des abondances d'une espèce d'insectes. On souhaite en particulier vérifier l'importance du drainage dans la relation connue entre le pH et le nombre d'individus de cette espèce. On calculera donc d'abord une corrélation globale, puis une corrélation par classe de drainage, puis enfin la corrélation partielle entre le pH et le nombre d'individus en contrôlant l'effet éventuel du drainage.

DATA carabid;
INPUT drainage ph nind;
CARDS;
1 5 35
1 12 10
1 13 8
1 11 9
2 5 45
2 4 34
2 11 20
2 12 21
2 13 23
;
Options linesize=90;
TITLE "PROC CORR";
PROC CORR DATA=carabid PEARSON OUTP=corr ;
     VAR Ph Nind drainage;
     RUN;
     PROC PRINT DATA=corr;RUN;
TITLE "PROC CORR avec BY";
PROC CORR DATA=carabid PEARSON NOSIMPLE;
     VAR Ph Nind;
     BY drainage;
     RUN;
TITLE "PROC CORR partiel";
PROC CORR DATA=carabid PEARSON NOSIMPLE;
     VAR Ph Nind;
     PARTIAL drainage;
     RUN;

Le résultat est le suivant :

PROC CORR
3 Variables: ph nind drainage
Simple Statistics
Variable N Mean Std Dev Sum Minimum Maximum
ph 9 9.55556 3.74537 86.00000 4.00000 13.00000
nind 9 22.77778 12.99786 205.00000 8.00000 45.00000
drainage 9 1.55556 0.52705 14.00000 1.00000 2.00000
Pearson Correlation Coefficients, N = 9
Prob > |r| under H0: Rho=0
  ph nind drainage
ph 1.00000
 
-0.84449
0.0042
-0.17590
0.6508
nind -0.84449
0.0042
1.00000
 
0.53119
0.1411
drainage -0.17590
0.6508
0.53119
0.1411
1.00000
 

On observe une corrélation forte entre le nombre d'individus et le pH (r = -0.84, p = 0.0042) mais non significative avec le drainage même si elle atteint 0.53. Le tableau suivant montre le contenu du fichier de données obtenu avec l'option OUTP. La matrice de corrélation est identifiée par la valeur "CORR" dans la colonne "_TYPE_".

Obs _TYPE_ _NAME_ ph nind drainage
1 MEAN   9.55556 22.7778 1.55556
2 STD   3.74537 12.9979 0.52705
3 N   9.00000 9.0000 9.00000
4 CORR ph 1.00000 -0.8445 -0.17590
5 CORR nind -0.84449 1.0000 0.53119
6 CORR drainage -0.17590 0.5312 1.00000
PROC CORR avec BY
2 Variables: ph nind
Pearson Correlation Coefficients, N = 4
Prob > |r| under H0: Rho=0
  ph nind
ph 1.00000
 
-0.97906
0.0209
nind -0.97906
0.0209
1.00000
 
2 Variables: ph nind
Pearson Correlation Coefficients, N = 5
Prob > |r| under H0: Rho=0
  ph nind
ph 1.00000
 
-0.86266
0.0598
nind -0.86266
0.0598
1.00000
 

La corrélation entre le nombre d'individus et le pH est plus forte pour les valeurs de drainage = 1 que les valeurs égale à 2.

PROC CORR partiel
1 Partial Variables: drainage
2 Variables: ph nind
Pearson Partial Correlation Coefficients, N = 9
Prob > |r| under H0: Partial Rho=0
 
ph
nind
ph 1.00000
 
-0.90049
0.0023
nind -0.90049
0.0023
1.00000
 

La corrélation partielle entre le nombre d'individus et le pH est meilleure lorsqu'on contrôle l'effet du drainage.

Note : Ce type de calcul de corrélation partielle peut être réalisé avec des matrices de similarité (comparaison de deux matrices en éliminant l'effet d'une troisième). Il est donc possible de réaliser des tests de Mantel avec la procédure CORR. De même, on peut générer une matrice de corrélation entre des variables en contrôlant l'effet d'autres variables, matrice de corrélation qui peut être soumise ensuite à une analyse en composantes principales.

PROC REG : Calcul de régressions linaire simple, polynomiale ou multiple

La procédure REG permet de calculer différentes modèles de régression par la méthode des moindres carrés de manière simple et rapide. C'est toutefois une procédure qui peut rapidement se compliquer et nous n'en aborderons ici que les options élémentaires. Différentes procédures permettent de calculer différents types de régression : PROC NLIN (régression non linéaire), PROC LOGISTIC (régression logistique), PROC RSREGG (quadratic response-surface model), PROC GLM (general linear model), PROC CATMOD (régression pour des variables catégorielles), ...

Le but d'une régression est de trouver la combinaison de variables indépendantes (=régresseurs) qui explique le mieux une variable dépendante. Cette évaluation se base sur le R2 ou coefficient de détermination qui mesure la part de variance de la variable dépendante qui est expliquée par les variables indépendantes.

PROC REG
DATA = nomdudataset
Nom du fichier de données SAS à analyser.
 
SIMPLE
Requête de statistiques descriptives simples
 
 
 
 
;
Fin des options du PROC REG.
MODEL
dépendant = régresseur(s)/

Défini le modèle à utiliser. Le modèle le plus simple est celui de l'équation linéaire Y = aX + b. Dans ce cas, on écrira MODEL y = x.
Pour une équation linéaire multiple comme Y = aX + bZ + c, on écrira MODEL y = x z. Pour une régression non-linéaire comme une régression polynomiale du type de Y = aX + bX2 + c, on fera de même mais aura d'abord calculé dans son fichier de données une nouvelle variable z=x*x.

 
SELECTION=
A priori, on teste le modèle proposé (par défaut). Mais on peut aussi demander de rechercher le meilleur modèle possible quand on a de nombreux régresseurs (variables indépendantes) possibles. On peut par exemple rechercher d'abord la variable qui explique le plus la variance de la variable dépendante, puis rechercher la suivante compte tenu de ce qui a été expliqué par la première, ... On utilisera alors l'option SELECTION=FORWARD. On peut faire l'inverse, mettre toutes les variables dans le modèle et éliminer celles qui n'expliquent rien de plus que les autres. On utilisera alors l'option SELECTION=BACKWARD. On peut aussi mettre en oeuvre une procédure itérative (SELECTION=STEPWISE) qui commence comme une FORWARD, mais se demande à chaque étape si toutes les variables entrées dans le modèle sont bien pertinentes. Il existe d'autres méthodes de sélection comme celle maximisant le R2, ...
 
ADJRSQ
Demande de calculer le R2 ajusté qui est un R2 qui essaye de tenir compte du nombre de variables dans un modèle. Effectivement, plus il y a de variables, plus l'explication est meilleure. Si on dispose de 10 observations, il suffit de 9 variables totalement aléatoires pour avoir un modèle de régression parfait ! Ce R2 ajusté n'a toutefois qu'une valeur indicative (cfr SOKAL et ROHLF, 1995).
 
INFLUENCE
Demande d'évaluer le rôle des différentes observations dans le calcul de la régression car certains points peuvent expliquer à eux seuls une régression.
 
;
Fin des options du l'instruction MODEL.
OUTPUT
OUT = nomdudataset
Nom du fichier de données SAS avec les résultats de la régression.
 
P= R= LCL= UCL=
Pour obtenir dans ce fichier les valeurs prédites (P=), les résidus de la régressions (R=), la valeur inférieure de l'intervalle de confiance à la moyenne prédite (LCL) et la valeur supérieure de l'intervalle de confiance à la moyenne prédite (UCL).
 
;
Fin des options du l'instruction OUTPUT.
PLOT
Yvariables * Xvariable = 
symbol / options
Dessine directement un graphique à deux dimensions avec différents symboles. On écrira par exemple : PLOT Y*X="O" P.*X="P" CL.*ph="L" UCL.*ph="U" / OVERLAY; pour obtenir un graphique avec les valeurs observées, les valeurs prédites et les intervalles de confiance.

L'exemple suivant cherche à démontrer le rôle du pH dans la densité d'une espèce :

DATA carabid;
     INPUT ph nind;
     CARDS;
     5 35
     10 10
     13 8
     11 9
     6 30
     5 45
     4 34
     4.5 38
     7 20
     8 26
     9 26
     13 23
     ;
TITLE "PROC REG";
PROC REG DATA=carabid SIMPLE LINEPRINTER;
     MODEL nind=ph;
     PLOT nind*ph="O" P.*ph="P" LCL.*ph="L" UCL.*ph="U" / OVERLAY;
     RUN;


donnera le résultat suivant :

PROC REG
Descriptive Statistics
Variable Sum Mean Uncorrected SS Variance Standard
Deviation
Intercept 12.00000 1.00000 12.00000 0 0
ph 95.50000 7.95833 875.25000 10.47538 3.23657
nind 304.00000 25.33333 9276.00000 143.15152 11.96459
The REG Procedure
Model: MODEL1
Dependent Variable: nind
Analysis of Variance
Source DF Sum of
Squares
Mean
Square
F Value Pr > F
Model 1 1052.99825 1052.99825 20.19 0.0012
Error 10 521.66841 52.16684    
Corrected Total 11 1574.66667      
Root MSE 7.22266 R-Square 0.6687
Dependent Mean 25.33333 Adj R-Sq 0.6356
Coeff Var 28.51051    
Parameter Estimates
Variable DF Parameter
Estimate
Standard
Error
t Value Pr > |t|
Intercept 1 49.39107 5.74634 8.60 <.0001
ph 1 -3.02296 0.67285 -4.49 0.0012

Le premier tableau donne des statistisques descriptives de base. Le second donne les résultats de l'analyse de la variance. Il y a un rapport de 20.19 (= la valeur du test de Fisher) entre la variance factorielle et la variance résiduelle, soit un effet régression très net (p = 0.0012). Le coefficient de détermination est de 0,6687 ce qui signifie que 67% de la variance du nombre d'individus est expliquée par le seul pH. Enfin, le dernier tableau donne les paramètres de l'équation de régression. Il sont tous les deux significativement différents de zéro et doivent donc être utilisé :

Nind = -3.023 * pH + 49,391

Cette équation sert à définir des valeurs prédites du graphique ci-dessous :

      ------+-------+-------+-------+-------+-------+-------+-------+-------+-------+------
nind |                                                                                   |
     |                                                                                   |
  60 +                                                                                   +
     |                                                                                   |
     |                                                                                   |
     |     U                                                                             |
     |         U                                                                         |
     |             U                                                                     |
  50 +                                                                                   +
     |                     U                                                             |
     |                                                                                   |
     |             O               U                                                     |
     |                                                                                   |
     |                                     U                                             |
  40 +                                                                                   +
     |         O                                   U                                     |
     |     P                                               U                             |
     |         P   ?                                                                     |
     |     O                                                       U                     |
     |                     P                                                             |
  30 +                     O                                                             +
     |                             P                                               U     |
     |                                     O       O                                     |
     |                                     P                                             |
     |                                                                             O     |
     |                                             P                                     |
  20 +     L                       O                                                     +
     |         L                                           P                             |
     |             L                                               P                     |
     |                     L                                                             |
     |                                                                                   |
     |                             L                                                     |
  10 +                                                     O                       P     +
     |                                     L                       O               O     |
     |                                                                                   |
     |                                             L                                     |
     |                                                                                   |
     |                                                     L                             |
   0 +                                                                                   +
     |                                                             L                     |
     |                                                                                   |
     |                                                                                   |
     |                                                                                   |
     |                                                                             L     |
 -10 +                                                                                   +
     |                                                                                   |
     ------+-------+-------+-------+-------+-------+-------+-------+-------+-------+------
           4       5       6       7       8       9      10      11      12      13      
                                                                                          
                                              ph                                         

PROC TTEST : Comparaison de deux moyennes (t de Student)

La procédure TTEST permet de calculer des tests de t de Student lors de la comparaison d'une moyenne à un nombre donné, la simple comparaison de deux moyennes (comparaison de la moyenne de la première moyenne moins la seconde moyenne à un nombre donné) ou des analyses d'observations pairées (comparaison la moyenne des différences d'observations à un nombre donné). Pour des comparaison de plusieurs moyennes, utilisez PROC ANOVA ou PROC GLM.

L'hypothèse de base est que les observations sont des échantillons aléatoires tirés de populations suivant une distribution normale (cfr PROC UNIVARIATE). Si ce n'est pas le cas, on doit utiliser des tests non paramétriques (voir PROC NPAR1WAY).

PROC TTEST
DATA = nomdudataset
Nom du fichier de données SAS à analyser.
 
HO=n
Défini la valeur du nombre auquel doivent être la ou les moyennes (par défaut =0).
 
;
Fin des options du PROC REG.
CLASS
variable;

Nom de la variable de classification identifiant les deux (et seulement deux !) groupes d'observations. Cette instruction n'est nécessaire que lorsqu'on veut comparer deux moyennes.

VAR
variable;
Nom de la variable avec les valeurs numériques dont on veut comparer les moyennes.
PAIRED
var1*var2;
Noms et combinaisons des variables à utiliser pour les observations pairés.

PROC ANOVA : Comparaison de plusieurs moyennes (F de Fisher)

La procédure ANOVA effectue des comparaison de moyennes avec plus de deux groupes d'observations pour une seule variable de classification (ANOVA1) ainsi que la recherche d'interactions entre différentes variables de classification (ANOVA2, 3, ...). L'utilisation d'ANOVA suppose des groupes balancés (avec le même nombre de répétitions). Si ce n'est pas le cas, utilisez la procédure GLM.

PROC ANOVA
DATA = nomdudataset;
Nom du fichier de données SAS à analyser.
CLASS
variables;

Nom des variables de classification qui seront utilisées dans l'instruction MODEL. Cette instruction DOIT précéder l'instruction MODEL.

MODEL
dépendant = critères ;
Défini le modèle qui sera utilisé. Pour une ANOVA1 sur la variable numérique y, on écrira MODEL y=a; Pour une ANOVA2 sur la variable numérique y, on écrira MODEL y=a b a*b; de manière à inclure l'interaction. Pour identifier les variables de classification hiérarchisées : MODEL y=a b(a);
MEANS
critères /
Demande que les contrastes de moyennes soient effectuées, puisque l'analyse de base indique seulement que les moyennes sont éventuellement différentes mais n'indiquent pas lesquelles sont différentes.
 
SCHEFFE TUKEY SNK GT2 LSD

Différentes méthodes de réalisation des tests de contrastes de moyennes.

 
ALPHA=p
Niveau de signification (par défaut = 0.05) pour les comparaisons de moyennes.
 
LINES;
Présentation alternative des résultats.

Exemple : on souhaite analyser les différences de pH de 4 milieux différents dans lesquels on a réalisé 5 échantillons.

DATA eco;
     INPUT milieu$ pH;
     CARDS;
     Milieu1 4.94
     Milieu1 3.92
     Milieu1 3.36
     Milieu1 3.93
     Milieu1 4.50
     Milieu2 4.13
     Milieu2 4.18
     Milieu2 4.37
     Milieu2 5.41
     Milieu2 4.82
     Milieu3 3.11
     Milieu3 2.35
     Milieu3 2.90
     Milieu3 3.75
     Milieu3 3.82
     Milieu4 6.06
     Milieu4 6.65
     Milieu4 7.57
     Milieu4 7.85
     Milieu4 7.79
	 ;
TITLE "PROC ANOVA";
PROC ANOVA DATA=eco;
     CLASS milieu;
     MODEL pH=milieu;
     MEANS milieu / SHEFFE;
     RUN;

Donne les résultats suivants :

PROC ANOVA
Class Level Information
Class Levels Values
milieu 4 Milieu1 Milieu2 Milieu3 Milieu4
Number of observations 20

The ANOVA Procedure
Dependent Variable: pH
Source DF Sum of Squares Mean Square F Value Pr > F
Model 3 43.90697500 14.63565833 35.28 <.0001
Error 16 6.63792000 0.41487000    
Corrected Total 19 50.54489500      
R-Square Coeff Var Root MSE pH Mean
0.868673 13.50181 0.644104 4.770500
Source DF Anova SS Mean Square F Value Pr > F
milieu 3 43.90697500 14.63565833 35.28 <.0001

Le résultat de l'analyse de la variance est largement significatif avec un F = 35,28 (rapport de la variance factorielle (14,635) due aux différents milieux sur la variance résiduelle (0,415) des différents échantillons dans les milieux)

The ANOVA Procedure
Scheffe's Test for pH
NOTE: This test controls the Type I experimentwise error rate.
Alpha 0.05
Error Degrees of Freedom 16
Error Mean Square 0.41487
Critical Value of F 3.23887
Minimum Significant Difference 1.2698
Means with the same letter are
not significantly different.
Scheffe Grouping Mean N milieu
  A 7.1840 5 Milieu4
         
  B 4.5820 5 Milieu2
  B      
C B 4.1300 5 Milieu1
C        
C   3.1860 5 Milieu3

Le test de constraste de moyenne (Sheffé) ordonne dans l'ordre décroissant les différents milieux et indique celles qui sont différentes par le système des lettres de l'alphabet. Dés qu'un milieu partage une lettre avec un autre, les moyennes ne sont pas considérées comme différentes. Dans le cas présent, le milieu 3 n'est pas différent du milieu 1 mais bien des milieux 2 et 4. Le milieu 1 n'est différent que du milieu 4. Le milieu 2 est différent du 4 et du 3. Enfin, le milieu 4 est différent des 3 autres.

(fin provisoire ?)

[Introduction] [Conventions SAS] [DATA step] [Fonctions] [Procédures de base]