Vous êtes sur la page 1sur 39

M2 IFMA et MPE, Universit Paris 6 e Bertrand MICHEL

Petit guide dintroduction ` SAS 9 a


Procdures statistiques lmentaires et analyse de donnes e ee e

Ce document ne prtend pas tre un guide exhaustif du logiciel SAS. Il prsente les principes e e e gnraux du logiciel et en dcrit quelques procdures usuelles. e e e e

Table des mati`res e


1 Description gnrale du logiciel SAS e e 1.1 Les fentres de SAS . . . . . . . . . e 1.2 Articulation dun programme SAS . 1.3 Options, titres, commentaires, etc. . 1.4 Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2 3 4 4 5 5 5 6 8 9 10 10 10 10 11 12 12 13 13 13 14 15 17 18 21 21 22 22 23

2 Cration de tables SAS e 2.1 Le vecteur de travail . . . . . . . . . . . . . . . . 2.2 Ltape data par saisie des donnes dans lditeur e e e 2.3 Crer une table ` partir dun chier de donnes . e a e 2.4 Achage des donnes . . . . . . . . . . . . . . . e 2.5 Biblioth`ques SAS . . . . . . . . . . . . . . . . . e 3 Manipulation de tables SAS 3.1 Cration et slection de variables . . e e 3.2 Numroter les observations . . . . . e 3.3 Slection dindividus . . . . . . . . . e 3.4 Fusions verticales et horizontales . . 3.5 Boucles et structures conditionnelles 3.6 Linstruction OUTPUT . . . . . . . 3.7 Linstruction retain . . . . . . . . . . 3.8 Variables simules . . . . . . . . . . e 4 Procdures graphiques e 4.1 Nuages de points et courbes 4.2 Diagrammes . . . . . . . . . 4.3 Diagrammes ` moustaches . a 4.4 La procdure sgscatter . . . e

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

5 Procdures statistiques lmentaires e ee 5.1 La procdure univariate . . . . . . . e 5.2 La procdure freq . . . . . . . . . . . e 5.3 La procdure corr . . . . . . . . . . . e 5.4 La procdure ttest . . . . . . . . . . e

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

6 Mod`le linaire : les procdures reg et anova e e e 6.1 La rgression simple . . . . . . . . . . . . . . . e 6.2 La rgression multiple . . . . . . . . . . . . . . e 6.3 Diagnostic de linuence des observations . . . 6.4 La procdure anova pour un facteur . . . . . . e 7 Mthodes factorielles e 7.1 Les procdures SAS . . . . . . . . . e 7.1.1 La procdure princomp . . . e 7.1.2 La procdure corresp . . . . . e 7.2 Macro-programmes pour lanalyse de 8 Exploration interactive de donnes e

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

24 24 26 28 29 30 30 30 31 34 34 35 35 35 36 37 37 37 37

. . . . . . . . . . . . . . . donnes e

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

9 Macros variables et macro-programmes 9.1 Macro-variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.2 Macro-programmes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.3 Compilation, stockage et excution dun macro-programme . . . . . . . . . . . . . . . e 10 Achage et dition des sorties, syst`me ODS e e 10.1 Achage des sorties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.2 Sauvegarde directe de sorties depuis un listing . . . . . . . . . . . . . . . . . . . . . . . 10.3 Description du syst`me ods (Output Delevry System) . . . . . . . . . . . . . . . . . . e

Description gnrale du logiciel SAS e e

SAS - Statistical Analysis System - est un logiciel polyvalent qui traite de nombreux domaines de la Statistique. De conception amricaine, il est dvelopp par la socit SAS-Institute et a acquis e e e ee depuis la mise en route du projet au dbut des annes 60 une situation dominante dans de nombreuses e e branches dactivits conomiques. SAS est un logiciel multi-facettes capable de grer de gros volumes e e e de donnes (tableaux de plusieurs gigaoctets) pour eectuer des analyses statistiques tr`s compl`tes. e e e Le fonctionnement du logiciel peut para peu intuitif pour le dbutant ; prenez le temps ncessaire tre e e pour bien comprendre comment manipuler les donnes et utiliser les procdures SAS. e e

1.1

Les fentres de SAS e

A louverture de SAS, de nombreuses fentres souvrent simultanment. Sous la version 9.3 de e e Windows, celles-ci sont organises dans une mme fentre SAS. Sous Linux (version 8) celles-ci se e e e superposent ` lcran de faon dsordonne, ` vous dorganiser vos fentres de faon ` pouvoir passer a e c e e a e c a facilement de lune ` lautre au cours de votre session. Les trois fentres suivantes sont les plus impora e tantes : SAS : Program editor : il sagit de lditeur de SAS dans lequel on entre tous les programmes e a e ` excuter. Lditeur de la version Windows est tout ` fait convenable, en revanche celui propos e a e par la version Linux est ` proscrire ! Dans ce second cas il est prfrable de rdiger les codes a ee e dans un diteur de son choix, avant de les copier dans le program editor pour les soumettre ` e a SAS (` laide du bouton submit ou des menus du logiciel). a SAS : Log : il sagit de la fentre de contrle qui permet de sassurer du bon fonctionnement e o du programme. Le programme y est crit en noir avec ses commentaires en vert. On peut y lire e les messages davertissement de SAS en vert pour un probl`me non fatal, et en rouge, prcd e e e e de warning lorsquune erreur fatale est dtecte. Prenez lhabitude de toujours contrler la e e o bonne marche du programme dans cette fentre Log. e

SAS : Output : dans cette fentre sachent les listings obtenus apr`s soumission dune e e procdure. On peut choisir de produire des sorties sous la forme de listings ou sous la forme e de sorties html. Pour la version 9.3, cest cette derni`re solution qui est active par dfaut. De e e e plus, la commande ods graphics on est active elle aussi par dfaut : des graphiques seront donc e produits automatiquement pour la plupart des procdures. Pour plus de dtails sur le gestion e e du mode dachage des sorties, reportez-vous ` la section 10.3. a Deux autres fentres de navigation sont aussi disponibles : e SAS : Results : cette fentre dresse lhistorique des procdures successives excutes par SAS e e e e depuis le dbut de la session en cours. Les raccourcis achs dans cet historique permettent de e e naviguer aisment dans les listings obtenus dans la fentre Output. e e SAS : Explorer : il sagit de lexplorateur de SAS. Il permet daccder aux biblioth`ques SAS e e dont notamment la biblioth`que Work associe par dfaut ` la session courante. e e e a

1.2

Articulation dun programme SAS

Un programme SAS est un encha nement dtapes data permettant de crer des tables SAS, et e e de procdures proc qui appliquent ` ces tables les analyses demandes par lutilisateur. Pensez ` e a e a sauvegarder vos programmes rguli`rement pour viter de perdre le travail en cours en cas de bug, qui e e e se produisent malheureusement assez souvent. Gestion des donnes : ltape data. Pour pouvoir appliquer des procdures ` des donnes, cellese e e a e ci doivent tre pralablement enregistres sous la forme dun objet SAS, cest-`-dire sous la forme dune e e e a table. Il existe trois principales faons de crer une table SAS ` partir de donnes ; on peut : c e a e lire directement les donnes en les incluant dans le programme au moyen de linstruction e datalines (ou cards) ; lire des donnes pralablement enregistres dans un chier (par exemple au format .txt) au e e e moyen de linstruction infile, ou encore avec la procdure import ; e utiliser le gestionnaire dimportation. Les procdures SAS. Un programme SAS est un encha e nement de procdures, chacune ralisant e e un traitement sur les tables disponibles. Voici quelques exemples de procdures standards : e print : acher le contenu dune table dans la fentre Output ; e sort : ordonner une table selon les valeurs dune variable ou plusieurs variables ; gchart : cration de diagrammes ; e gplot : cration de graphiques pour des variables continues ; e boxplot cration de bo ` moustaches ; e tes a means, univariate : description de variables continues ; freq : description de variables catgorielles ; e corr : tude des corrlations entre des variables continues ; e e reg : mod`les de rgression ; e e anova : mod`les anova ; e princomp et corresp : analyse des composantes principales et analyse factorielle des correspondances. Instructions. On appelle instructions les commandes successives dans une tape data ou dans une e procdure, une instruction se termine par un point virgule ; . Les instructions peuvent comporter e des commandes spciques : des attributs si elles sont ncessaires ou des options (parfois notes entre e e e crochets < une option> dans ce document) dans le cas contraire. Notez que la casse nest pas prise en compte sous SAS : pas de dirence entre majuscules et minuscules dans lcriture dune instruction e e (ou dans lcriture du nom dune table). e

1.3

Options, titres, commentaires, etc.

Options gnrales. Ces commandes peuvent tre rajoutes au dbut dun programme SAS pour e e e e e rgler les options gnrales (elles continueront ` sappliquer jusqu` la n de la session SAS, ou jusqu` e e e a a a ce quelles soient modies). On les indique avec la commande options : e pagesize spcie le nombre de lignes dans une page de sortie output, e linesize spcie le nombre de caract`res par ligne (utile notamment lorsque lon souhaite diter e e e ou imprimer les sorties), nodate supprime limpression de la date dans les sorties, pageno=3 numrote les pages des sorties ` partir de la valeur impose (ici 3), e a e libname permet de dclarer une biblioth`que (voir la section 2.5). e e Titre. La commande title; permet de placer un titre en haut de chaque page des sorties.

title ceci est un titre; Toutes les sorties qui suivront acheront ensuite ce titre. La commande title; ne produit aucun titre, et annule donc lachage systmatique dun titre dni prcdemment. e e e e Pied-de-page. La commande Footnote permet de placer un titre en bas de chaque page des sorties.

footnote ceci appara^tra en bas de page; Commentaires. Des commentaires peuvent tre insrs nimporte o` dans un programme SAS, ils e ee u doivent tre rdigs de la faon suivante pour une seule ligne : e e e c /* ceci est un commentaire */ et sur plusieurs lignes : /* ceci est un autre commentaire */ Changer le rpertoire de travail. e SAS sous Windows : double clic sur ladresse du rpertoire (en bas ` droite de la fentre) ou e a e Tools Options Change Directory. SAS sous Unix : Tools Options Change Directory.

1.4

Documentation

Quelques rfrences : ee Ma triser SAS base et SAS macro, H. Kontchou Kouomegni et O. Decourt. Un ouvrage en franais pour bien dbuter avec SAS. Les procdures statistiques y sont peu dcrites. c e e e Laide SAS : cest une mine dinformations mais elle est malheureusement peu structure. Vous e devez imprativement apprendre ` utiliser laide SAS pour utiliser une procdure, comprendre la e a e syntaxe dune instruction. Pour trouver de la documentation dans laide SAS sur une procdure e truc, le plus simple est douvrir la page de laide intitule e The truc Procedure : The truc procedure .

Celle-ci permet daccder aux direntes sections consacres ` la procdure : Overview, Gete e e a e ting started, Syntax, Details, Overview, Exemples et References. Par ailleurs, laide en ligne des derni`res version SAS est disponible ` ladresse http://support.sas.com/documentation/ : e a vous pouvez choisir la version de SAS dans le menu de gauche de la page. De nombreux polycopis qui complteront le contenu de celui-ci sont disponibles sur le web ; e e nous encourageons le lecteur ` les consulter. Citons notamment : a SAS sous Unix : Logiciel hermtique pour syst`me ouvert disponible sur la page de son e e auteur P. Besse : http://www.math.univ-toulouse.fr/~besse/enseignement.html Le polycopi tr`s complet dEric PreudHomme http://www.stat.ucl.ac.be/cours/stat2020/ e e documents/manuels_logiciels/SASV9-Preudhomme.pdf. Nous recommandons enn au lecteur de consulter une page de G. Saint-Pierre qui rpertorie une e liste de liens internet utiles consacrs ` SAS : http://perso.lcpc.fr/guillaume.saint-pierre/ e a Master2.html

Cration de tables SAS e

Les nombreuses procdures de SAS ne peuvent prendre en entre que des donnes sous la forme e e e dune table SAS. Ltape data a pour objet de crer ou modier une telle table SAS. Lutilisation du e e gestionnaire dimportation est la mthode la plus simple pour importer des donnes. Cependant ceci e e nest possible que si les donnes ont t enregistres dans un format lisible par le gestionnaire de SAS. e ee e De plus, le gestionnaire importe souvent les variables de la base de donnes initiale sous de mauvais e formats. Il est donc important de ma triser aussi limportation de donnes en ligne de code. e

2.1

Le vecteur de travail

Une table SAS est un tableau dans lequel les lignes reprsentent les individus alors que chaque e colonne est une variable, comme cest souvent le cas en statistique. De faon gnrale, SAS est conu c e e c pour travailler ligne par ligne. Au cours dune tape data, SAS lie, cre ou modie les donnes en e e e extrayant lune apr`s lautre les lignes dune table (ou dun chier de donnes) pour les placer dans e e le vecteur de travail. Les oprations sur les variables sont ensuite eectues au niveau du vecteur e e de travail, ligne apr`s ligne. On appelle ce principe la boucle implicite. Ce mode de fonctionnement e permet une programmation tr`s sobre, par exemple : Var3 = Var2 - Var1 pour crer une variable e e Var3 en fonction de variables existantes Var1 et Var2. En revanche, il est plus compliqu deectuer e des oprations entre lignes (voir plus loin linstruction retain). e Lextraction dune ligne correspond a une phase de lecture. En sortie du vecteur de travail, il ` sagit cette fois dune phase dcriture des informations (i.e. des variables), dans la table cre. Avoir e ee a ` lesprit cette reprsentation schmatique claire de nombreux aspects ` premi`re vue obscurs de e e e a e ltape data de SAS. e

2.2

Ltape data par saisie des donnes dans lditeur e e e

La premi`re solution pour crer une table SAS est de saisir les donnes directement dans lditeur. e e e e Voici un exemple pour une telle tape data : e data Matable ; input prenom $ sexe $ taille poids ; infile datalines ; datalines; Paul H 160 82 Grard H 185 75 e Emilie F 158 45

Agathe F 171 60 ; run; Le nom de la table cre (ici Matable) est donn juste apr`s linstruction data. La dclaration des ee e e e variables est obligatoire, les variables doivent tre numres apr`s linstruction input dans le bon e e ee e ordre. Les symboles $ dans linstruction input indiquent que les variables prenom et sexe sont de type alphanumrique cest-`-dire des cha e a nes de caract`res. La commande datalines dans linstruction e infile indique que les donnes sont donnes dans le code, ` la suite de linstruction datalines. e e a Lusage des instructions infile et input est dtaill dans la section suivante. e e

2.3

Crer une table ` partir dun chier de donnes e a e

Les instructions infile et input permettent dimporter les donnes dun chier externe de type e .txt en prcisant ` SAS quels sont les formats des variables et comment celles-ci sont organises dans e a e le chier. Le schma lmentaire de ltape data est ici le suivant : e ee e data Nouvelletable; infile chemin du fichier lu input Var1 ... Varp ; run;

< options>;

Notez que le chemin du chier remplace la commande datalines utilise lorsque les donnes sont e e saisies dans le code. Dans ce polycopi, pour faciliter la lecture de la syntaxe, on indique les options e en les encadrant par les symboles < et >. Cependant, dans le vrai code SAS il ne faut pas encadrer ainsi les options. Linstruction input et les informats. Linstruction input dclare les donnes ` importer et les e e a dcrit ` laide des informats que sont les formats ` considrer pour la phase de lecture des donnes. Il e a a e e est en eet ncessaire de prciser ` SAS sous quels formats les donnes doivent tre lues ` la source. e e a e e a Voici les syntaxes principales : pour une variable numrique : NomVar :X. pour des variables enti`res et NomVar :X.Q pour des e e variables dcimales. Dans ce dernier cas, X indique le nombre total de caract`res ` lire (point e e a compris), et Q est le nombre total de dcimales. e pour une variable alphanumrique : NomVar :$X. o` X indique le nombre de caract`res (8 par e u e dfaut et donc au-del` il faut le prciser). e a e pour une date : NomVar :YYMMDD10. ou NomVar :YYMMDD8. voir laide de SAS pour les autres formats. Les deux points : sont l` pour donner la priorit au dlimiteur sur le format, ce qui signie que le long a e e dune ligne, SAS passera dune variable ` la suivante sans ncessairement atteindre le nombre total de a e caract`res dclars. e e e Linstruction inle. Linstruction infile indique le chemin dacc`s au chier de donnes brutes. e e Voici quelques options utiles de cette instruction, : firstobs = indique le numro de la premi`re ligne lue. e e dlm =, dclare le caract`re sparateur (ici la virgule). Le sparateur par dfaut est lespace, e e e e e le sparateur tabulation se dclare par dlm =09x. e e dsd indique que la prsence de deux sparateurs conscutifs sera interprte comme une donne e e e ee e manquante. missover est aussi utile pour les donnes manquantes : si une ligne du chier ne comporte pas e assez de donnes par rapport aux variables dclares dans linstruction input, cette option force e e e SAS ` complter la ligne par des donnes manquantes dans la table. Sans cette option il y a a e e 6

passage ` la ligne automatique dans le chier tant que la ligne de la table na pas t enti`rement a ee e renseigne. e Nous donnons maintenant les tapes data pour crer des tables dans 3 situations parmi les plus e e courantes. Une observation par ligne. Voici le contenu du chier EX1.txt (les donnes sont spares ici par e e e des espaces) : Paul H Grard e Emilie Agathe 160 82 H 185 75 F 158 45 F 171 60

Ltape data suivante permet de crer une table SAS contenant les informations de ce chier : e e data Matable1 ; infile EX1.txt; input prenom $ sexe $ taille poids ; run; Une observation sur plusieurs lignes. Dans ce cas chaque individu est dcrit par des variables e disposes sur plusieurs lignes conscutives. Plusieurs dclarations input ou des caract`res / permettent e e e e de prciser le dcoupage. Voici le contenu du chier EX2.txt (sparateur ;) e e e Paul;H 160;82 Grard;H e 185;75 Emilie;F 158;45 Agathe;F 171;60 et ltape data associe : e e data Matable2 ; infile EX2.txt dlm=; ; input prenom $ sexe $ / taille poids ; run; Plusieurs observations par ligne. Le double caract`re @@ a pour eet de maintenir un article dans e le buer de lecture jusqu` ce quil soit compl`tement lu, ce qui permet de lire plusieurs observations a e positionnes sur une mme ligne. Voici le contenu du chier EX3.txt (sparateur ;) ; e e e Paul;H;160;82;Grard;H;185;75 e Emilie;F;158;45 Agathe;F;171;60 et ltape data associe : e e

data Matable3 ; infile EX3.txt dlm=; ; input prenom $ sexe $ taille poids @@; run; Lecture formate. Dans certains chiers, chaque variable est positionne dans le chier ` un eme e a placement xe (une colonne ou champ). Dans ce cas, les variables ne sont donc plus identies grce e a aux sparateurs, mais par la position prcise quelles occupent dans le chier. Il faut alors indiquer e e explicitement ` SAS dans linstruction input la position que chacune des variables occupe. Voici le a contenu du chier EX4.txt Paul Grard e Emilie Agathe H H F F 160 185 158 171 82 75 45 60

et ltape data associe : e e data Matable4 ; infile EX4.txt; input prenom $ 1-8 sexe $ 9 taille 12-14 poids 17-18; run;

2.4

Achage des donnes e

Une tape data nache pas la table cre dans la fentre des sorties comme cest le cas pour la plue ee e part des procdures. Il est possible de la visualiser depuis sa biblioth`que dans la fentre dexploration e e e (voir la section 2.5), il est galement possible de lacher grce ` la procdure print : e a a e proc print data = Matable; run; Une des subtilits de SAS est la dirence entre les formats utiliss pour la lecture des donnes (dans e e e e un chier par exemple) et les formats utiliss pour lachage des donnes. En eet SAS nutilise pas e e toujours linformat comme format dachage des donnes, cest par exemple le cas pour les variables e de type dates et aussi pour le nombre de dcimales conserves dans les variables numriques, qui est de e e e 4 par dfaut. Pour cela on peut indiquer directement les formats dcriture avec linstruction format. e e On peut aussi utiliser linstruction attrib qui permet en plus daecter des labels aux variables et de contrler la longueur des variables avec loption length. Voici le contenu dun chier nomm chex.txt o e Dupuis 56 12/01/53 Lefort 40 05/11/69 Mosnier 29 15/09/80 et le code sas permettant dimporter les donnes avec linstruction attrib : e data Tablefichex; infile fichex.txt ; /* dlimiteur espace */ e input Nom $ Age DN :DDMMYY8.; attrib DN Label = Date de Naissance format = DDMMYY8. nom Label = Nom de famille length = $15. 8

age Label = age de lindividu ; run; De faon gnrale, retenir quil est prfrable de rcuprer toutes les informations disponibles dans la c e e ee e e phase de lecture des donnes avec les informats, quitte ` modier ensuite les formats dachage des e a variables avec la procdure attrib. e La procdure contents permet dacher toutes les proprits dune table. Elle fournit en partie ee culier le nombre dobservations de la table, la liste des variables, les labels ventuels, les formats et e informats des variables. La syntaxe est la suivante : proc contents data = Tablefichex <varnum>; run; Loption varnum permet dacher les variables selon leur ordre dans la table. Sans cette option, les variables sont aches dans lordre alphabtique. Cette option est donc tr`s utile pour dsigner des e e e e squences de variables (par ex. x1--x10) pour certaines procdures telles que les procdures reg ou e e e princomp.

2.5

Biblioth`ques SAS e

Les tables SAS sont ranges dans des biblioth`ques (ou librairies). Une biblioth`que nest pas un e e e emplacement physique sur le disque, mais plutt un raccourci vers un rpertoire physique du disque. o e Pour allouer une biblioth`que, cest-`-dire permettre ` SAS dutiliser ou crer des tables dans un e a a e rpertoire du disque, on peut au choix : e utiliser le bouton nouvelle biblioth`que dans la barre doutil suprieure, apr`s avoir activ la e e e e fentre de lexplorateur ; e utiliser linstruction libname : libname NOMLIB chemin du rpertoire physique; e Notez que le nom dune biblioth`que ne doit pas comporter plus de 8 caract`res (voir laide de e e SAS pour plus de dtails sur les caract`res autoriss). Lallocation dune biblioth`que est temporaire ; e e e e elle na deet que pour la dure dune session SAS. Pour la session en cours, les biblioth`que alloues e e e ainsi que les tables quelles contiennent sont accessibles depuis la fentre dexploration de SAS. Apr`s e e avoir visualis une table, pensez ` refermer la fentre de visualisation car SAS ne peut utiliser la table e a e tant que celle-ci est ouverte. La table TAB1 de la biblioth`que NOMLIB se dsigne dans le langage de SAS par la syntaxe e e NOMLIB.TAB1. Il existe aussi des biblioth`ques prdnies par SAS : e e e la biblioth`que WORK : par dfaut, les tables sont cres dans cette biblioth`que. Cependant, ` la e e ee e a dirence des autres biblioth`ques le contenu de WORK est temporaire ; les tables quelle contient e e sont eaces lorsquune session est clture. Autre exception de cette biblioth`que, il nest pas e o e e ncessaire dutiliser la syntaxe WORK.TAB1 pour dsigner la table TAB1 si celle-ci appartient ` la e e a biblioth`que WORK car TAB1 dsigne par dfaut une table de WORK. e e e la biblioth`que SASHELP : contient de nombreux exemples de tables de donnes disponibles pour e e apprendre ` utiliser les procdures de SAS. a e la biblioth`que SASUSER : cest la biblioth`que personnelle de lutilisateur. Par dfaut, elle pointe e e e gnralement vers un sous-rpertoire du dossier personnel de lutilisateur. e e e

3
3.1

Manipulation de tables SAS


Cration et slection de variables e e

Il est souvent ncessaire de crer de nouvelles variables ` partir de variables dnies dans une table. e e a e Linstruction set permet de charger une table existante pour en utiliser les variables. Par exemple dans le code suivant, data Newtable; set Tablelue; NouvelleVar = Var1 + Var2; run; la table Tablelue est charge, la variable NouvelleVar est dnie comme somme des variables Var1 et e e Var2 de la table Tablelue. Une nouvelle table Newtable est cre, elle contient la variable NouvelleVar ee en plus de toutes les variables de la table Tablelue. Si lon utilise le mme nom pour la table cre et e ee la table charge, lancienne table est crase par la nouvelle. e e e Il est possible, au sein dune tape data, de supprimer certaines variables au moyen de loption e drop = suivie de la liste des variables ` supprimer. On peut aussi utiliser loption keep = qui permet a de ne garder que certaines des variables de la table : data Newtable ; set Tablelue (keep = Var2); run; Notez que la suppression ou la slection des variables est eectue dans linstruction set, cest-`-dire e e a dans la phase de lecture.

3.2

Numroter les observations e

Pour ajouter une variable id numrotant les observations dans une table dj` cree, on peut utiliser e ea e la variable syst`me _N_ : e data NewTable; set Tablelue; id =_N_; run;

3.3

Slection dindividus e

Il est possible de supprimer certaines observations ` laide de linstruction where, comme lillustre a lexemple suivant. On utilise la table Matable qui a t cre dans la section 2.2 : e e ee data Matable2; set Matable (where = (poids <= poids = poids + 10; run;

80));

Comme pour lexemple prcdent, la slection des individus est opre dans la phase de lecture. En e e e ee revanche, dans lexemple qui suit, on slectionne les individus au moment de lcriture, cest-`-dire e e a apr`s avoir eectu les oprations, et la table obtenue nest donc pas la mme que prcdemment e e e e e e (Grard est dans Matable2 mais pas dans Matable3) : e 10

data Matable3 (where = (poids <= set Matable; poids = poids + 10; run;

80));

Pour slectionner un sous-chantillon dni par une condition, il est galement possible dutiliser e e e e une instruction de la forme if CONDITION then output;. Par exemple dans le code suivant data Matable4; set Matable; if (poids <= run;

80) then output;

seuls les individus de poids suprieur ` 80 sont prsents dans la table Matable4. Linstruction output e a e permet ici dcrire les observations retenues dans la table (voir la section 3.5 pour plus de prcision e e sur lutilisation de cette instruction).

3.4

Fusions verticales et horizontales

La fusion verticale consiste ` empiler les donnes de plusieurs tables SAS. Pour cela on utilise a e linstruction set an de charger des tables SAS dj` existantes. SAS lit alors lune apr`s lautre les ea e lignes de la premi`re table avant de passer ` la seconde, etc. e a data newtable; set TableLue1 TableLue2 ...tableLuen; run; Si certaines variables ne sont pas prsentes dans toutes les tables, la table cre comporte alors des e ee donnes manquantes. e La fusion horizontale de tables permet de rassembler dans une seule table des variables direntes e dcrivant un mme groupe dindividus. Avant deectuer une fusion horizontale, les donnes doivent e e e tre pralablement tries selon des variables de recollement. La procdure sort permet de trier une e e e e table : proc sort data = tablelue < out = tablecree > e < nodupkey >; by Var1 < descending > Var2 < descending > ... Varp < descending >; run; Linstruction by indique ` SAS selon quelle(s) variable(s) la table doit tre trie. Par dfaut il sagit a e e e dun tri croissant ; pour un tri dcroissant on ajoute loption descending derri`re la variable concerne. e e e Loption nodupkey supprime les doublons de la table, sachant que deux individus sont considrs ee comme identiques si les variables dsignes par linstruction by co e e ncident pour ces deux individus. La fusion horizontale est ensuite eectue ` laide de linstruction merge dans une tape data. On e a e indique avec linstruction by quelles variables, communes aux deux tables, doivent tre utilises pour e e fusionner les donnes. e data tablecree; e merge Tablelue1 Tablelue2; by Var1 Var2... Varp; run; Si certains individus ne sont pas reprsents dans toutes les tables, la table nale comporte alors des e e donnes manquantes. e 11

3.5

Boucles et structures conditionnelles

Les boucles do end sont tr`s utiles pour crer ou manipuler les variables, voici un exemple dune e e telle boucle : do a= 1 to 10; INSTRUCTIONS; end; SAS permet aussi dutiliser des boucles while : do while ( CONDITION ); INSTRUCTIONS; end; ainsi que la structure conditionnelle : if CONDITION then do; INSTRUCTIONS; end; else do; AUTRES INSTRUCTIONS; end; De nombreux oprateurs sont supports par les arguments des instructions where, while et if, en e e voici une liste non exhaustive : c , et sil sagit dune condition sur une variable alpha-numrique on utilise les guillemets : pas exemple e V1 = "blabla" ; ^= (dirent de) ; e < , > , <= , >= ; IN (prend une valeur dans une liste) ; AND, OR ...

3.6

Linstruction OUTPUT

Les boucles et les structures conditionnelles sont souvent utilises conjointement avec linstruction e output qui force SAS ` crire dans la table sur une ligne dobservation toutes les variables disponibles ae dans le vecteur de travail au moment o` cette instruction est rencontre. Les quatre tables suivantes u e permettent dillustrer le fonctionnement de cette instruction. data Table1; do a = 1 to 3; end; run; data Table2; do a = 1 to 3; output; end; run; data Table4; set Table2; do b = a to 3; c = a +b; output; end; run; 12

data Table3; set Table2; do b = a to 3; c = a +b; end; run;

Les tables cres sont les suivantes : ee Table1 Table2 obs a obs a 1 4 1 1 2 2 3 3

obs 1 2 3

Table3 a b 1 4 2 4 3 4

c 4 5 6

obs 1 2 3 4 5 6

Table4 a b 1 1 1 2 1 3 2 2 2 3 3 3

c 2 3 4 4 5 6

Ltape data dnissant Table1 ne charge pas de table et ne contient pas dinstruction output : SAS e e nenregistre dans la table qu` la n de la boucle do ; la table ne contient donc quune seule observation a correspondant ` la derni`re valeur prise par a. Ltape data dnissant Table2 force SAS ` enregistrer a e e e a la valeur de a pour chaque tour dans la boucle ; la table contient donc trois observations. Pour ltape e data dnissant Table3, la premi`re observation de Table2 est place dans le vecteur de travail, SAS e e e eectue la boucle et crit dans la table les valeurs nales ` la sortie de la boucle. On note que b prend e a la valeur 4 qui correspond ` la derni`re valeur autorise dans la boucle plus un, alors que c = a + 3. a e e SAS passe ensuite ` la deuxi`me observation de Table2, eectue la boucle, etc. Dans Table4, chaque a e passage dans la boucle se traduit par une criture dans la table, do` les 6 observations nales (3 pour e u la premi`re observation de Table2, 2 pour la seconde et une seule pour la troisi`me). e e

3.7

Linstruction retain

Nous avons dj` indiqu plus haut que le principe de lecture des donnes par SAS rend dlicates ea e e e les manipulations entre lignes dune mme table. Linstruction retain permet toutefois de mmoriser e e des informations au l des observations. Cette instruction empche SAS de rinitialiser une variable e e avant de passer au traitement de lindividu suivant dans la boucle implicite. Dans lexemple qui suit, la table TableRevenus contient une variable Revenus. Le code ci-dessous permet de dnir une variable e RevenusCum qui correspond aux revenus cumuls sur les premi`res observations. e e data TableRevCum ; retain numero RevenusCum ; /* la variable RevenusCum est initialise ` 0 e a set TableRevenus ; RevenusCum = RevenusCum + Revenus; run; */

3.8

Variables simules e

Comme la plupart des logiciels de statistiques, SAS dispose dun gnrateur de nombres pseudoe e alatoires. Linstruction rand permet de simuler toutes les lois classiques, elle prend en argument le e type de loi et les param`tres ventuelles de celle-ci. Par exemple, linstruction rand(poisson,3); e e simule une variable alatoire de loi de Poisson de param`tre 3. e e Pour contrler plus prcisment la faon avec laquelle les variables sont simules, on peut utiliser o e e c e une instruction spcique ` chaque type de loi : ranuni(s) pour une loi uniforme sur [0, 1], rannor(s) e a pour une loi normale centre rduite, ranexp(s) pour une loi exponentielle, etc. La valeur s est appele e e e seed (cest-`-dire semence) et elle est utilise pour calculer la premi`re valeur simule dans une srie, a e e e e chaque valeur tant ensuite calcule ` partir de la prcdente. Toute valeur ngative entra lusage e e a e e e ne de lhorloge de la machine comme semence.

Procdures graphiques e

Les deux principales procdures graphiques de SAS sont la procdure gchart (histogrammes en e e btons, diagrammes circulaires) et la procdure gplot (nuages de points). Les graphiques obtenus a e 13

apparaissent dans la fentre des rsultats (sauf pour la procdure sgscatter, voir plus bas). Pour les e e e eacer, on doit supprimer directement les chiers dans le rpertoire Gseg de la librairie Work. e

4.1

Nuages de points et courbes

La procdure gplot permet de tracer des nuages de points et des courbes. La syntaxe gnrale en e e e est la suivante : proc gplot data= MaTable; by VarCat; /* optionnel */ title titre du graphe; plot VAR1 * VAR2 / < options >; run; Toutes les variables VAR2, VAR1 (et ventuellement VarCat) doivent tre disponibles dans une mme e e e table, ici MaTable, que lon mentionne au dbut de la procdure ` la suite de data=. La variable e e a VarCat tant suppose de type catgorielle, la commande optionnelle by VarCat construit autant e e e de graphiques de VAR2 selon VAR1 que VarCat comporte de modalits, et ceci sans superposer les e graphiques. Sur un mme graphique de VAR2 selon VAR1, il est aussi possible de direncier les donnes e e e provenant de la variable VarCat en utilisant la syntaxe VAR1 * VAR2 = Var3. Linstruction plot permet de lister plusieurs graphiques dans une seule instruction : plot VAR1 * VAR2 VAR3 * VAR2 VAR4 * VAR2;

Options de linstruction plot (noubliez pas le symbole /) : Loption overlay permet de superposer les nuages et les courbes mentionns dans linstruction e plot sur un mme graphique : e plot VAR1 * VAR2 VAR3 * VAR2 VAR4 * VAR2 / overlay;

Les options href et vref permettent de tracer des lignes horizontales et verticales sur le graphique : plot VAR1 * VAR2 / href = 13.45;

Les instructions symbol, symbol1, symbol2, etc. sont des options globales qui r`glent les motifs e utiliss dans les graphiques, elles sont donnes en dehors de la procdure. Ces instructions restent e e e valables tant quelles ne sont pas modies, ou annules par linstruction goptions reset = symbol; e e (la commande goptions reset = all; rinitialise toutes les options graphiques globales). La syntaxe e de linstruction symbol est la suivante : symbol1 color = blue value = "+" interpol = NONE; symbol2 color = red value = "STAR" interpol = JOIN; Linstruction symbol sapplique ` tous les nuages ou courbes. Lorsque plusieurs nuages (ou courbes) a sont dnis dans linstruction plot, le motif du premier nuage est paramtr par symbol1, le moe e e tif du second nuage est paramtr par symbol2, etc. Loption color = indique la couleur, lope e tion interpol = prcise si les points sont relis ou non : NONE, JOIN, SPLINE (lissage). Loption e e value = dnit le symbole utilis. Voir laide de SAS pour plus de dtails sur ces commandes. Le e e e code qui suit utilise la table cars de la libraire sashelp, il produit le graphique de la gure 1. Loption where =(type = Sedan OR type =SUV) permet de ne slectionner que les voitures de la table e qui sont de type Sedan ou SUV.

14

symbol1 interpol = NONE color = red value = square; symbol2 interpol = NONE color = blue value = star; proc gplot data =sashelp.cars (where =(type = Sedan OR type =SUV)); plot weight * enginesize = type; run;

Figure 1 Nuage de points produit par la procdure gplot : poids dune voiture Audi en fonction de e la taille du moteur (table Cars de la biblioth`que sashelp). e Linstruction symbol peut aussi tre utilise pour aecter un label ` chacun des points du nuage. Le e e a code suivant produit le graphique de la gure 2. Notez que la variable Model est fournie par la table sashelp.cars. symbol1 pointlabel=("#Model"); proc gplot data =sashelp.cars (where =(make = Audi)); plot weight * enginesize ; run;

4.2

Diagrammes

La procdure gchart permet de tracer des diagrammes de dirents types. Utilise avec linstruce e e tion vbar, elle produit un diagramme en btons verticaux, avec linstruction hbar elle produit des a diagrammes en btons horizontaux. Enn, linstruction pie permet de tracer des diagrammes circua laires. Nous prsentons ici lutilisation de linstruction vbar, nous renvoyons le lecteur ` laide de SAS e a pour un descriptif des deux autres instructions. proc gchart data = MaTable; vbar Var1 / levels =10; 15

Figure 2 Poids dune voiture Audi en fonction de la taille du moteur. Les labels correspondent aux mod`les de voiture (table Cars de la biblioth`que sashelp). e e title diagramme de Var1; run; La variable dont on produit le diagramme est prcise apr`s linstruction vbar, cette variable doit tre e e e e contenue dans la table donne en argument de la procdure gchart. Si cette variable est continue, e e SAS produit autant de barres que vbar comporte de modalits. Si la variable est numrique, SAS e e produit par dfaut des barres (i.e. des classes) de mme amplitude. Le nombre de classes peut tre e e e impos par loption level=. Il est aussi possible de spcier les centres des classes et dans ce cas SAS e e produit autant de classes que de centres sont donns : e vbar Var1 / midpoints = 3 5 10 56; Pour une variable numrique dont on souhaite considrer toutes les modalits (par exemple pour une e e e variable mentionnant une anne), utiliser loption discret. Pour obtenir un diagramme en pourcente age, on utilise loption type = pcrt. Il est possible de comparer les diagrammes dune mme variable e sur des sous populations dnies par les modalits dune seconde variable (catgorielle) grce ` loption e e e a a group : vbar Var1 / group = Var2 g100;

Loption g100 permet ici que considrer les proportions dans chaque groupes. Sans cette option, les e proportions sont calcules pour la famille totale. e Loption label permet dajouter un label ` la variable dont on dresse le diagramme : a proc gchart data = MaTable; label V1 = "label pour V1" ;

16

Comme symbol pour la procdure gplot, loption globale pattern pour la procdure gchart e e permet de dnir les proprits des barres (ou des zones) du diagramme : e ee pattern1 color = red; La commande goptions reset=pattern; permet de rinitialiser cette option globale. Voici pour nir e un exemple de procdure gchart produisant la gure 3. e pattern color = red; proc gchart data =sashelp.cars; label weight = "Poids de la voiture"; title diagramme du poids des voitures; vbar weight / levels =10; run;

Figure 3 Diagramme produit par la procdure gchart. e

4.3

Diagrammes ` moustaches a

La procdure boxplot permet de tracer des diagrammes ` moustaches (boxplots). Un diagramme e a est trac pour chaque modalit dune variable catgorielle dclare dans la procdure par linstruction e e e e e e by. De nombreuses options sont disponibles et dtailles dans laide de SAS. Notez que la table utilise e e e doit tre pralablement trie selon la variable catgorielle utilise dans la procdure. Le code qui suit e e e e e e permet de produire la gure 4. proc sort data = sashelp.cars out = cars2; by type; run;

17

proc boxplot data = cars2; plot weight*type; run;

Figure 4 Bo ` moustaches produites par la procdure boxplot. tes a e

4.4

La procdure sgscatter e

La La procdure sgscatter permet deectuer des nuages de points pour des combinaisons mule tiples de variables. Les codes suivants tirs de laide de SAS montrent quelques exemples dutilisation e de cette procdure graphique volue. e e e Le code qui suit permet daccoler dans une mme fentre graphique deux nuages de points (voir e e la gure 5) : proc sgscatter data=sashelp.cars; plot mpg_highway*weight msrp*horsepower; run; Le code qui suit permet de plus de partager un axe pour chacun des graphique tracs (voir la e gure 6). Loption group=type permet de distinguer les dirents types de voitures pour chacun des e trois nuages : proc sgscatter data=sashelp.cars; compare y=mpg_highway x=(weight enginesize horsepower ) / group=type; run;

18

Figure 5 Deux graphiques accols produits par la procdure sgscatter. e e

Figure 6 Trois graphiques accols (mme variable y) produits par la procdure sgscatter. e e e

19

Ce dernier code produit la matrice de graphiques de la gure 7. Loption diagonal=(histogram kernel) permet dacher les histogrammes de chacune des variables sur la diagonale. Un estimateur de la densit est de plus superpos ` chacun des histogrammes (ici un e e a estimateur ` noyau :kernel) a proc sgscatter data=sashelp.iris (where=(species eq "Virginica")); matrix petallength petalwidth sepallength / diagonal=(histogram kernel); run;

Figure 7 Matrice de graphiques produite par la procdure sgscatter. e

20

5
5.1

Procdures statistiques lmentaires e ee


La procdure univariate e

Cette procdure fournit la description statistique dune variable continue. Sa syntaxe est la suive ante : proc univariate data= Matable var V1; run; < options >;

En dehors des sorties les plus videntes, voici la signication des statistiques fournies par cette e procdure pour chaque variable numrique x continue dont lanalyse a t demande : e e ee e skewness : coecient dasymtrie dni par 3 / 3 o` 3 est le troisi`me moment centr. Un e e u e e coecient positif indique une queue de distribution tale vers la droite, un coecient ngatif e e e indique une queue de distribution tale vers la gauche. Une distribution symtrique a un coefe e e cient nul. kurtosis : coecient daplatissement dni par 4 / 4 o` 4 est le quatri`me moment centr. Un e u e e coecient positif correspond ` une distribution pointue et un coecient ngatif ` une distribution a e a aplatie. Un coecient nul correspond ` une distribution proche de la distribution normale, et a ceci dautant mieux quelle sera symtrique. e Coeff Variation = 100s/ x Somme des carrs non corrige U SS = n x2 e e i=1 i Somme des carrs corrige CSS = n (xi x)2 e e i=1 Intervalle : tendue (max-min ) e Q1, Q3 : quartiles infrieur et suprieur (quantiles 25% et 75%) e e Ecart interquartile : Q3-Q1 Il est possible de demander ` SAS deectuer lanalyse sur des sous-groupes dindividus. Ces sousa groupe sont dnis par une variable catgorielle de la table, ici nomme VarCat : e e e proc univariate data= Matable; by VarCat; var V1; run; De nombreuses sorties supplmentaires peuvent tre demandes ` SAS en option de la procdure : e e e a e cibasic fournit des intervalles de conance pour la moyenne et la variance ; mu0=12 demande un test sur la moyenne (ici comparaison ` la valeur 12) ; a normal permet dobtenir des statistiques de test pour lajustement ` une loi normale. a proc univariate data= Matable plots normal ; var V1; run; La procdure univariate permet de tracer de nombreux graphiques : e proc univariate data= Matable ; var V1; cdfplot V1 / normal; PPPLOT V1 / exp; QQPLOT V1 / lognormal; histogram V1 / normal ; run;

21

Les instructions ci-dessus tracent la fonction de rpartition et superpose une loi donne (ici normale) ; e e un probability-probability plot (PP-plot) pour comparer la distribution empirique ` une distribua tion donne (ici une loi exponentielle) ; e un probability-probability plot (QQ-plot) pour comparer la distribution empirique ` une distria bution donne (ici une loi lognormal) ; e un histogramme de la distribution empirique surlequel on superpose la courbe de densit dune e distribution donne (ici une loi normal) e Il est possible de paramtrer nement lachage de ces graphiques (couleurs, axes,etc ..) ; reportez-vous e pour cela ` laide de SAS. a

5.2

La procdure freq e

La procdure freq est ddie ` lanalyse des variables catgorielles. Elle permet notamment de e e e a e croiser les valeurs des deux variables catgorielles et de produire un test de liaison du chi-2. En voici e une syntaxe minimaliste : proc freq data=Matable < options > ; class VarCat; var Var1; var Var2 * Var3; /* tableau crois entre Var2 et Var3 */ e run;

5.3

La procdure corr e

La procdure corr permet dtudier les corrlations linaires entre dirents groupes de variables. e e e e e La syntaxe de la procdure est la suivante : e proc corr data= Matable < options > ; var V1 V2 V3 ...Vp ; run; La procdure fournit des statistiques lmentaires pour chacune des variables, suivie dun tableau ` e ee a double entre dtaillant les corrlations entre tous les couples de variables. Par dfaut, SAS ne calcule e e e e que la corrlation (empirique) de Pearson dont nous rappelons la dnition e e (x, y) =
n i=1 (xi

x)(yi y ) (n 1)sx sy

, o` sx and sy sont les carts-types de x et y. Voici un extrait de la sortie pour deux variables nommes u e e V1 et V2 : Coefficients de corrlation de Pearson, N = 60 e Prob > |r| under H0: Rho=0 V1 V1 V1 V2 V2 1.00000 V2 0.36842 0.0038 1.00000

0.36842 0.0038

22

Le tableau donne aussi la pvavlue du test de = 0 (ici 0.0038), il sagit en fait du test de nullit de la e pente pour une rgression simple dans un cadre gaussien (statistique de Student). Dautres coecients e de corrlation linaire peuvent tre calculs par la procdure corr que lon demande alors en option : e e e e e proc corr data=Matable kendall spearman; . Attention ` ne pas surinterprter la signication des coecients de corrlation. Dune part un a e e coecient lev (proche de 1 en valeur absolue) ne traduit pas ncessairement une relation de causalit. e e e e Et dautre part, le coecient nvalue ici quune relation de type linaire ; la gure 8 illustre cette e e remarque sur des situations diverses.

Figure 8 Coecient de Pearson pour dirents jeux de donnes (source : Wikipedia) e e

5.4

La procdure ttest e

Cette procdure permet de comparer les distributions empiriques de deux chantillons gaussiens e e 2 ) et N ( , 2 ). La procdure fournit, en plus des statistiques usuelles, un de lois respectives N (1 , 1 e 2 2 test pour lgalit des variances et un test pour lgalit des moyennes. e e e e proc ttest data=Matable < options > ; class VarCat; var Var1; run; Notez que la variable catgorielle Var1 doit ne comporter que deux modalits car la procdure ne peut e e e comparer que deux groupes ` la fois 1 . La procdure fournit les statistiques pour la moyenne de chaque a e groupe, et des intervalles de conance pour chacune de ces quantits. Puis elle donne les rsultats pour e e le test dgalit des moyennes et le test dgalit des variances. Voici les sorties des tests obtenus pour e e e e ltude une variable SCORE sur deux groupes : e
Tests de Student Variable Score Score Mthode e Pooled Satterthwaite Variances Equal Unequal DDL 38 37.9 Valeur du test t -4.92 -4.92 Pr > |t| <.0001 <.0001

1. Au-del` de deux groupes, une procdure anova est plus approprie. a e e

23

galit des variances E e Variable Score Mthode e Folded F Deg. de lib. num. 19 Den DF 19 Valeur F 1.12 Pr > F 0.8081

On doit commencer par considrer lgalit des variances ; ici on accepterait facilement 1 = 2 car e e e la p-value est tr`s leve. En fonction du rsultat, on choisit lune ou lautre des deux mthodes pour e e e e e tester lgalit des moyennes (mthode Pooled si les variances sont gales et mthode Satterthwaite e e e e e sinon). Sur cet exemple on accepte lgalit des variances (par ex. ` 5%) et on rejette lgalit des e e a e e moyennes (par ex. ` 5%). a

Mod`le linaire : les procdures reg et anova e e e

Dans cette section, nous tudions les procdures associes aux mod`les linaires les plus simples : e e e e e la rgression linaire et lanova ` un facteur. La procdure glm, qui est une procdure SAS permettant e e a e e dtudier des mod`les linaires plus complexes, ne nous sera pas ncessaire dans le cadre de ce cours. e e e e

6.1

La rgression simple e

Nous tudions ici la syntaxe et les sorties dune rgression simple avec SAS sur un exemple de e e donnes relles comportant n = 11 observations. La variable FT mesure le ux du trac routier sur e e une autoroute, la variable TPA correspond ` la teneur en plomb releve sur les corces darbre ` a e e a proximit de lautoroute. Voici les lignes de code lmentaires pour rgresser la variable FT par la e ee e variable TPA avec la procdure reg : e proc reg data=TableTrafic < options > ; model FT=TPA ; plot FT*TPA ; title Rgression simple pour les donnes de trafic autoroutier; e e run; Linstruction model Y=X; permet de dclarer le mod`le, qui est ici yi = 0 + 1 x1,i + i . Les sorties e e de la procdure sont dune part un tableau de lanalyse de la variance et le listing des statistiques e estimes. e The REG Procedure Model: MODEL1 Dependent Variable: FT Flux du trafic Analyse de la variance Somme des carrs e 815966 [A2] 76493 [B2] 892459 [C2] Carr e moyen 815966 [A3] 8499.1 [B3] Valeur F 96.01 [A4]

Source Model Error Correc. Total

DDL 1 [A1] 9 [B1] 10 [C1]

Pr > F <.0001 [A5]

Root MSE Dependent Mean Coeff Var

92.19096 639.45455 14.41712

R-Square Adj R-Sq

0.9143 0.9048

24

La ligne Model correspond aux sommes de carrs expliques par la rgression, la ligne Error aux e e e sommes de carrs rsiduels et la ligne Corrected Total est la somme totale des carrs. On a donc e e e Y 2 , [B2] = Y Y 2 et [C2] = Y Y 2 . La statistique du R2 (ou coecient de [A2] = Y dtermination) est donne ` la suite du tableau de lanalyse de la variance et vaut e e a R-Square = [A2]/[C2]. Le tableau donne aussi le rsultat du test de Fisher de H0 : 1 = 0 contre 1 = 0. La valeur de la e statistique de Fisher est donne par e [A4] := [A2]/[A1] [A3] = . [B2]/[B1] [B3]

Sous H0 , cette statistique suit une loi de Fisher ` (2 1, n 2) et la p-value correspondante aux a observations est donne par [A5]. e La quantit [B3] = [B2]/[B1] est lerreur moyenne quadratique (MSE) ; il sagit de lestimateur sans e biais de 2 . La racine du MSE est donne par le Root MSE. La quantit Dependent Mean vaut Y , ceste e a `-dire la moyenne des observations Yi . Le coecient de variation (Coeff Var) est une normalisation de MSE an dobtenir une quantit sans unit : e e Coeff Var = 100 Root MSE/Dependent Mean. Options de linstruction model : model Y=X / noint; dclare un mod`le sans terme constant (intercept) : yi = 1 x1,i + i ; e e model Y=X /p; demande lachage des valeurs prdites (Yi ) ; e model Y=X /r p; demande une analyse des rsidus et fournit notamment les valeurs prdites e e ainsi que les D de Cook ; model Y=X /clb alpha = 0.05; demande lachage des intervalles de conance des param`tres e i pour le niveau de conance 1-alpha ; model Y=X /clm alpha = 0.05; demande lachage des intervalles de conance pour les esprances E(Yi ) pour le niveau de conance 1-alpha ; e model Y=X /cli alpha = 0.05; demande lachage des intervalles de conance pour les observations Yi pour le niveau de conance 1-alpha ; model Y=X /r p influence; demande un diagnostic complet de linuence des observations (voir la section 6.3). Instruction plot et abrviations : Linstruction plot FT*TPA; trace le nuage de points des varie ables FT et TPA. Loption / nomodel nostat, permet de nacher ni le R2 ni lquation de la e droite de rgression sur le graphique. Pour tracer dautres graphiques utiles ` lanalyse du mod`le de e a e rgression, on utilise les abrviations rserves par SAS aux statistiques calcules : e e e e e r. pour les rsidus ; e p. pour les valeurs prdites ; e student. pour les rsidus de Student internes (ou rsidus standardiss) ; e e e rstudent. pour les rsidus de Student externes ; e np. nombre de param`tres du mod`le (ici 2) ; e e Toutes les statistiques aches en sortie poss`dent une abrviation et peuvent tre rcupres dans e e e e e ee une table (voir la section 10.3). Pour ce qui concerne linstruction plot, on utilise les abrviations de e la faon suivante c plot r.*TPA student.*TPA r.*p. rstudent.*nqq.;

Le dernier graphique permet dacher normal probability plot des rsidus standardiss pour valuer e e e si lhypoth`se de distribution gaussienne est valide. e 25

6.2

La rgression multiple e

Pour dcrire lutilisation de la procdure reg en rgression multiple, nous tudions un jeu de e e e e donnes sur les niveaux de pollution enregistrs ` Rennes pendant lt 2001 (dapr`s Statistiques avec e e a ee e R, P.A. Cornillon et autres, PUR 2008.). La variable ` expliquer est le maximum journalier maxO3 a de la concentration en Ozone. Les 10 variables explicatives sont : maxO3 : T9, T12, T15 : temprature ` 9h, 12h, 15h ; e a Ne9, N12, N15 : nbulosit ` 9h, 12h, 15h ; e ea Vx9, Vx12, VX15 : vitesse du vent sur un axe Est-Ouest ` 9h, 12h, 15h ; a MaxO3v : concentration maximale dozone mesure la veille. e Voici un code possible pour la rgression multiple de ce jeu de donnes : e e proc reg data= Ozone; model maxO3= T9 -- maxO3v; run; Linstruction model Y=X1 -- Xp; dclare le mod`le, cest-`-dire yi = 0 + 1 x1,i + . . . + p xp,i + i . e e a La syntaxe T9 -- maxO3v; signie que toutes les variables entre T9 et maxO3v sont retenues comme variables explicatives, lordre considr correspond ` lordre de dclaration des variables (ici les variee a e ables ont t dclares dans lordre T9 T12 T15 Ne9 N12 N15 Vx9 Vx12 VX15 maxO3v). On peut aussi ee e e lister toutes les variables souhaites dans linstruction model. e Tableau de lanalyse de la variance et le listing des statistiques estimes. Le tableau e de lanalyse de la variance pour la rgression multiple se lit de la mme faon que pour le cas de la e e c rgression simple (mme dnition des sommes de carrs). Cependant les degrs de libert et les lois de e e e e e e 2 , ou encore erreur moyenne statistiques associes ne sont pas les mmes. Lestimateur sans biais de e e quadratique (MSE) est comme prcdemment gal ` [B3] = [B2]/[B1]. Les statistiques Root MSE, e e e a R-Square, Coeff Var et Dependent Mean ont les mmes dnitions que pour la rgression simple. e e e
The REG Procedure Model: MODEL1 Dependent Variable: maxO3 Analyse de la variance Somme des carrs e 67364 [A2] 20827 [B2] 88192 14.36002 90.30357 15.90194 Carr e moyen 6736.44 [A3] 206.21 [B3] Valeur F 32.67 [A4]

Source Model Error Corrected Total

DDL 10 [A1] 101 [B1] 111

Pr > F <.0001 [A5]

Root MSE Dependent Mean Coeff Var

R-Square Adj R-Sq

0.7638 0.7405

Le test de Fisher considr ici est celui de H0 : i, i = 0 contre H1 :i, i = 0 ou encore H0 : ee yi = + i contre H1 : yi = 0 + 1 x1,i + . . . + p xp,i + i . La valeur de la statistique de Fisher est donne par e [A2]/[A1] [A3] [A4] := = . [B2]/[B1] [B3] Sous H0 , cette statistique suit une loi de Fisher ` (p 1, n 2) degrs de libert (ici p = 10), et a e e la p-value correspondant aux observations est donne en [A5]. Il est naturel que cette p-value soit la e plupart du temps tr`s faible puisque le mod`le sous H0 est gnralement beaucoup trop rudimentaire e e e e pour expliquer correctement la variable Y . 26

Tableau de lestimation des param`tres i . e


Param`tres estims e e Rsultat estim e e des param`tres e 12.24442 -0.01901 2.22115 0.55853 -2.18909 -0.42102 0.18373 0.94791 0.03120 0.41859 0.35198 Erreur type 13.47190 1.12515 1.43294 1.14464 0.93824 1.36766 1.00279 0.91228 1.05523 0.91568 0.06289

Variable Intercept T9 T12 T15 Ne9 Ne12 Ne15 Vx9 Vx12 Vx15 maxO3v

DDL 1 1 1 1 1 1 1 1 1 1 1

Valeur du test t 0.91 -0.02 1.55 0.49 -2.33 -0.31 0.18 1.04 0.03 0.46 5.60

Pr > |t| 0.3656 0.9866 0.1243 0.6266 0.0216 0.7588 0.8550 0.3013 0.9765 0.6486 <.0001

Ce tableau renseigne les valeurs prises par les estimateurs i , les carts-type estims de ces derniers e e (Erreur type) ainsi que la statistique de Student et la p-value pour chacun des tests de Student de i = 0 contre i = 0. Options de linstruction model. Les options que nous avons dj` vues pour la rgression simea e ple restent encore bien sr valables pour la rgression multiple. Voici quelques autres options plus u e spciques ` la rgression multiple : e a e CP ache la statistique du Cp de Mallows ; COVB ache la matrice des variances-covariances du vecteur des param`tres = (0 , 1 , . . . , p ) ; e DW ache la statistique de test de Durbin-Watson (pour rparer une auto-corrlation ventuelle e e e dans les rsidus) ; e VIF ache le variation ination factor ; Instruction plot et abrviations : Cf. la rgression simple. e e Algorithmes de Slection. Le choix dune mthode de slection de variables se renseigne en option e e e de linstruction model : model maxO3= T9 -- maxO3v / selection= ..... ;

Loption selection= f correspond ` lalgorithme forward. Il est possible de xer le niveau du test a dentre dune variable dans lalgorithme (ici ` 0.05%) avec loption sle : e a model maxO3= T9 -- maxO3v /selection= f sle=.05 ; De mme pour les algorithmes des slections backward et stepwise : e e model y = T9 -- maxO3v / selection=b sls=.1; model y = T9 -- maxO3v / selection=stepwise sle=.15 sls=.15; o` loption sle permet de rgler le niveau du test de dltion (retrait) dune variable. u e ee ` la dirence des algorithmes prcdents, les mthodes du type all subset method sappuient A e e e e sur des calculs dans tous les mod`les pour ne conserver quun (ou quelques) meilleur(s) mod`le(s) e e parmi tous les mod`les de mme taille (mme nombre de variables). Par exemple, avec linstruction e e e

27

model maxO3 = T9 -- maxO3v / selection=rsquare start=1 stop=7 best=2 aic bic cp; le logiciel recherche parmi tous les mod`les ` p variables les deux mod`les qui maximisent le R2 , pour e a e p variant entre 1 ` 7. La sortie obtenue renseigne aussi les valeurs des crit`res AIC, BIC ainsi que le a e Cp de Mallows.
R-Square Selection Method Nombre dans le mod`le e R carr e

C(p)

AIC

BIC

Variables du mod`le e

1 0.6151 56.6274 643.9772 644.4941 T12 1 0.6000 63.0891 648.2891 648.6691 T15 -------------------------------------------------------------------------------2 0.7012 21.7729 617.5930 618.8218 T12 maxO3v 2 0.6883 27.3072 622.3419 623.3318 T15 maxO3v -------------------------------------------------------------------------------3 0.7520 2.0744 598.7482 601.1889 T12 Ne9 maxO3v 3 0.7425 6.1095 602.9297 605.0665 T15 Ne9 maxO3v -------------------------------------------------------------------------------4 0.7622 -0.3065 596.0244 599.0173 T12 Ne9 Vx9 maxO3v 4 0.7591 1.0158 597.4713 600.3282 T12 Ne9 Vx12 maxO3v -------------------------------------------------------------------------------5 0.7631 1.3341 597.6278 600.8687 T12 Ne9 Vx9 Vx15 maxO3v 5 0.7627 1.4737 597.7821 601.0054 T12 Ne9 Vx9 Vx12 maxO3v -------------------------------------------------------------------------------6 0.7636 3.1131 599.3834 602.8675 T12 T15 Ne9 Vx9 Vx15 maxO3v 6 0.7632 3.2536 599.5388 603.0022 T12 Ne9 Ne12 Vx9 Vx15 maxO3v -------------------------------------------------------------------------------7 0.7638 5.0344 601.2961 605.0090 T12 T15 Ne9 Ne12 Vx9 Vx15 maxO3v 7 0.7636 5.1037 601.3729 605.0741 T9 T12 T15 Ne9 Vx9 Vx15 maxO3v

6.3

Diagnostic de linuence des observations

En plus des rsidus et des rsidus standardiss, dautres statistiques peuvent tre calcules par e e e e e SAS pour dterminer linuence de chacune des observations sur la procdure de rgression. On utilise e e e pour cela la syntaxe model Y=X /r p influence; dans la procdure reg. e On dit quune observation i a un fort eet de levier si celle-ci est situe loin du reste des e observations dans le nuage des variables explicatives. On parle alors de x-outlier. Un tel point se caractrise par un coecient hii relativement lev (proche de 1), hii tant le i-`me coecient de e e e e e la diagonale de la matrice X(X X)1 X . SAS nomme Hat Diag H ce coecient. On consid`re e p+1 gnralement quil y a un eet levier si hii > 2 n o` p dsigne le nombre de variables dans la e e u e rgression. e Si une observation i pour laquelle la variable ` expliquer yi est situe loin de sa valeur prdite a e e yi par la rgression, ce point est appel y-outlier. Dans ce cas, le rsidu studentis e e e e ri = ei S 1 hii

o` ei dsigne le rsidu et S 2 lestimateur de la variance, sera plus lev que les autres (en valeur u e e e e absolue). SAS nomme Student Residual ce coecient. 28

Une observation qui a un fort eet levier et qui est aussi un y-outlier aura une forte inuence sur lestimation des param`tres du mod`le de rgression. On doit donc prter une attention particuli`re ` e e e e e a ces points, et ventuellement les retirer de la base de donnes si lon estime quils correspondent ` des e e a donnes aberrantes. Pour identier ces observations inuentes, on utilise la statistique du D de Cook e dnie par e r2 hii Di = i . p + 1 1 hii Usuellement on consid`re quune observation est inuente si son D de Cook dpasse 1, mais ceci nest e e pas une r`gle, et il est surtout important de comparer les Di entre eux. e Pour tudier linuence des observations, on peut aussi sappuyer sur les statistiques des rsidus e e studentiss externes (RStudent pour SAS). Cette statistique est dnie par e e ti = e i 2 S(i) 1 hii

2 o` ei dsigne le rsidu et S(i) lestimateur de la variance calcule sans lobservation i. On pourra u e e e consulter la page Inuence Diagnostics de SAS pour plus de dtails sur ces statistiques. e

6.4

La procdure anova pour un facteur e

Cette procdure est ddie aux mod`les linaires de type anova pour lesquels une variable continue e e e e e est explique par une ou plusieurs variables catgorielles. Nous considrons ici le cas le plus simple e e e dune seule variable catgorielle ` l modalits ; cest-`-dire le mod`le e a e a e Yij = i + ij , i = 1 . . . l, j = 1, . . . ni .

Nous illustrons ltude de ce mod`le sur lexemple dune variable nomme score dont nous disposons e e e dun chantillon pour trois groupes 1,2 et 3 distincts (l = 3) de mme eectif 20. Voici un code possible e e pour la procdure anova. e proc anova data=Matable < options >; class groupe; model Score = groupe; means groupe / hovtest ; run; Linstruction means permet ici dobtenir les statistiques sur les moyennes et leurs intervalles de conance pour chacun des groupes. Loption hovtest dans linstruction means fournit en plus un test dgalit des variances sur lensemble des groupes. En plus de ces informations, nous obtenons en sortie e e de la procdure un tableau de lanalyse de la variance : e
Source Model Error Corrected Total DDL 2 [A1] 57 [B1] 59 [C1] Somme des carrs e 3286.033 [A2] 8689.300 [B2] 11975.333 [C2] Somme des Carr moyen e 1643.02 [A3] 152.44 [B3] Valeur F 10.78 [A4] Pr > F 0.0001 [A5]

R carr e 0.274400

Coeff Var 27.03682

Racine MSE 12.34682

Score Moyenne 45.66667

29

Comme dans le cas de la rgression linaire, la ligne Model correspond aux sommes de carrs expliqus e e e e par la rgression, la ligne Error aux sommes de carrs rsiduels et la ligne Corrected Total est la e e e ni 2 e e e somme totale des carrs. Ainsi, [A2] = l e i=1 j=1 (Yi Y ) dsigne la somme des carrs expliqus, ni l ni l 2 est la somme 2 celle des carrs rsiduels et [C2] = [B2] = i=1 j=1 (Yij Yi ) e e i=1 j=1 (Yij Y ) 2 a donc encore pour valeur [A2]/[C2]. Le tableau donne aussi le totale des carrs. Le coecient du R e rsultat du test de Fisher de H0 : 1 = 0. La valeur de la statistique de Fisher est dnie par e e [A4] := [A2]/[A1] [A3] = . [B2]/[B1] [B3]

Sous H0 , cette statistique suit une loi de Fisher ` (l 1, n l) et la p-value correspondant aux a observations est donne par [A5]. Pour cet exemple on rejetterait donc lgalit des moyennes pour e e e des niveaux standards de quelques pourcents. Loption t cldiff dans linstruction means permet danalyser les dirences entre les estimateurs e pour chaque couple de groupes. Pour eectuer des regroupements entre les dirents niveaux de la e variable catgorielle (ici groupe), le test de Fisher fourni par le tableau de lanalyse de la variance nest e donc pas susant. Eectuer un test de comparaison des moyennes entre les dirents niveaux signie e eectuer un test multiple sur les toutes les paires de niveaux possibles. Pour cela, on peut utiliser la procdure de Bonferrroni en ajoutant loption bon dans linstruction means. Pour rgler le niveau du e e test, on peut ajouter loption alpha : means groupe / bon alpha=.05 ;

La procdure de Tukey est une alternative ` la procdure de Bonferroni. Elle contrle lerreur de e a e o type I (i.e. rejeter ` tort) sur lensemble de tous les tests eectus ; cette procdure est donc moins a e e conservative que celle de Bonferroni et trouvera plus de dirences signicatives. Sur cet exemple, on e obtient pour Tukey le tableau suivant :
Tukey Groupement A A A B Moyenne 52.350 49.300 35.350 N 20 20 20 groupe groupe 2 groupe 3 groupe 1

La procdure aboutit ` eectuer un regroupement : le nouveau groupe A contient les groupes 2 et e a 3, le nouveau groupe B ne contient que le groupe 1. Enn, pour produire des boxplots des moyennes pour chaque niveau, on peut insrer la proc anova e entre les commandes ods graphics on; et ods graphics off; comme expliqu ` la section 10.3. ea

7
7.1

Mthodes factorielles e
Les procdures SAS e
La procdure princomp e

7.1.1

La procdure princomp est la procdure SAS ddie ` lAnalyse en composantes principales : e e e e a proc princomp data=Sashelp.cars out=ACPPrincCars outstat=ACPCars N=6 < cov >; var MSRP--Length ; run; Cette procdure comporte des options parmi lesquelles : e 30

N= : indique le nombre de composantes principales calcules. e outstat= : cre une table contenant les moyennes, les carts-types, les corrlations ou covariances e e e des variables initiales, ainsi que les valeurs propres et vecteurs propres de lACP. out= : cre une table contenant les donnes initiales et les composantes principales. e e Par dfaut SAS produit une ACP norme, cest-`-dire pour la matrice des corrlations. On peut e e a e demander une ACP sur la matrice de covariance grce ` loption cov (peu recommand en a a e gnral). e e Les sorties SAS comportent les statistiques lmentaires de chaque variable, la matrice de corrlation ee e des variables, une description des valeurs propres :
Valeurs propres de la matrice de corrlation e Valeur propre 1 2 3 4 5 6 6.52749991 1.83468328 0.74691419 0.34739297 0.20917348 0.13017000

Diffrence e 4.69281663 1.08776910 0.39952121 0.13821949 0.07900348

Proportion 0.6527 0.1835 0.0747 0.0347 0.0209 0.0130

Cumul e 0.6527 0.8362 0.9109 0.9456 0.9666 0.9796

Les valeurs propres de la matrice de corrlation permettent de mesurer la quantit de variance porte e e e par chaque facteur principal. En dsignant par k la k-i`me valeur propre, la k-i`me dirence est e e e e e e k k+1 , la k-i`me proportion vaut k /Inertie = k / p k et le k-i`me cumul est dni par e k=1 p k k r=1 r / r=1 r /Inertie = k=1 k . Les sorties dcrivent aussi les composantes principales : e
Vecteurs propres Prin1 MSRP Invoice EngineSize Cylinders Horsepower MPG_City MPG_Highway Weight Wheelbase Length 0.27789 0.27591 0.36136 0.35375 0.34141 -.33025 -.32775 0.34450 0.26664 0.26092 Prin2 0.48158 0.48449 -.05001 0.05394 0.26623 0.06522 0.09153 -.20773 -.45853 -.43705 Prin3 0.20751 0.20921 0.07375 0.10402 0.06128 0.54143 0.58232 -.05346 0.32105 0.39364 Prin4 -.30092 -.30809 0.52306 0.59020 0.11188 0.19570 0.13719 -.09145 -.24418 -.23438 Prin5 0.05966 0.05883 0.00962 -.03247 -.25580 0.37165 -.03803 0.76581 0.08806 -.43885 Prin6 -.18421 -.18341 0.00590 -.37424 0.78206 0.13621 0.01169 0.01798 0.29556 -.27263

Chaque colonne permet de dnir une composante principale comme combinaison linaire des variables e e initiales. Par exemple pour la premi`re composante : 1 = 0.27789 MSRP + 0.27591 Invoice + . . . + e 0.26092 Length. Le k-i`me vecteur uk de ces coecients (i.e. la k-i`me colonne) est un vecteur propre e e norm de la matrice de corrlation (ou de covariance) des donnes. e e e Les sorties nachent ni les contributions ni les qualits de reprsentation des individus et des e e variables. La procdure princomp nest donc pas susante pour analyser de faon prcise lACP dun e c e tableau de donnes. Des macro-programmes SAS supplmentaires peuvent tre utilises pour prciser e e e e e lACP. 7.1.2 La procdure corresp e

La procdure corresp permet deectuer des analyses des correspondances simples et multiples. e Cette section en prsente les principales commandes, consultez laide pour plus de dtails sur les e e 31

fonctionnalits de cette procdure. Lutilisateur peut fournir en entre de cette procdure un tableau e e e e de contingence ou un tableau de donnes brutes. e Dclaration par tableau de contingence. Un tableau de contingence croise les modalits de deux e e variables catgorielles et renseigne le nombre doccurrences rencontres dans lchantillon tudi pour e e e e e chaque couple de modalits des deux variables. On dclare dans ce cas les modalits de la variable en e e e colonnes apr`s linstruction var (ce sont des variables de la table). Si les modalits de lautre variable e e sont listes dans lune des variables de la table, on peut lindiquer avec linstruction id, comme cest e le cas dans lexemple ci-dessous pour la variable yeux. Dans le cas dune analyse des correspondances multiples, on peut fournir ` la procdure un tableau a e de Burt et on utilise alors linstruction var en dclarant les modalits des variables. Dans un tableau e e de Burt, on croise toutes les modalits dans les colonnes et les lignes, toutes les modalits sont donc e e dclares ` la suite de linstruction var et on nutilise alors pas linstruction id. e e a Voici un exemple de code lmentaire pour une AFC simple tir de louvrage Statistiques Exee e ploratoire Multidimensionnelle, Lebart(2006) : data ChevYeux; infile datalines dlm=,; input yeux $ chev_brun chev_chatain chev_roux chev_blond; datalines; marron,68,119,26,7 noisette,15,54,14,10 vert,5,29,14,16 bleu,20,84,17,94 ; run; proc corresp data=ChevYeux; var chev_brun chev_chatain chev_roux chev_blond; id yeux; run; La procdure produit tout dabord une dcomposition de linertie et de la statistique de khi2 : e e
Valeur Inertie singuli`re principale e 0.45692 0.14909 0.05097 Total 0.20877 0.02223 0.00260 0.23360 Pourcent. cumul e 18 36 54 72 90 ----+----+----+----+----+--89.37 ************************* 98.89 *** 100.00

Khi-2

Pourcentage 89.37 9.51 1.11 100.00

123.593 13.158 1.538 138.290

Degrs de libert = 9 e e

Les sorties dtaillent ensuite les coordonnes, contributions et qualits de reprsentation des prols e e e e lignes et prols colonnes pour chacun des axes. Dclaration par une table de donnes brutes (raw data). Lorsque lon dispose dun jeu de e e donnes sous la forme individus en lignes et modalits en colonnes, on utilise alors linstruction tables e e comme dans lexemple suivant d AFC simple :

32

data Neighbor; input Name $ 1-10 Age $ datalines; Jones Old Male Short Smith Young Female Tall Kasavitz Old Male Medium Delafave Old Male Tall Singer Young Male Tall ... ;

12-18 Sex $ 19-25 Height $ 26-30 Hair $ 33-38; White Brown Brown Brown Brown

proc corresp observed data=Neighbor; tables Height, Hair; run; Notez la virgule entre les deux variables dans linstruction tables qui permet de dclarer la variable e en colonnes et la variable en lignes. Loption observed ache ici le tableau de contingence des deux variables tudies. e e Voici un exemple pour une analyse des correspondances multiples : proc corresp observed mca data=Neighbor; tables Sex Height Hair ; run; Cette fois toutes les modalits de ces variables sont en colonnes, loption mca signale quune analyse e multiple est demande. Loption observed ache ici le tableau de Burt de lensemble des variables e tudies. e e Linstruction Weight. Linstruction Weight permet daecter un poids ` chacune des observations. a Ceci est notamment utile lorsque lon dispose dune table de contingence enregistre en lignes, comme e dans lexemple suivant : data ChevYeux2; infile datalines dlm=,; input yeux $ cheveux $ comptage; datalines; marrons,bruns,52 marrons,blonds,7 marrons,chatain,23 bleus,bruns,15 bleus,blonds,28 bleus,chatain,11 verts,bruns,17 verts,blonds,3 verts,chatain,15 ; run; La variable Comptage indique ici leectif pour chaque couple de variables. Dans la procdure qui suit, e SAS consid`re chaque ligne comme une observation et lui aecte le poids correspondant ` la valeur de e a la variable renseigne dans linstruction de weight : e 33

proc corresp data=ChevYeux2; tables yeux, cheveux ; weight comptage; run; Principales options de la procdure corresp. e OUTC= : table de sortie contenant les coordonnes et les rsultats de lanalyse des correspone e dances. OUTF= : table de sortie contenant les frquences et les tableaux croiss de lanalyse. e e short : ache uniquement un rsum des sorties. e e observed : ache un tableau des frquences (tableau de contingence, tableau disjonctif complet e ou tableau de Burt). mca : eectue une analyse des correspondances multiples. DIM=n : limite le nombre daxes. Remarque : en encadrant la procdure corresp par les instructions ods graphics on; et ods graphics off; e on peut produire automatiquement un graphique du premier plan factoriel (voir la section 10.3).

7.2

Macro-programmes pour lanalyse de donnes e

En complment des procdures classiques SAS pour lanalyse de donnes, les macro-programmes e e e prsents ci-dessous sont des outils supplmentaires tr`s utiles. Pour la manipulation des macroe e e e programmes en gnral, voir la section 9.3 plus bas. e e Les macro-programmes de P. Besse pour lACP. Les macro-programmes de P. Besse sont disponibles sur la page http://www.math.univ-toulouse.fr/~besse/enseignement.html . Leur usage est dtaill dans le polycopi SAS de lauteur. Ces macros peuvent tre utilises sous tous e e e e e les syst`mes dexploitation (et donc ` lUTES) puisquil sut de tlcharger leur code SAS de les e a ee compiler. En plus des sorties de la procdure princomp, ces macros fournissent les contributions et les e qualits de reprsentation des individus, ainsi que les corrlations entre variables initiales et facteurs. e e e Elles permettent de tracer facilement les plans factoriels pour les individus et les cercles de corrlations. e En revanche elles ne permettent pas de reprsenter des individus ou des variables supplmentaires. e e Les macro-programmes de lINSEE. Des macros-programmes pour lanalyse de donnes dvelopps e e e par lINSEE peuvent tre tlchargs sur la page e ee e
http://www.insee.fr/fr/methodes/default.asp?page=outils/analyse_donnees/accueil_analyse.htm .

Une documentation dtaille disponible sur cette page permet de se familiariser facilement avec leur e e utilisation, des exemples illustratifs sont notamment dtaills dans le document. Les macros sont dj` e e ea compiles ; il sut donc de les enregistrer dans un rpertoire que lon dclarera comme librairie pour e e e pouvoir les utiliser (voir la section 9.3). Notez que ces macros ne sont malheureusement utilisables que sous le syst`me dexploitation Windows (on ne peut donc pas les utiliser ` lUTES). e a

Exploration interactive de donnes e

Le module SAS/Insight est un outil dynamique pour lanalyse exploratoire et graphique dun jeu de donnes. Il se prsente sous la forme dune interface presse-boutons permettant notamment e e 34

dexaminer les distributions univaries, de visualiser les donnes et de construire des mod`les utilisant e e e la rgression, lanalyse de la variance et le mod`le linaire gnralis. Pour ce faire, lutilisateur dispose e e e e e e dun syst`me de menus droulants et de boutons pour eectuer ltude statistique sans avoir ` crire e e e ae de code SAS dans la fentre Program Editor. Lappel de SAS/Insight seectue de la faon suivante : e c Explorer solution tools analysis Interactive Data Analysis.

Macros variables et macro-programmes

Le macro-langage SAS permet ` lutilisateur de crer ses propres programmes, cest-`-dire ses a e a propres procdures. e

9.1

Macro-variables

Une macro-variable est un objet SAS dni par un nom et une valeur. Pour crer une macroe e variable, le plus simple est dutiliser linstruction %let : %let Montitre = Etude de la table Cars; On peut ensuite utiliser cette macro-variable dans un code SAS en utilisant le symbole &. Les macrovariables sont par exemple tr`s utiles lorsque lon souhaite appliquer successivement une mme squence e e e de procdures ` plusieurs tables. Il sut alors dcrire la suite des procdures en utilisant les macroe a e e variables, puis de ne modier que le contenu de ces derni`res en dbut de code : e e %let TableDeMonCode = Sashelp.cars; proc print data = &TableDeMonCode; run; proc univariate data = &TableDeMonCode; var Weight; run; proc reg data = &TableDeMonCode; model Weight = Horsepower; run; Si lon dispose dune seconde table Cars2 (comportant elle aussi des variables Weight et Horsepower), il sut de modier la premi`re ligne %let TableDeMonCode = Cars2; pour appliquer la suite de e procdure ` Cars2. e a Lorsque lon souhaite donner comme contenu ` une macro-variable une quantit rcupre dans a e e ee une table, on utilise linstruction call symput, voir laide de SAS pour plus de dtails sur cette e instruction.

9.2

Macro-programmes

Un macro-programme est un programme dni par lutilisateur grce au langage macro de SAS. e a Pour cela, on crit tout dabord le code du macro-programme en respectant la syntaxe suivante : e %MACRO MaMacro(param1,param2,...,paramp) < options >; source du macro-programme : suite dinstructions de macro-langage %MEND MaMacro;

35

Voici un exemple plus concret de macro-programme : %MACRO AnalyseTable(Matable,MaVar,OptStats); proc print data = &MaTable; run; proc univariate data = &MaTable &OptStats; Var &MaVar; run; %MEND AnalyseTable; Notez que les param`tres du macro-programme sont utiliss dans le corps de celui-ci avec le caract`re e e e &. Il faut ensuite compiler ce programme en soumettant ` SAS ces lignes de code. Lappel de ce a programme se fait ensuite de la faon suivante : c %AnalyseTable(Sashelp.cars,Weight,cibasic Mu0=4 alpha=0.05); Il est possible dassigner des valeurs par dfaut ` certains param`tres du macro-programme en e a e utilisant des param`tres mots-cls. Par exemple, si lon remplace la premi`re ligne du code prcdent e e e e e par %MACRO AnalyseTable(Matable, MaVar= ,OptStats= cibasic Mu0=2); le param`tre OptStats prendra par dfaut la valeur cibasic Mu0=2. Nous avons aussi utilis ici un e e e param`tre mot cl pour le second param`tre, mais sans valeur par dfaut. Pour pouvoir appeler un e e e e macro-programme crit avec des param`tres mots-cls, il faut en conna les noms : e e e tre %AnalyseTable(Sashelp.cars,MaVar=weight,OptStats= normal); Toutes les boucles, structures conditionnelles, etc. que nous avons vues pour la manipulation des donnes, existent pour les macro-programmes mais sous une forme spcique : il sut en fait de e e rajouter un symbole % devant les instructions que lon souhaite utiliser. Par exemple pour les structures conditionnelles : %if condition %then %do; suite dinstructions %end; %else %do; autre suite dinstructions %end;

9.3

Compilation, stockage et excution dun macro-programme e

La compilation dun macro-programme stocke par dfaut celui-ci dans le catalogue Sasmacr de e la librairie Work. Pour stocker un macro-programme dans le catalogue Sasmacr dune biblioth`que e dclare de notre choix, on commence par signaler pour la session courante que la biblioth`que en e e e question (ici MaBibli) est utilise pour stocker des macro-programmes : e options SASMSTORE=MaBibli MSTORED; Il faut ensuite ajouter loption Store dans la premi`re ligne du code du macro-programme : e %MACRO MaMacro(param1,param2,...,paramp) / Store;

36

Les macros disponibles dans une librairie sont visibles depuis la fentre dexploration de SAS. De plus, e il est possible depuis lexplorateur de copier une macro dun catalogue Sasmacr vers un autre catalogue dune biblioth`que dclare. e e e Lors dune session ultrieure, il nest pas ncessaire de compiler de nouveau le macro-programme e e si celui-ci a t stock dans le catalogue dune librairie (ici MaBibli). Avant dexcuter le macroee e e programme, on dclare la librairie et on signale quelle peut contenir des macros avec la mme option e e que prcdemment : e e libname MaBibli "chemin du rpertoire physique"; e options SASMSTORE=MaBibli MSTORED;

10
10.1

Achage et dition des sorties, syst`me ODS e e


Achage des sorties

Il est possible de produire des sorties sous la forme de listings et/ou sous la forme de sorties .html. Pour la version 9.3, cette derni`re solution qui est active par dfaut. De plus, la commande e e e ods graphics on (voir plus bas) est active elle aussi par dfaut : des graphiques seront donc produits e automatiquement pour la plupart des procdures. La fentre reprsente dans la gure 9 est disponible e e e e depuis le menu Outils Options Prefrences Sorties. Elle permet de choisir entre les deux formes e de sorties, et dindiquer o` les chiers .html sont enregistrs. On peut aussi activer dans cette fentre u e e loption ods graphics.

Figure 9 Fentre de paramtrage des sorties. e e

10.2

Sauvegarde directe de sorties depuis un listing

Si les sorties sont gnres sous la forme dun listing : e ee pour sauvegarder un listing de sorties sous une forme brute : activer la fentre des sorties e clic droit chier enregistrer sous sauvegarder les listings sous le format dsir (.rtf par e e exemple). Pour sauver un graphique dans un format jpg ou pbm : activer le graphique concern clic e droit chier export as image sauvegarder les listings sous le format dsir. e e

10.3

Description du syst`me ods (Output Delevry System) e

Le syst`me ods ore trois principales fonctionnalits ; il permet e e 37

dditer un rapport des sorties sous la forme dun chier .rtf ou .html ; e de crer automatiquement des sorties graphiques pour certaines procdures ; e e de crer des tables contenant les statistiques calcules par les procdures. e e e Edition de sorties .html ou .rtf. Il est possible dditer les sorties SAS sous forme dun chier e .rtf ` laide du syst`me ods. Le principe est le suivant : il sut dentourer la suite des procdures SAS a e e que lon souhaite diter par les commandes ods : e ods rtfl file = "NomFicher.rtf" encha^nement de phases data et de phases proc gnrant des e e ods rtf close;

sorties

Toutes les sorties des direntes procdures insres entre les deux lignes ods seront alors copies dans e e ee e le chier toto.rtf. Les graphiques ventuellement cres sont insrs dans le document .rtf. Les options e e ee noproctitle et bodytitle de la commande ods permettent respectivement domettre le nom de la procdure dans le rapport, et de placer le nom de la procdure dans le corps du document .rtf plutt e e o que dans la tte de page du document. e Il est aussi possible dditer les sorties dans une page .html, il sut pour cela de remplacer rtf par e html dans linstruction ods. Plus simplement on peut utiliser la fentre de paramtrage (voir la gure e e 9). Rappelons que depuis la version 9.3, le syst`me est plac par dfaut dans la conguration de sorties e e e .html, mais il faut cependant prciser un rpertoire dans la fentre de paramtrage si lon souhaite e e e e conserver les chiers .html. Les sorties .html sachent les unes ` la suite des autres, pour eacer a toutes les sorties prcdentes on peut utiliser les instructions suivantes (lorsque lon ne se proccupe e e e pas denregistrer les sorties .html) : ods html close; ods html; Graphiques ods. Le syst`me ods permet de dresser automatiquement une srie de graphiques e e associs ` certaines procdures, cest par exemple le cas pour les procdures reg, anova, princomp et e a e e corresp . La syntaxe gnrale est la suivante : e e ods graphics on; proc truc; ... run; ods graphics off; Par dfaut, ` partir de la version 9.3 cette instruction est active. Si les sorties sont demandes sous e a e forme .html, les chiers de ces graphiques peuvent tre rcuprs en indiquant un rpertoire dans la e e ee e fentre de paramtrage (voir la gure 9). Si les sorties sont obtenues sous la forme de listing, les chiers e e sont cres dans le rpertoire de travail. Pour changer le format des chiers des graphiques, on utilise e e loption gnrale : goptions device = JPEG; ou tout autre format adapt (PS,GIF,...). Notez que le e e e format jpeg est prfrable pour des sorties .rtf et htlm. ee Cration dune table associe aux rsultats dune procdure. Le syst`me ods permet de e e e e e rcuprer en sortie dune procdure les quantits calcules sous la forme dune table. Par exemple, e e e e e pour crer la table calcul contenant les rsultats de la procdure ttest : e e e proc ttest data=Matable class Varcat; 38

var Var1; ods output statistics = calcul; run; Pour conna tre le nom-cl ` utiliser pour une procdure donne (ici statistics pour la procdure e a e e e ttest), consulter les pages daide de la procdure concerne. e e

39