Académique Documents
Professionnel Documents
Culture Documents
Prsentation
LANGAGE SAS
Axelle Chauvet-Peyrard
Axelle Chauvet-Peyrard
Anne 2006-2007
LANGAGE SAS
Prsentation
Prsentation
SAS (Statistical Analysis System) est un logiciel de traitement de linformation conu en 1976 par une firme amricaine, The SAS Insitute. Il est organis en de multiples modules ; outre le module de base, on abordera ici principalement les modules SAS/STAT (procdures de traitement statistique) et SAS/GRAPH (procdures graphiques). Cet ouvrage rpond deux objectifs : Initier les dbutants au langage SAS, en en expliquant la logique et en prsentant la syntaxe des principales instructions et fonctions de base. Fournir un outil de travail concret, en rfrenant de nombreuses procdures. Pour chaque procdure, on dcrit ce quelle fait ainsi que ses principales options et instructions ; des exemples dutilisation sont ajouts, ainsi quune aide linterprtation des sorties gnres. Louvrage est particulirement adapt la version 8 de SAS. Certains des outils ou des procdures abords peuvent ne pas tre appliqus des versions antrieures du logiciel, ou bien des versions partielles (dans lesquelles il manquerait les modules associs ces outils). Cependant, chaque fois que cela est ncessaire, on proposera des alternatives aux outils prsents.
Annexes
Ces annexes doivent permettre une recherche aise dans les pages du polycopi. Une double approche est propose : Un index alphabtique des concepts statistiques et mots-cls SAS abords dans louvrage. Un index thmatique sur le modle de : je veux faire a voici comment le faire .
Axelle Chauvet-Peyrard
Anne 2006-2007
LANGAGE SAS
Prsentation
Sommaire
Prsentation Sommaire INTRODUCTION 1 3 7
7 7 8 8 8 9 10 10 11 13 14 14 14 14 15 16 16 16 17 18 19 19 19 20 21 22 22 23 23 23 23 23 24 24 24 24 25 25 25 25 26 26 26 28 29 29 29 30
LTAPE DATA
La logique ligne par ligne de ltape DATA Tableau rcapitulatif des oprateurs Recopie dune table Slection de variables et dobservations La recopie dune table : Instruction SET La slection de variables : Instructions KEEP et DROP Le filtrage dobservations : Instructions WHERE, DELETE et OUTPUT Remarques sur linstruction SET Les attributs des variables Les formats : Connatre les attributs dune variable : Modifier les attributs obligatoires dune variable : Modifier les attributs facultatifs dune variable : Concatnation et fusion de tables La concatnation de tables : Instruction SET Linterclassement de deux tables : Instructions SET et BY Distinction des donnes selon leur table dorigine La fusion de tables : Instruction MERGE La mise jour dune table partir des donnes dune autre table : Instruction UPDATE Remarques sur linstruction BY : Boucles DO et conditions IF Les conditions IF : Le bloc SELECT : Les boucles finies : (exemple pour 10 itrations) Les boucles tant que : Les fonctions SAS Fonctions de manipulation de chanes de caractres : Fonctions de manipulation de dates : Fonctions mathmatiques : Fonctions alatoires : Fonctions statistiques : Probabilits : Fonctions particulires : Calculs de variables Gnrer des distributions alatoires Calculer des cumuls Les vecteurs (array) de variables Gestion des erreurs et arrt conditionnel dune tape DATA Afficher des messages derreur : Instruction ERROR Stopper une tape DATA : Instruction STOP Etape DATA sans cration de table
Axelle Chauvet-Peyrard
Anne 2006-2007
LANGAGE SAS
Prsentation
PARTIE II
31 31 31 33 33 34 35 35 36 37 37 37 37 38 38 38 38 40 40 41 42 42 42 42 43 43 43 43 45 45 46 46 46 47 49 49 49 50 51 51 51 52 52 53 54 54 55 56 57 62 63 65 66 66 66 67 68 68 68 69 73 73
Anne 2006-2007
LTAPE PROC
Structure gnrale dune tape PROC Partie II A Procdures de manipulation des donnes Quelques notions sur lImportation / Exportation de donnes Connatre les proprits dune table avec la PROC CONTENTS Options : Lecture de sortie : Imprimer une table dans la fentre Output avec la PROC PRINT Les options : Trier une table avec la PROC SORT Les options : Transposer un tableau avec la PROC TRANSPOSE Les options : Les instructions : Exemple : Faire des jointures de tables avec la PROC SQL Fusions contrles et jointures : Un autre exemple dutilisation de la PROC SQL Crer un format avec la PROC FORMAT Exemple : Les options : Application du format : Attribuer des rangs aux observations avec la PROC RANK Les options : Les instructions : Exemple : Partie II B Procdures de traitement statistique Tableaux de frquence et de contingence avec la PROC FREQ Les options : Linstruction TABLES et ses options : Lecture de sorties : Statistiques descriptives quantitatives avec la PROC MEANS Les options : Les instructions : Lecture de sorties : Des tableaux de statistiques descriptives avec la PROC TABULATE Les instructions : Exemples : Les options : Liste des mots-cls statistiques : Lecture de sorties : Statistiques univaries et distributions avec la PROC UNIVARIATE Les options : Les instructions : La sortie standard et les mots-cls associs chaque statistique dite : Exemple : Les corrlations avec la PROC CORR Les instructions : Lecture de sortie : Test dgalit des moyennes avec la PROC TTEST Les options : Les instructions : Lecture dune sortie standard : Rgression linaire multiple avec la PROC REG Quelques options de la PROC REG : Quelques instructions : Quelques options de linstruction MODEL : Liste des grandeurs que lon peut rcuprer dans PLOT ou dans OUTPUT (et mots-cls associs) : Lecture de sorties :
Axelle Chauvet-Peyrard
LANGAGE SAS
Prsentation
Rgression sur variables catgorielles avec la PROC LOGISTIC Les instructions : Les options : Lecture de sorties standards : Modlisation plusieurs quations avec la PROC SYSLIN et la PROC MODEL Les instructions : Exemple : Les options : Quoi de neuf avec la PROC MODEL ? Partie II C Procdures graphiques Graphiques pour variables qualitatives avec la PROC GCHART Les instructions : Les options : Exemple : Graphiques pour variables quantitatives avec la PROC GPLOT Les options : Les instructions : Quelques options des instructions PLOT et BUBBLE : Exemples : Des botes moustaches avec la PROC BOXPLOT Les instructions Les options PARTIE III
81 81 82 83 85 85 86 86 86 87 87 88 88 88 89 91 91 91 92 92 95 95 95 96 96 97 97 98 99 100 100 101 101 101 101 101 101 102 103 103 104 104 104 104 104 107 107 107 107 107 107 108
Axelle Chauvet-Peyrard
Anne 2006-2007
LANGAGE SAS
Prsentation
PARTIE IV
109 109 110 111 111 111 111 111 112 112 112 112 112 113 113 113 113 114 114 114 115 115 115 115 115 116 117 121 121 121 122 123 123 124 124
ANNEXES
Index Comment faire ? Des manipulations sur les donnes : Des statistiques univaries : Des statistiques bivaries : Des modlisations : Des tests : Des graphiques : Autre chose :
Axelle Chauvet-Peyrard
Anne 2006-2007
LANGAGE SAS
Introduction
INTRODUCTION
Cette instruction cre une bibliothque de nom malib qui pointe sur le rpertoire physique \\c:\sas\. La bibliothque permet daccder tous les objets SAS contenus dans ce rpertoire : tables de donnes, mais aussi catalogues !
Axelle Chauvet-Peyrard
Anne 2006-2007
LANGAGE SAS
Introduction
Si la bibliothque malib (format v8) pointe sur le rpertoire \\c:\sas\, la table malib.matable correspondra au fichier physique \\c:\sas\matable.sas7bdat. De mme, le catalogue malib.moncatlg correspondra au fichier physique \\c:\sas\moncatlg.sas7bcat.
Les tapes DATA : pour crer et manipuler les donnes Les tapes PROC : essentiellement pour exploiter les donnes
Ecrire le programme dans lEDITOR
Soumettre le programme
Axelle Chauvet-Peyrard
Anne 2006-2007
LANGAGE SAS
Introduction
Pour passer dune fentre lautre, vous pouvez tout simplement cliquer sur longlet correspondant la fentre qui vous intresse, ou bien utiliser Ctrl+Tab. Vider le contenu dune fentre Edit - Clear all Ctrl+E
Vous pouvez aussi taper clear dans la barre de commande. Attention : cette commande vide la fentre active !
Axelle Chauvet-Peyrard
Anne 2006-2007
LANGAGE SAS
Etape DATA
PARTIE I
Ltape DATA
Une tape DATA est un programme de syntaxe :
Axelle Chauvet-Peyrard
10
Anne 2006-2007
LANGAGE SAS
Etape DATA
total 0
Puis est recopie la premire ligne de b.
table malib.a
Puis au champ coefficient est ajout 1. Ensuite on y ajoute une variable nomme un qui vaut 1.
table malib.a
table malib.a
On a pour le moment travaill uniquement sur le vecteur de travail, qui contient la seule ligne courante. RUN enregistre le vecteur de travail en 1e ligne de la table a et rinitialise le vecteur de travail. Axelle Chauvet-Peyrard
11
Anne 2006-2007
LANGAGE SAS
Etape DATA
Si bien quau dbut de ltape 2, total vaut 0, puis on rcupre la ligne 2 de b, on incrmente le coef, on ajoute la colonne un, on met jour total avec le coef courant.
v2 6 5 4
un 1 1 1
En conclusion on voit quil est impossible de calculer de cette manire le cumul de coefficient, puisque dune ligne sur lautre, SAS oublie les valeurs prcdentes. On verra plus loin quil existe un moyen de calculer des cumuls, grce linstruction RETAIN (voir paragraphe Calcul de variables ).
Axelle Chauvet-Peyrard
12
Anne 2006-2007
LANGAGE SAS
Etape DATA
Oprateurs de comparaison LT GT LE GE EQ NE IN < > <= >= = ^= Infrieur strict (lesser than) Suprieur strict (greater than) Infrieur (lesser or equal) Suprieur (greater or equal) Egal (equal) Diffrent (not equal)
NOT ^ non
Oprateurs arithmtiques Les oprateurs naturels +, -, * et / Ainsi que ** loprateur dexponentiation a<>b ou Min(a,b) dsigne le minimum entre a et b a><b ou Max(a,b) dsigne le maximum entre a et b Mentionnons enfin linstruction de sommation : var + quivaut var = var + 2 Oprateur de concatnation
!!
Axelle Chauvet-Peyrard
13
Anne 2006-2007
LANGAGE SAS
Etape DATA
DATA destination; SET source; KEEP v1; RUN; DATA destination; SET source (KEEP=v1); RUN;
DATA destination; SET source; DROP v2 v3; RUN; DATA destination; SET source (DROP=v2 v3); RUN;
Ont tous pour effet de crer une table destination qui contient toutes les observations de la table source mais en ne gardant que la colonne v1. Les deux premiers programmes utilisent les instructions KEEP et DROP, tandis que les deux suivants utilisent ces commandes en tant quoptions de linstruction SET. Plac en option, le KEEP ou le DROP est excut au moment mme de la recopie de la table, alors quen instruction, il est excut aprs. Si la diffrence ne se fait pas sentir dans le cas dune simple recopie de table, comme ici, on verra plus loin un exemple ou elle devient capitale.
Cond
Axelle Chauvet-Peyrard
14
Anne 2006-2007
LANGAGE SAS
Etape DATA
L encore, dans un cadre simple comme celui-ci, ces mthodes sont quivalentes. On verra par la suite quelles ne le sont pas toujours. Linstruction OUTPUT est en particulier trs utile lorsquon souhaite dcouper une table en plusieurs sous-tables. Par exemple, je dispose dune table source dont une des variables est le sexe de lindividu, et je souhaite obtenir deux tables, lune contenant les donnes pour les hommes, et lautre pour les femmes. Jcris alors le programme suivant :
DATA femmes hommes; SET source; IF sexe=1 THEN OUTPUT hommes; ELSE OUTPUT femmes; RUN;
Au sujet de ces deux dernires remarques, on se reportera au paragraphe Concatnation et fusion de tables .
Axelle Chauvet-Peyrard
15
Anne 2006-2007
LANGAGE SAS
Etape DATA
Les formats :
Formats prdfinis :
Les formats numriques sappliquent aux variables de type numrique. Le format n. indique que la variable numrique sera lue / crite sur n caractres. Le format n.d indique que la variable numrique sera lue / crite sur n caractres dont d dcimales. Le format Zn. force lcriture sur n caractres en compltant gauche par des 0. Les formats caractres sappliquent aux variables de type caractre, et commencent par un $ . Le format $n. indique que la variable caractre sera lue / crite sur n caractres.
Axelle Chauvet-Peyrard
16
Anne 2006-2007
LANGAGE SAS
Etape DATA
Ces deux programmes ont pour effet de crer une table destination qui est la copie de la table source, la variable old ayant t renomme en new. Dans ce cas trs simple, le choix dutiliser linstruction ou loption est transparent. On verra plus loin que ce nest pas toujours le cas.
DATA destination; SET source; LENGTH newvar $ 10; newvar = var; DROP var; RENAME newvar=var; RUN;
DATA destination; SET source; FORMAT newvarnum 4.; newvarnum = input (varchar , 4.); RUN;
De manire symtrique, la fonction donnes numriques en caractres.
put(varnum,format_caractre)
Axelle Chauvet-Peyrard
17
Anne 2006-2007
LANGAGE SAS
Etape DATA
Axelle Chauvet-Peyrard
18
Anne 2006-2007
LANGAGE SAS
Etape DATA
Axelle Chauvet-Peyrard
19
Anne 2006-2007
LANGAGE SAS
Etape DATA
DATA ab; SET a (in=x) b; IF x=1 THEN origine=a; ELSE origine=b; RUN;
Axelle Chauvet-Peyrard
20
Anne 2006-2007
LANGAGE SAS
Ce programme fournit le rsultat suivant :
Etape DATA
table ab nom_a note_a nom_b note_b toto 12 titi 10 titi 14 tutu 8 tata 18
Axelle Chauvet-Peyrard
21
Anne 2006-2007
LANGAGE SAS
Etape DATA
La mise jour dune table partir des donnes dune autre table : Instruction UPDATE
Supposons maintenant que les notes de la table a correspondent aux notes dun examen donne et que les notes de la table b soient celles de lexamen de rattrapage correspondant. Les donnes de b doivent donc venir complter, voire corriger, les donnes de a. On utilise alors linstruction UPDATE. Le programme suivant :
Axelle Chauvet-Peyrard
22
Anne 2006-2007
LANGAGE SAS
Etape DATA
Boucles DO et conditions IF
Le langage SAS offre la possibilit de faire des boucles finies ou des boucles tant que, ainsi que des tests.
Les conditions IF :
IF condition THEN instruction ; (ventuellement suivi de) ELSE instruction ;
Le IF na pas besoin dtre termin par un END ; Si on veut insrer plus dune instruction dans le THEN ou dans le ELSE, il faut les encadrer par un bloc DO ; END ; de la manire suivante :
Le bloc SELECT :
Si une srie de conditions IF revient diffrencier le traitement qui suit selon les modalits dune variable, on lui substituera avantageusement une instruction SELECT dont voici la syntaxe :
SELECT (variable) ; WHEN (modalit1) instruction1 ; WHEN (modalit2) instruction2 ; OTHERWISE instruction ; END ;
Le cas OTHERWISE nest pas indispensable.
Axelle Chauvet-Peyrard
23
Anne 2006-2007
LANGAGE SAS
Etape DATA
Fonctions mathmatiques :
Floor(x) Abs(x) Sign(x) Round(x,a) Max(x1,,xn) Min(x1,,xn) Mod(x,y) Sqrt(x) Exp(x) Log(x) Cos(x) Sin(x) Tan(x) Arcos(x) Arsin(x) Atan(x) Axelle Chauvet-Peyrard Partie entire de x Valeur absolue de x Vaut 1 si x>0, -1 si x<0, 0 sinon Arrondit x la prcision a Maximum des valeurs de x1,xn Minimum des valeurs de x1,,xn Reste de la division euclidienne de x par y Racine carre de x Fonction Exponentielle Fonction Logarithme nperien Fonction Cosinus Fonction Sinus Fonction Tangente Fonction Cosinus inverse Fonction Sinus inverse Fonction Tangente inverse
24
Anne 2006-2007
LANGAGE SAS
Etape DATA
Fonctions alatoires :
Les fonctions suivantes gnrent des nombres selon une loi choisie. Lalgorithme ncessite la dfinition dun paramtre a (par exemple : 0). Rannor(a) Ranuni(a) Ranpoi(a,l) Ranbin(a,n,p) Rantbl(a,p1,,pn) Loi normale centre rduite Loi uniforme sur [0,1] Loi de Poisson de paramtre l Loi binomiale de paramtres n et p Loi discrte de distribution p1,,pn
Fonctions statistiques :
n(x1,,xn) nmiss(x1,,xn) sum(x1,xn) mean(x1,xn) var(x1,xn) Nombre de valeurs non manquantes parmi les variables x1,,xn Nombre de valeurs manquantes parmi les variables x1,,xn Somme des variables x1,,xn Moyenne des variables x1,,xn Variance empirique des variables x1,,xn
Probabilits :
Les fonctions suivantes sont les fonctions de rpartition en t des lois dsignes. Probnorm(t) Probchi(t,n) Poisson(t,l) Probf(t,n,p) Probbnml(p,n,t) Probhypr(N,k,n,t) Loi normale centre rduite Loi du Chi2 n degrs de libert Loi de Poisson de paramtre l Loi de Fisher de paramtres n et p Loi binmiale de paramtres n et p Loi hypergomtrique de paramtres N, k et n
Fonctions particulires :
Input(vchar,fornum) Put(vnum,forchar) Lagn(x) Difn(x) Transforme une variable caractre vchar en variable numrique au format fornum Transforme une variable numrique vnum en variable caractre au format forchar Retourne la valeur n fois prcdente de x ; pour n=1 on note Lag(x) Retourne x - Lagn(x) ; pour n=1 on note Dif(x)
Axelle Chauvet-Peyrard
25
Anne 2006-2007
LANGAGE SAS
Etape DATA
Calculs de variables
Loprateur daffectation est le =. Les calculs les plus simples (addition, soustraction, multiplication, division, exponentiation) se font simplement par invocation de loprateur appropri. Il nest pas ncessaire de dclarer les variables en SAS. Tout objet du programme qui, de par sa nature syntaxique, est interprt comme un nom de variable, est insr dans le vecteur de travail en tant que nouvelle variable. On tudie ci-dessous deux cas particuliers de calcul de variables.
DATA test; SET source; DO i=1 TO 100; [Bloc dinstructions]; END; RUN;
Le bloc dinstructions est effectu 100 fois pour chaque observation de la table source !
DATA maLib.a ; RETAIN total 0; SET maLib.cours ; Coefficient=coefficient+1 ; Un=1 ; Total=total+coefficient; RUN ;
Cette fois, la variable total contient bien le cumul des coefficients :
Axelle Chauvet-Peyrard
26
Anne 2006-2007
LANGAGE SAS
Etape DATA
v2 6 5 4
un 1 1 1
DATA ab; SET ab; BY nom; RETAIN cumule; IF first.nom THEN cumule=0; cumule=cumule+note; RUN;
On obtient le rsultat suivant :
Axelle Chauvet-Peyrard
27
Anne 2006-2007
LANGAGE SAS
Etape DATA
Exemple :
On dispose dune table source contenant des variables p1, p2, jusqu p20, qui reprsentent des prix en francs. On veut convertir tous les prix en euros. On crit le programme suivant :
DATA source; SET source; ARRAY prix p1-p20; DO i=1 TO dim(prix); prix(i) = prix(i) / 6,55957; END; RUN;
Axelle Chauvet-Peyrard
28
Anne 2006-2007
LANGAGE SAS
Etape DATA
DATA destination; SET source; IF age < 0 THEN ERROR lge est ngatif; ELSE [Bloc dinstructions]; RUN;
On peut aussi introduire un test dans une boucle tant que afin dviter les boucles infinies, par exemple :
Axelle Chauvet-Peyrard
29
Anne 2006-2007
LANGAGE SAS
Etape DATA
DATA _null_; SET a (in=x) b (in=y); IF x AND y THEN PUT nom; RUN;
Axelle Chauvet-Peyrard
30
Anne 2006-2007
Langage SAS
Etape PROC
PARTIE II
Ltape PROC
On rappelle que la programmation lmentaire sous SAS prend deux formes : soit celle dune tape DATA, dans laquelle on modifie, recopie, manipule des donnes, soit celle dune tape PROC. Dans cette partie, aprs avoir expos la structure gnrale dune tape PROC, on se propose de prsenter une vingtaine de procdures parmi les plus utilises. Chaque procdure sera prsente selon le schma suivant : Prsentation gnrale de lobjectif de la PROC. Eventuellement, quelques rappels thoriques. Syntaxe gnrale (pas toujours exhaustive). Les options et instructions majeures. Une lecture de sortie standard. Une lecture de sortie labore.
Axelle Chauvet-Peyrard
31
Anne 2006-2007
Langage SAS
Etape PROC
Linstruction BY permet de constituer des sous-populations. Lorsquune instruction BY mavar ; est spcifie dans une PROC, cela force la ralisation dautant dtapes PROC quil y a de modalits de mavar. Remarque : Ne pas confondre avec linstruction CLASS qui permet de distinguer des sous-groupes lintrieur dune mme tape PROC. Exemple : on suppose que mavar a comme moyenne gnrale 10, comme moyenne sur la souspopulation des hommes 14 et comme moyenne sur la sous-population des femmes 09. Admettons quon veuille faire un test dgalit des moyennes. Le programme PROC TTEST ; VAR mavar ; CLASS sexe ; compare bien 09 14, tandis que le programme PROC TTEST ; VAR mavar ; BY sexe ; va essayer dabord de comparer 09 09, puis de comparer 14 14. Linstruction OUTPUT, qui permet de stocker certains des rsultats dans une table. La syntaxe est alors OUTPUT OUT=table_sortie Keywords ; on prcise le nom de la table dans laquelle seront stocks les rsultats des statistiques dont les mots-cls sont prciss (liste Keywords). Notons quil existe de nombreuses options du type out= qui ont le mme but mais sont adaptes un cas prcis. On retrouvera aussi frquemment deux instructions dj vues en tape DATA : Linstruction WHERE sert slectionner des observations particulires pour traitement. Linstruction FORMAT sert appliquer un format certaines des variables traites. notre
Exemple :
1 2 3 4 5 6 PROC MEANS data=donnees ; VAR var1 var2 ; BY cat ; WHERE cat NE sans reponse ; OUTPUT out=moyennes mean=moy1 moy2 ; RUN ;
1 : Procdure MEANS qui sapplique la table donnees de la librairie Work. 2 : Les variables tudies sont var1 et var2. 3 : On calcule les stats sur les sous-populations dfinies par les modalits de cat. 4 : On exclut de ltude les observations pour lesquelles cat vaut sans rponse. 5 : On rcupre dans une table moyennes la moyenne de chacune des variables sur chacune des souspopulations ; on appelle moy1 la moyenne de var1 et moy2 la moyenne de var2.
Axelle Chauvet-Peyrard
32
Anne 2006-2007
Langage SAS
Axelle Chauvet-Peyrard
33
Anne 2006-2007
Langage SAS
LIBNAME trans XPORT w:\sas\table.xpt ; PROC COPY IN=base OUT=trans ; SELECT table ; RUN ;
SPAD peut lire directement les fichiers xpt. Pour ouvrir la table sous SPSS, il faut taper dans une fentre de syntaxe la procdure suivante :
Axelle Chauvet-Peyrard
34
Anne 2006-2007
Langage SAS
Mthode alternative :
Dans la fentre Explorer, faire un clic droit sur la table concerne. Choisir Properties . Une pop-up souvre avec les proprits de la table : apparaissent les General Properties (proprits gnrales) de la table (qui correspondent au 1er tableau dit par la PROC CONTENTS), mais on peut aussi demander les Engine / Host Information (2me tableau de la PROC) ou les Columns (informations relatives aux variables de la table, correspondant au 3me tableau dit par la PROC).
Options :
Loption short permet de nditer que la liste des variables. Loption directory dite en plus les proprits de la librairie laquelle appartient la table (moteur, emplacement physique, liste des objets quelle contient avec leurs tailles).
Axelle Chauvet-Peyrard
35
Anne 2006-2007
Langage SAS
Lecture de sortie :
The CONTENTS Procedure Data Set Name: Member Type: Engine: Created: Last Modified: Protection: Data Set Type: Label: MALIB.BIDON DATA V8 9:52 Monday, January 28, 2002 9:52 Monday, January 28, 2002 Observations: Variables: Indexes: Observation Length: Deleted Observations: Compressed: Sorted: 50 6 0 40 0 NO NO
-----Engine/Host Dependent Information----Data Set Page Size: Number of Data Set Pages: First Data Page: Max Obs per Page: Obs in First Data Page: Number of Data Set Repairs: File Name: Release Created: Host Created: 4096 1 1 101 50 0 W:\SAS\bidon.sas7bdat 8.0101M0 WIN_NT
-----Alphabetic List of Variables and Attributes----# 6 1 4 2 3 5 Variable distribution siren taille va ventes zone Type Char Char Char Num Num Char Len 10 8 1 8 8 2 Pos 27 16 24 0 8 25 Label locale, rgionale ou nationale identifiant SIRENE petite, moyenne ou grande entreprise valeur ajoute (en MF) parts de march implantation de lentreprise
La table sappelle bidon et est contenue dans la librairie malib. Elle est au format V8 et son emplacement physique est w:\sas\bidon.sas7bdat. Elle a t cre le 28 janvier 2002. Elle contient 6 variables et 50 observations et nest pas trie. Parmi les 6 variables de la table, 2 sont numriques : variable va, de label valeur ajoute (en MF) , de longueur 8, cest la deuxime colonne variable ventes, de label parts de march , de longueur 8 aussi, troisime colonne et 4 sont des variables caractres : variable siren, de longueur 8 et de label identifiant SIRENE variable taille, de longueur 1 et de label petite, moyenne ou grande entreprise variable zone, de longueur 2 et de label implantation de lentreprise variable distribution, de longueur 10 et de label entreprise locale, rgionale ou nationale
Axelle Chauvet-Peyrard
36
Anne 2006-2007
Langage SAS
<options> ;
Les options :
Loption noobs supprime ldition du numro de lobservation.
Mthode alternative :
Ouvrir la table par double clic. Passer en mode edit : menu Edit - Edit mode (ou licne Edit). Clic droit sur len-tte de colonne concern. Choisir Sort . Puis on a le choix entre Ascending et Descending . Enfin on enregistre la table.
On peut aussi trier la table via le module SAS/INSIGHT (voir le paragraphe consacr dans la partie III B).
Les options :
Loption out= permet de spcifier une table de sortie diffrente de la table dentre : ainsi la table dorigine nest pas modifie, mais on dipose dune nouvelle table qui, elle, est trie. Loption noduprecs supprime les doublons.
Axelle Chauvet-Peyrard
37
Anne 2006-2007
Langage SAS
PROC TRANSPOSE data= <options>; VAR liste_de_variables; BY variable; COPY liste_de_variables; ID variable;
Les options :
Loption out= permet de dfinir une table en sortie diffrente de la table prise en entre. Loption name= permet de renommer la variable _name_ dans le tableau transpos (variable qui contient le nom de la ou des variables transposes). Loption prefix= permet de dfinir un prfixe pour les noms des nouvelles variables du tableau.
Les instructions :
Linstruction VAR fournit la liste des variables qui vont tre transposes. Ces variables nexistent plus dans le tableau en sortie, et leurs valeurs sont rparties dans les cases appropries du nouveau tableau. Linstruction BY permet de dfinir lidentifiant de lindividu. Chaque modalit de cet identifiant correspondra une ligne du tableau final. Linstruction ID permet de dfinir la variable dont les modalits doivent dfinir les nouvelles variables du tableau. Linstruction COPY dfinit les variables qui sont recopies telles quelles dans le tableau final.
Exemple :
Supposons que lon dispose de la table notes suivante :
table notes eleve Matiere tata Math tata Franais titi Math titi Franais toto Math toto Franais
note 15 10 14 18 8 12
PROC SORT data=notes ; BY eleve ; PROC TRANSPOSE data=notes out=notes2; VAR note; ID matiere; BY eleve; RUN;
Axelle Chauvet-Peyrard
38
Anne 2006-2007
Langage SAS
Ce programme fournit le rsultat suivant :
table notes2 eleve _NAME_ math fran_ais tata note 15 10 titi note 14 18 toto note 8 12
On obtient presque ce que lon souhaitait. Linstruction BY eleve permet bien dobtenir une ligne par lve. Linstruction ID matiere dfinit bien la variable transposer. La variable matiere nexiste plus, mais a t remplace par autant de variables quil y avait de modalits de matiere. A noter que les caractres spciaux (ici le ) ne peuvent tre traduits dans le nom de la nouvelle variable (ici il a t remplac par un _). Enfin linstruction VAR note dfinit le contenu des nouvelles cases : dans mon tableau crois eleve*matiere, je souhaite mettre la note qui correspond ce profil. Une colonne subsidiaire est cre, qui rappelle le nom de la variable que lon a transpos.
Axelle Chauvet-Peyrard
39
Anne 2006-2007
Langage SAS
PROC SORT data=a; BY nom; PROC SORT data=b; BY nom; DATA ab; MERGE a (rename=(note=note_a)) b (rename=(note=note_b)); BY nom; RUN;
Peut tre remplac par le programme SQL suivant :
PROC SQL; CREATE TABLE ab AS SELECT a.nom,a.note as note_a,b.note as note_b FROM a FULL JOIN b ON a.nom=b.nom; QUIT;
40
Anne 2006-2007
Langage SAS
Supposons que dans notre fusion prcdente on nait souhait conserv que les lves appartenant la fois la table a et la table b. Ltape DATA salourdit dun test :
DATA ab; MERGE a (rename=(note=note_a) in=x) b (rename=(note=note_b) in=y); BY nom; IF x AND y THEN OUTPUT; RUN;
Tandis que dans le programme SQL, il suffit de remplacer FULL JOIN par INNER JOIN :
PROC SQL; CREATE TABLE ab AS SELECT a.nom,a.note as note_a,b.note as note_b FROM a INNER JOIN b ON a.nom=b.nom; QUIT;
table langues nom langue tata anglais tata allemand tata espagnol titi allemand toto anglais toto allemand tutu anglais tutu espagnol
Et que lon souhaite avoir la liste des lves ayant choisi exactement deux langues. Sans la PROC SQL, il faudrait : Calculer le nombre de langues pour chacun des lves (le plus simple est alors dutiliser une PROC FREQ ; voir le paragraphe consacr dans la partie II B). Effectuer une tape DATA pour filtrer les seuls lves ayant choisi deux langues. Avec la PROC SQL, on crit :
PROC SQL; CREATE TABLE qui2langues AS SELECT DISTINCT nom FROM langues GROUP BY nom HAVING count(*)=2 ; QUIT;
41
Anne 2006-2007
Langage SAS
Exemple :
PROC FORMAT ; VALUE tranche low-<12500 = pauvre 12500-30000 = moyen 30000<-high = riche ; RUN ;
Les options :
Pour viter davoir soumettre la PROC FORMAT chaque session, on peut choisir de sauvegarder le format compil dans un catalogue. Pour cela, il suffit de rajouter une option library=nom_catalog au moment de la cration du format. Si au contraire on dispose dun catalogue de formats dont on ne connat pas le code source, on peut visualiser leurs proprits (plages des valeurs et modalits associes) en lanant une PROC FORMAT avec options library= et fmtlib, et sans instruction value :
Application du format :
Le format fonctionne comme une tiquette que lon colle sur une variable le temps dune procdure. Supposons que lon souhaite connatre le nombre moyen denfants dans les familles pauvres, dans les familles revenus moyens et dans les familles riches. On va donc constituer des sous-groupes grce une instruction BY salaire ; encore faut-il lui prciser qu ce moment il doit lire les valeurs de salaire non comme des valeurs numriques mais comme une des modalits pauvre , moyen ou riche . Pour cela, on applique le format la variable salaire grce une instruction FORMAT :
FORMAT nom_variable nom_format. ; PROC MEANS data=donnees ; FORMAT salaire tranche. ; VAR nbenfants ; BY salaire ; RUN;
Axelle Chauvet-Peyrard
42
Anne 2006-2007
Langage SAS
PROC RANK data= out= <options> ; VAR variable ; RANKS nom_pour_nouvelle_variable ; < BY variable ; >
Les options :
Loption data= spcifie toujours la table sur laquelle on travaille. Loption out= spcifie le nom de la table rsultat. Loption descending permet dordonner en sens inverse. Loption ties= permet de spcifier comment traiter le cas des ex-aequo. Les choix possibles sont high, low et mean. Loption percent permet de calculer des pourcentages cumuls : chaque rang est remplac par le rang fois 100 rapport au nombre dobservations non manquantes. Ainsi, lorsquune observation a un rang gale 8, cest que 8% des observations ont une valeur infrieure celle de ladite observation. Loption groups=n o n leur rang en n groupes.
Les instructions :
Linstruction VAR permet de prciser selon quelle variable se fait le calcul de rang. Linstruction RANKS permet de stocker le rang dans une nouvelle variable.
Exemple :
Soit la table jeu suivante :
joueur points A 15 B 10 C 23 D 14 E 22 F 9 G 10 H 7
Et le programme :
Proc rank data=jeu out=jeures descending ties=high ; Var points ; Ranks rang ; Run;
Alors la table jeures contient :
Axelle Chauvet-Peyrard
43
Anne 2006-2007
Langage SAS
joueur A B C D E F G
points 15 10 23 14 22 9 10
rang 3 6 1 4 2 7 6
Les deux exemples suivants portent sur la table jeu, prive de sa dernire observation. Le programme suivant :
Proc rank data=jeu out=jeures groups=3 ; Var points ; Ranks rang ; Run;
dite la table jeures suivante :
joueur A B C D E F
points 15 10 23 14 22 9
rang 1 0 2 1 2 0
Avec cela on voit par exemple que C fait partie des 2 meilleurs tandis que B et F sont les deux moins bons. Le programme suivant :
Proc rank data=jeu out=jeures percent ; Var points ; Ranks rang ; Run;
dite la table jeures suivante :
joueur A B C D E F
points 15 10 23 14 22 9
On lit par exemple que 1/3 des joueurs ont eu un score infrieur ou gal celui de B, donc infrieur ou gal 10.
Axelle Chauvet-Peyrard
44
Anne 2006-2007
LANGAGE SAS
La PROC FREQ tudie les variables qualitatives nominales (tableaux de frquence, tableaux de contingence, tests du Chi). La PROC MEANS dite des statistiques descriptives pour des variables quantitatives continues (moyenne, cart-type, quartiles). La PROC TABULATE dite des tableaux de statistiques descriptives. Son intrt consiste en la paramtrisation des tableaux. La PROC UNIVARIATE est la procdure la plus complte de statistiques descriptives sur variables continues. Elle permet galement de tracer des botes moustaches et de faire des tests dadquation une loi normale. La PROC CORR calcule des corrlations entre variables numriques : soit entre des variables continues (corrlations de Pearson) soit entre des variables ordinales (Tau-b de Kendall). La PROC TTEST teste lgalit des moyennes entre deux sous-populations. La PROC REG effectue des rgressions linaires multiples. La PROC LOGISTIC effectue des rgressions linaires sur des variables catgorielles (qualitatives). La PROC SYSLIN et la PROC MODEL estiment des modles plusieurs quations (systmes linaires pour la SYSLIN, non linaires pour la MODEL).
Axelle Chauvet-Peyrard
45
Anne 2006-2007
LANGAGE SAS
PROC FREQ data= <order= > ; TABLES listes_variables </options> ; < BY variable ; > < WEIGHT variable ; >
Les options :
La plus intressante est loption order= , qui permet de choisir lordre dans lequel les modalits apparaissent. Retenons que order=freq trie le tableau de frquence par ordre deffectif dcroissant, order=data le trie selon lordre dapparition des modalits dans la table.
Pour un tableau de contingence ce que la procdure dite effectif de la case poucentages pourcentages en ligne pourcentages en colonne par dfaut en plus comment le supprimer nofreq nopercent noprint norow nocol
ce que la procdure peut diter effectifs thoriques carts entre effectif thorique et rel contributions la distance du chi test du chi et statistiques drives du chi
Axelle Chauvet-Peyrard
46
Anne 2006-2007
LANGAGE SAS
Pour un tableau de frquence ce que la procdure dite effectif de la modalit pourcentage effectifs cumuls pourcentages cumuls comment le supprimer nofreq nopercent nocum
Lecture de sorties :
proc freq data=malib.bidon; tables zone taille*zone; run;
The FREQ Procedure Cumulative Frequency 4 13 15 30 50 Cumulative Percent 8.00 26.00 30.00 60.00 100.00
zone IF NE NW SE SW
Frequency 4 9 2 15 20
Frequency Percent Row Pct Col Pct IF 1 0 0.00 0.00 0.00 1 2.00 7.69 25.00 3 6.00 75.00 75.00 4 8.00
NE 4 8.00 12.12 44.44 4 8.00 30.77 44.44 1 2.00 25.00 11.11 9 18.00
SE 11 22.00 33.33 73.33 4 8.00 30.77 26.67 0 0.00 0.00 0.00 15 30.00
SW 18 36.00 54.55 90.00 2 4.00 15.38 10.00 0 0.00 0.00 0.00 20 40.00
Total 33 66.00
13 26.00
4 8.00
Total
50 100.00
Axelle Chauvet-Peyrard
47
Anne 2006-2007
LANGAGE SAS
Exemple de commentaire : 40% des entreprises du secteur Bidon sont installes dans le sud ouest, ce qui reprsente 20 firmes. 90% de ces firmes sont des petites entreprises et 10% sont des PME. Les PME se retrouvent en effet majoritairement dans lest, le nord est et le sud est regroupant chacun plus de 30% des entreprises concernes. Les grandes entreprises sont rares dans le secteur, puisquelles nen reprsentent que 8%.
proc freq data=malib.bidon ; tables distribution*taille /chisq cellchi2 norow nocol; where distribution NE 'nationale'; run;
The FREQ Procedure Table of distribution by taille distribution taille
33 9 0 0.7857 0.4121 2.5714 67.35 18.37 0.00 0 4 3 4.7143 2.4725 15.429 0.00 8.16 6.12 33 67.35 13 26.53 3 6.12
rgionale
Total
Statistics for Table of distribution by taille Statistic Chi-Square Likelihood Ratio Chi-Square Mantel-Haenszel Chi-Square Phi Coefficient Contingency Coefficient Cramer's V DF 2 2 1 Value 26.3846 24.1431 24.0833 0.7338 0.5916 0.7338 Prob <.0001 <.0001 <.0001
WARNING: 67% of the cells have expected counts less than 5. Chi-Square may not be a valid test. Sample Size = 49
La ligne Chi-Square du tableau gnr par loption chisq nous indique la valeur de la distance du et la p-value associe. Ici on rejetterait lhypothse nulle dindpendance des variables. Cela dit, on remarque que la plus grosse contribution la distance provient des trois grandes entreprises distribution rgionale du secteur. Bien que lexistence dune corrlation semble vidente lil, on peut sinterroger sur la validit du test du sur un chantillon aussi petit. Dailleurs, SAS nous met en garde !
Axelle Chauvet-Peyrard
48
Anne 2006-2007
LANGAGE SAS
PROC MEANS data= <options> ; VAR liste_variables_quantitatives ; < BY variable ; > < CLASS variable ; > < FREQ variable ; > < WEIGHT variable ; > < ID variable ; > < OUTPUT <OUT=nom_table> <mot_cle_de_la_statistique=nom_stat_dans_la_table_sortie> <idem avec autres statistiques> ; >
Les options :
Les options les plus intressantes sont celles qui permettent de choisir les statistiques diter : N Effectif NMISS Nombre de valeurs manquantes MIN Minimum MAX Maximum RANGE Plage des valeurs = MAX MIN SUMWGT Somme des poids SUM Somme MEAN Moyenne STD Ecart-type STDERR Standard Error of Mean KURTOSIS Coefficient daplatissement SKEWNESS Coefficient dasymtrie USS Somme des carrs CSS Somme des carrs des carts la moyenne VAR Variance CV Coefficient de variation T Valeur de la statistique de Student pour le test (H0) : la moyenne est nulle PROBT P-value associe au test prcdent MEDIAN Mdiane QRANGE Distance interquartile = Q3 - Q1 Q1 et Q3 Premier et troisime quartiles P1 P5 P10 P90 P95 P99 Centiles Remarque : Ces statistiques sont dites par dfaut par la PROC UNIVARIATE (voir paragraphe consacr).
Les instructions :
Linstruction VAR permet de prciser sur quelle(s) variable(s) on travaille. Si on omet linstruction, la PROC MEANS prend en compte toutes les variables numriques de la table spcifie. Les instructions BY et CLASS permettent de faire des sous-groupes. Linstruction BY commande lexcution de la procdure sur chacunes des sous-populations quelle dfinit. Elle requiert que la table soit trie. Linstruction CLASS regroupe les observations qui ont un certain profil. La procdure nest excute quune seule fois et il nest pas ncessaire que la table soit trie. De plus, la prsentation des rsultats est plus synthtique quavec BY. Mais les rsultats dits sont les mmes. Axelle Chauvet-Peyrard
49
Anne 2006-2007
LANGAGE SAS
Lorsquune variable apparat dans linstruction FREQ, tout se passe comme si chaque observation i apparaissait v(i) fois dans la table, o v(i) est la valeur en i de la variable dsigne par linstruction FREQ. Linstruction WEIGHT permet de dfinir une variable qui servira pondrer les observations avant le calcul des corrlations. Linstruction ID spcifie une variable qui sert didentifiant pour les observations. Linstruction OUTPUT sert rcuprer certaines des statistiques dans une table dont on spcifie le nom aprs OUT= . La liste des statistiques que lon souhaite enregistrer dans cette table est spcifie ensuite. On peut ventuellement dcider de renommer ces variables, car le nom gnr automatiquement par SAS nest pas trs clair. Admettons que lon veuille rcuprer la moyenne et lcart-type des trois variables qui ont t dsignes dans linstruction VAR par VAR v1 v2 v3 ; dans une table nomme resultat. Alors on crit :
OUTPUT
OUT=resultat
Lecture de sorties :
proc means data=malib.bidon ; run ;
The MEANS Procedure Variable va ventes Label va (en MF) N 50 50 Mean 1562.42 0.0200000 Std Dev 3154.38 0.0433028 Minimum 139.0000000 0.0020000 Maximum 17842.00 0.2630000
proc means data=malib.bidon sum ; var ventes ; class zone distribution ; run ;
Analysis Variable : ventes N Obs 1 3 8 1 2 14 1 20
zone IF
NE
NW SE
SW
La procdure calcule la somme des parts de march dtenues par les entreprises correspondant un certain profil (zone ; distribution). Par exemple, les entreprises locales implantes dans le sud-est reprsentent 17% du march.
Axelle Chauvet-Peyrard
50
Anne 2006-2007
LANGAGE SAS
PROC TABULATE <data= > <options> ; CLASS variables ; < CLASSLEV variables / style= ; > < KEYLABEL keyword=description ; > < KEYWORD keywords / style= ; > TABLE <<page_expression>, row expression>, column expression ; VAR variables ;
Les instructions :
Pour le calcul des statistiques descriptives :
Linstruction CLASS permet de dfinir les variables catgorielles qui seront utilises dans la proc, soit pour tre tudies (tableaux de frquence et de contingence) soit pour constituer des sous-groupes. Linstruction VAR permet, comme dhabitude, de prciser les variables (numriques) sur lesquelles on souhaite travailler. Linstruction TABLE dfinit la fois ce qui est calcul et la manire dont les rsultats sont prsents dans le tableau. On doit au moins dfinir les lments qui constituent les colonnes du tableau. Il sagira dune combinaison de noms de variables et de mots-cls de statistiques, relis par des oprateurs : Loprateur espace est la concatnation des lments Loprateur * ralise le croisement des lments Loprateur , spare ce qui sera en ligne de ce qui sera en colonne. Voir page daprs la liste des mots-cls. Toutes les variables qualitatives invoques doivent tre dfinies au pralable dans linstruction CLASS. Toutes les variables quantitatives invoques doivent tre rpertories dans linstruction VAR.
Exemples :
CLASS sexe ; TABLE sexe ; CLASS sexe ; TABLE (n pctn),sexe ; CLASS sexe diplome ; TABLE sexe*diplome ; TABLE salaire ; VAR salaire ; TABLE (sum mean std),salaire ; VAR salaire ; CLASS sexe ; TABLE (sum mean),salaire*sexe ; VAR salaire ;
Edite un tableau contenant les effectifs des modalits de sexe o les modalits sont les colonnes du tableau. Edite un tableau deux lignes contenant les effectifs et pourcentages des modalits de sexe (les colonnes correspondent aux modalits de sexe). Edite un tableau une ligne (leffectif) dont chaque colonne (modalits de sexe) sont subdivises selon les modalits de diplome. Edite un tableau une colonne (le salaire) et une ligne (somme de la variable salaire). dite un tableau 3 lignes (la somme, la moyenne et lcarttype) et 1 colonne (la variable salaire). Edite un tableau 2 lignes (la somme et la moyenne) et 1 colonne pour salaire, laquelle est subdivise selon les modalits de sexe. Sont donc calcules la somme et la moyenne des salaires sur les sous-populations des hommes et des femmes.
Axelle Chauvet-Peyrard
51
Anne 2006-2007
LANGAGE SAS
Autres instructions :
Les instructions BY, FREQ et WEIGHT sont galement utilisables dans cette procdure (voir leur description dans le paragraphe sur la PROC MEANS).
Les options :
Loption classdata= permet de prciser le nom dune table contenant les variables qui serviront constituer les sous-groupes. Loption exclusive limine de lanalyse les profils qui ne figurent pas dans la table dclare aprs classdata= . Loption order= ordonne les profils selon la mthode spcifie : data (ordre dapparition dans la table) et freq (ordre dcroissant de leffectif des profils) sont les plus utiles. Loption style= dfinit la mise en forme des cellules du tableau. Loption style=parent indique que les cellules hritent de la mise en forme du titre de la colonne. Sinon on dfinit les paramtres entre []. On se rfrera laide en ligne de SAS pour une liste exhaustive des paramtres. Citons-en quelques uns : Background Foreground Bordercolor Cell_height Cell_width Font_face Font_size couleur de fond des cellules couleur du texte couleur de la bordure du tableau hauteur des cellules largeur des cellules police taille de la police
Exemple dutilisation : style=[background=red] Note : la mise en forme nest visible que dans le fichier export par ODS (voir partie III C).
Axelle Chauvet-Peyrard
52
Anne 2006-2007
LANGAGE SAS
Lecture de sorties :
ods rtf file="w:/sas/cours/tabulate.rtf"; PROC TABULATE data=malib.bidon style=[font_size=2 font_face=verdana foreground=blue]; CLASS zone distribution; CLASSLEV zone distribution / style=[background=white font_size=2 font_face=verdana]; KEYLABEL pctn='percent' n='effectif' mean='moyenne' std='ct-type'; TABLE (mean std),va*zone; TABLE zone,distribution*(n pctn); VAR va; RUN; ods rtf close;
On obtient la sortie .rtf suivante :
moyenne cart-type
8279.50
6876.15 1784.26
distribution
locale nationale rgionale effectif percent effectif percent effectif percent
zone
IF NE NW SE SW . 8 . 14 20 . 16.00 . 28.00 40.00 1 . . . . 2.00 . . . . 3 1 2 1 . 6.00 2.00 4.00 2.00 .
Linstruction TABLE (mean std),va*zone; calcule la moyenne et lcart-type (deux lignes dans le tableau) de la valeur ajoute sur chacune des sous-populations zone=IF, zone=NE, zone=NW, zone=SE et zone=SW (modalits en colonnes). Linstruction TABLE zone,distribution*(n pctn); calcule leffectif et le pourcentage de leffectif total de chacun des profils de (zone, distribution) recenss dans la table. Les modalits de zone sont en ligne. Les modalits de distribution et les statistiques sont en colonne. Linstruction
KEYLABEL pctn='percent' n='effectif' std='cart-type'; permet aux noms des statistiques dtre clairs.
Les rsultats apparaissent en Verdana bleu de taille 2 (9 pt) grce loption font_face=verdana foreground=blue] de la PROC. Les cases portant le titre des modalits ont un fond blanc grce linstruction
mean='moyenne'
style=[font_size=2
Axelle Chauvet-Peyrard
53
Anne 2006-2007
LANGAGE SAS
2. 3. 4. 5.
La PROC UNIVARIATE peut galement raliser un test de normalit ainsi que des graphiques de distribution : box plot (bote moustaches), diagramme stem and leaf et graphe dajustement une loi normale. Cest enfin la reine des quantiles, puisquelle peut calculer tous les centiles, il suffit de passer commande !
PROC UNIVARIATE data= <options> ; VAR liste_variables ; < PROBPLOT variable / options ; > < BY liste_variables ; > < FREQ variable ; > < WEIGHT variable ; > < ID liste_variables ; > < OUTPUT <OUT=nom_table> <mot_cle_de_la_statistique=nom_stat_dans_la_table_sortie> <idem avec autres statistiques> <PCTLPTS=liste_centiles PCTLPRE=liste_prfixes_centiles> < PCTLNAMES=liste_suffixes_pour_centiles> ; >
Les options :
Les deux options les plus frquemment utilises sont loption normal et loption plots. Loption normal produit un test dadquation une loi normale de la distribution de la (des) variable(s) indique(s) dans linstruction VAR. Loption plots ralise les graphiques de distribution dont on a dj parl.
Loption freq qui gnre ldition de tableaux recensant les modalits de la (des) variable(s) indique(s) dans linstruction VAR, ainsi que les effectifs, frquences et frquences cumules desdites modalits. Loption mu0= permet de dfinir la valeur de rfrence pour lhypothse nulle du test de location (par dfaut, cette valeur est gale 0, ce qui signifie que lhypothse nulle du test est : la moyenne est nulle). Loption nextrobs= dfinit le nombre dobservations extrmes que lon souhaite diter (par dfaut ce paramtre vaut 5, ce qui signifie que les 5 plus basses et les 5 plus leves des observations sont dites).
Axelle Chauvet-Peyrard
54
Anne 2006-2007
LANGAGE SAS
Les instructions :
Les instructions VAR, BY, WEIGHT, FREQ et ID fonctionnent comme pour les autres procdures qui les utilisent. On peut se rfrer lexplication donne dans le cadre de la PROC MEANS. Linstruction PROBPLOT permet de tracer la courbe de distribution de la variable indique, en la superposant une courbe de distribution choisie parmi les lois classiques. Ce choix (facultatif) seffectue grce loption que lon indique derrire linstruction PROBPLOT. Par exemple, pour tracer la courbe dune loi normale, on utilise loption normal. Cette option comporte comme sous-options (indiques entre parenthses) : mu= et sigma= qui prcisent les paramtres de la loi ; mu=est (resp. sigma=est) indique que la moyenne (resp. lcart-type) considre est celle (celui) de lchantillon. On peut galement choisir de tracer la courbe dune loi bta, gamma, exponentielle, lognormale, ou Weibull. On se rfrera laide de SAS pour le dtail de ces options. Les autres options ont trait la prsentation des courbes. L encore, on se rfrera laide de SAS.
Axelle Chauvet-Peyrard
55
Anne 2006-2007
LANGAGE SAS
Basic Statistical Measures Location Mean Median Mode MEAN MEDIAN MODE Std Deviation Variance Range Interquartile range Variability STD VAR RANGE QRANGE
Tests for Location: Mu0=0.00 Test Statistic Students t Sign Signed Rank T M S Value T MSIGN SIGNRANK Pr > | t | Pr >= | M | Pr >= | S | p-value PROBT PROBM PROBS
Quantiles (Definition 5) Quantile 100% Max 99% 95% 90% 75% Q3 50% Med 25% Q1 10% 5% 1% 0% Min Estimate MAX P99 P95 P90 Q3 MEDIAN Q1 P10 P5 P1 MIN
Extreme Observations ------Lowest-----------Highest-----Value Obs Value Obs Outre ces statistiques, il est galement possible de demander dans linstruction OUTPUT : NMISS NOBS NORMAL PROBN nombre dobservations ayant une valeur manquante nombre total dobservations statistique du test de normalit niveau de significativit du test de normalit
Axelle Chauvet-Peyrard
56
Anne 2006-2007
LANGAGE SAS
Exemple :
PROC UNIVARIATE plot normal ; VAR salaire ; BY sexe ; RUN ;
-------------------------------------------- sexe=F -----------------------------------The UNIVARIATE Procedure Variable: salaire (salaire en euros) Moments N Mean Std Deviation Skewness Uncorrected SS Coeff Variation 16 1589 714.659546 2.68443397 48059810 44.9754277 Sum Weights Sum Observations Variance Kurtosis Corrected SS Std Error Mean 16 25424 510738.267 8.59227515 7661074 178.664886
Basic Statistical Measures Location Mean Median Mode 1589.000 1379.000 1379.000 Variability Std Deviation Variance Range Interquartile Range 714.65955 510738 2942 694.00000
Tests for Location: Mu0=0 Test Student's t Sign Signed Rank -Statistict M S 8.893745 8 68 -----p Value-----Pr > |t| Pr >= |M| Pr >= |S| <.0001 <.0001 <.0001
Tests for Normality Test Shapiro-Wilk Kolmogorov-Smirnov Cramer-von Mises Anderson-Darling --Statistic--W D W-Sq A-Sq 0.685914 0.282596 0.270147 1.643833 -----p Value-----Pr Pr Pr Pr < > > > W D W-Sq A-Sq 0.0001 <0.0100 <0.0050 <0.0050
Quantiles (Definition 5) Quantile 100% Max 99% 95% 90% 75% Q3 50% Median 25% Q1 10% 5% 1% 0% Min Axelle Chauvet-Peyrard Estimate 3963.0 3963.0 3963.0 2088.0 1859.5 1379.0 1165.5 1033.0 1021.0 1021.0 1021.0 Anne 2006-2007
57
LANGAGE SAS
Extreme Observations ----Lowest---Value 1021 1033 1067 1097 1234 Obs 15 13 16 9 14 ----Highest--Value 1844 1875 1905 2088 3963 Obs 8 4 3 2 1
Stem 4 3 3 2 2 1 1
Leaf 0
# 1
Boxplot *
| +--+--+ *-----*
Normal Probability Plot 4250+ | * | ++++++ 2750+ +++++++ | +++++++* | +++++++* * * 1250+ * * * *+*+*+** * * +----+----+----+----+----+----+----+----+----+----+ -2 -1 0 +1 +2 -------------------------------------------- sexe=H -----------------------------------The UNIVARIATE Procedure Variable: salaire (salaire en euros) Moments N Mean Std Deviation Skewness Uncorrected SS Coeff Variation 15 2264.33333 1395.26227 1.74834242 104162677 61.6191199 Sum Weights Sum Observations Variance Kurtosis Corrected SS Std Error Mean 15 33965 1946756.81 3.26071832 27254595.3 360.25517
Basic Statistical Measures Location Mean Median Mode 2264.333 1951.000 . Variability Std Deviation Variance Range Interquartile Range 1395 1946757 5129 1160
58
Anne 2006-2007
LANGAGE SAS
Test Student's t Sign Signed Rank -Statistict M S 6.28536 7.5 60
Tests for Normality Test Shapiro-Wilk Kolmogorov-Smirnov Cramer-von Mises Anderson-Darling --Statistic--W D W-Sq A-Sq 0.814436 0.230963 0.165237 0.983563 -----p Value-----Pr Pr Pr Pr < > > > W D W-Sq A-Sq 0.0057 0.0300 0.0136 0.0097
Quantiles (Definition 5) Quantile 100% Max 99% 95% 90% 75% Q3 50% Median 25% Q1 10% 5% 1% 0% Min Estimate 6097 6097 6097 4268 2507 1951 1347 1036 968 968 968
Extreme Observations ----Lowest---Value 968 1036 1082 1347 1353 Obs 15 13 14 10 11 ----Highest--Value 2286 2507 3353 4268 6097 Obs 4 6 3 2 1
Axelle Chauvet-Peyrard
59
Anne 2006-2007
LANGAGE SAS
Stem 6 5 4 3 2 1 0 Leaf 1 3 4 02235 0013449 # 1 1 1 5 7
Normal Probability Plot 6500+ * | ++++++ | *+++++++ 3500+ +++*+++ | +++**+* * | * *+*+*+** * 500+ *+++++++ +----+----+----+----+----+----+----+----+----+----+ -2 -1 0 +1 +2 Les deux analyses ci-dessus correspondent au calcul de statistiques univaries sur les deux souspopulations dfinies par les modalits de la variable sexe (instruction BY) : sous-population masculine et sous-population fminine. Outre la sortie standard, un test de normalit a t dit : vu que la taille de notre chantillon est assez petite, on se rfre au test de Shapiro-Wilk. La p-value tant trs infrieure 0,05 dans les deux cas, on rejette 5% lhypothse dadquation une loi normale des deux distributions de salaire considres. Ci-aprs ldition des botes moustaches gnres par loption PLOT.
The UNIVARIATE Procedure Variable: salaire (salaire en euros) Schematic Plots | | + | | | + | | | + | | | + | | | + | | | + | | | + | | | + | |
6000
5500
5000
4500
0 *
4000
3500
3000
2500
| | | | | | | +-----+ | | | + |
Axelle Chauvet-Peyrard
60
Anne 2006-2007
LANGAGE SAS
On prfrera diter les boxplots avec une procdure adapte, soit la PROC BOXPLOT (voir le paragraphe consacr dans la partie II C).
Axelle Chauvet-Peyrard
61
Anne 2006-2007
LANGAGE SAS
rXY =
cov( x, y ) X . Y
Alors il existe une relation linaire entre X et Y si et seulement si | rXY | = 1. La procdure dite galement la p-value relative au test de significativit de chaque coefficient. Si cette valeur est infrieure 0,05 on peut conclure que le coefficient est significativement diffrent de zro au seuil de 5%.
b ( X ,Y ) =
CD (n E X )(n EY )
o n est le nombre total de paires dindividus (i ; j) C est le nombre de paires (i ; j) concordantes , cest--dire telles que i et j sont classs dans le mme ordre pour les variables X et Y D est le nombre de paires discordantes EX est le nombre dex-aequo au moins pour X, cest--dire Xi = Xj EY est le nombre dex-aequo au moins pour Y Si | b | = 1, il existe alors une relation biunivoque entre X et Y. On pourra dire que X est une fonction strictement (d)croissante de Y et vice versa. Pour le coefficient de corrlation des rangs de Spearman, on commence par calculer rangX et rangY ; rangX vaut 1 pour la plus grande valeur de X, 2 pour la deuxime plus grande valeur de X, etc Et alors s est le coefficient de corrlation linaire entre rangX et rangY. Remarque : Comme il sagit dune procdure qui traite des variables numriques, on ne peut pas lui demander de traiter des variables caractres ! Les coefficients b et s seront dits sur des variables numriques auxquelles on aura appliqu un format. Tous les autres coefficients relatifs la corrlation entre variables qualitatives sobtiennent avec la PROC FREQ, dont la raison dtre est justement le traitement statistique des variables qualitatives.
Axelle Chauvet-Peyrard
62
Anne 2006-2007
LANGAGE SAS
PROC CORR data= <options> ; VAR liste_variables ; < WITH liste_variables ; > < BY liste_variables ; > < FREQ variable ; > < PARTIAL liste_variables ; > < WEIGHT variable ; >
Les instructions :
Linstruction VAR permet de prciser les variables auxquelles on sintresse. Elles doivent tre numriques. Par dfaut, la matrice des corrlations croise toutes les variables dfinies dans VAR deux deux. Linstruction WITH permet de choisir les variables qui apparaissent en ligne dans la matrice. Seront croises uniquement chaque variable de VAR avec chaque variable de WITH. Linstruction BY sert distinguer des sous-groupes dans notre population. Les corrlations sont alors calcules pour chacun des sous-groupes, le dcoupage de la population se faisant suivant les modalits des variables prcises dans linstruction BY. Linstruction PARTIAL fournit la liste des variables dont on veut supprimer linfluence dans le calcul des corrlations partielles. Linstruction WEIGHT permet de dfinir une variable qui servira pondrer les observations avant le calcul des corrlations. Lorsquune variable apparat dans linstruction FREQ, tout se passe comme si chaque observation i apparaissait v(i) fois dans la table, o v(i) est la valeur en i de la variable dsigne par linstruction FREQ.
Axelle Chauvet-Peyrard
63
Anne 2006-2007
LANGAGE SAS
Dfinir une option KENDALL, SPEARMAN ou HOEFFDING sans prciser PEARSON ou encore : option NOCORR
Axelle Chauvet-Peyrard
option NOPROB
Ce que la procdure peut diter tau-b de Kendall coefficient de corrlation des rangs de Spearman mesure de liaison de Hoeffding coefficient alpha de Cronbach matrice des covariances somme des carrs et des produits somme des carrs et des produits des carts la moyenne coefficients de corrlation partielle variances et carts-type partiels coefficients de Pearson pondrs coefficients calculs sur des sous-populations matrice des corrlations non carre
Comment le demander option KENDALL option SPEARMAN option HOEFFDING option ALPHA (avec option PEARSON) option COV (avec option PEARSON) option SSCP (avec option PEARSON) option CSSCP (avec option PEARSON) instruction PARTIAL (sauf avec option HOEFFDING) instruction PARTIAL (avec option PEARSON) instruction WEIGHT instruction BY instruction WITH
64
Anne 2006-2007
LANGAGE SAS
Lecture de sortie :
3 The CORR Procedure Variables: salaire subor Simple Statistics Std Dev Sum 1132 5.53464 4.61671 59389 61.00000 224.00000 anciennete
N 31 31 31
Minimum 968.00000 0 0
Simple Statistics Variable Label salaire salaire en euros subor nombre de subordonns anciennete Pearson Correlation Coefficients, N = 31 Prob > |r| under H0: Rho=0 salaire salaire salaire en euros subor nombre de subordonns anciennete 1.00000 subor 0.84629 <.0001 1.00000 anciennete 0.34976 0.0538 0.34600 0.0566 1.00000
0.34600 0.0566
Voici lexemple dune sortie standard de PROC CORR. Seule linstruction VAR a t prcise, sans aucune option. La procdure dite des statistiques univaries sur les trois variables concernes : nombre dobservations non manquantes, moyenne, cart-type, somme, minimum et maximum, ainsi que les labels desdites variables. Ensuite, elle dite la matrice carre des corrlations linaires, contenant aussi les niveaux de significativit des coefficients en question. On conclurait que la rmunration dun employ semble assez fortement lie au nombre de subordonns quil a ; ces deux variables tant lies, bien que beaucoup plus faiblement, lanciennet de lemploy.
Variables:
theatre
concert
Spearman Correlation Coefficients, N = 43 cine cine musee musee bibli bibli theatre theatre concert concert cine 1.00000 musee 1.00000 bibli 1.00000 theatre 1.00000 concert 1.00000 theatre 0.21904 bibli 0.45953 musee 0.45953 concert -0.24795 bibli -0.45746 musee -0.13112 concert -0.16705 concert -0.45746 cine 0.21904 theatre -0.24795 bibli -0.12184 cine -0.13112 theatre 0.15959 bibli 0.15959 musee -0.16705 concert -0.00120 theatre 0.03526 cine -0.12184 musee 0.03526 cine -0.00120
Cette deuxime sortie a t obtenue avec les options SPEARMAN, RANK, NOSIMPLE et NOPROB. On voit que les gens qui aiment bien aller la bibliothque ont tendance tre les mmes que ceux qui aiment bien aller au muse, alors quils diffrent assez souvent de ceux qui apprcient les concerts. Axelle Chauvet-Peyrard
65
Anne 2006-2007
LANGAGE SAS
PROC TTEST data= <options> ; CLASS variable ; <VAR variable_numrique ;> <BY variable ;> <WEIGHT variable ;>
Les options :
Loption alpha= dfinit la valeur du seuil pour le calcul des intervalles de confiance. Loption h0= permet de dfinir la valeur m telle que lon teste si lcart entre les moyennes est gal m. Par dfaut, m=0. Loption cochran dite lapproximation par la mthode de Cochran en plus de celle par la mthode de Satterthwaite pour le cas o les variances sont significativement diffrentes. Loption ci=none supprime ldition de lintervalle de confiance pour lcart-type.
Les instructions :
Comme toujours, linstruction VAR permet de prciser sur quelles variables (quantitatives) on travaille. Par dfaut, le test sera fait pour toutes les variables numriques de la table, sauf celles ventuellement utilises dans les instructions BY, FREQ et WEIGHT. Linstruction CLASS dfinit les sous-groupes sur lesquels on veut effectuer le test. Par exemple, linstruction CLASS sexe ; indique que lon souhaite comparer les moyennes entre le sous-groupe des hommes et le sous-groupe des femmes. Linstruction BY sert toujours dfinir des sous-populations. Les tests sont alors raliss pour chacune de ces sous-populations. Linstruction WEIGHT permet toujours de pondrer les observations.
Axelle Chauvet-Peyrard
66
Anne 2006-2007
LANGAGE SAS
The TTEST Procedure Statistics Lower CL Mean Mean 1208.2 1491.7 -1482 1589 2264.3 -675.3 Upper CL Lower CL Mean Std Dev Std Dev 1969.8 3037 131.21 T-Tests Variable salaire salaire Method Pooled Satterthwaite Variances Equal Unequal DF 29 20.6 t Value -1.71 -1.68 Pr > |t| 0.0975 0.1082 527.92 1021.5 873.87 714.66 1395.3 1097.3 Upper CL Std Dev Std Err 1106.1 2200.5 1475.1 178.66 360.26 394.35
sexe
F 16 H 15 Diff (1-2)
Equality of Variances Variable salaire Method Folded F Num DF 14 Den DF 15 F Value 3.81 Pr > F 0.0146
Il sagit ici de comparer la rmunration moyenne des hommes celle des femmes. On lit que le test dgalit des variances conclut au rejet de lhypothse nulle au seuil de 5%. Ayant conclu une diffrence significative des variances, on sintresse au test dgalit des moyennes selon la mthode de Satterthwaite. Ici si lon prend un seuil derreur de 5%, on accepte lhypothse nulle dgalit des moyennes. Mais on peut toutefois remarquer que la moyenne fminine : 1589, est bien en-dessous de la moyenne masculine : 2264,3. En fait le problme ici, cest quon ne peut raisonnablement retenir lhypothse de normalit de salaire sur chacun des sous-groupes.
Axelle Chauvet-Peyrard
67
Anne 2006-2007
LANGAGE SAS
O u est le rsidu et b0,,bp sont les paramtres. Il est toujours bon de faire quelques graphiques avant toutes choses afin de ne pas se lancer tte baisse dans une rgression linaire qui ne serait pas pertinente (homoscdasticit, forme de la fonction de rgression non linaire).
PROC REG data= <options> ; MODEL variable_explique = variables_explicatives </options> ; < BY liste_variables ; > < ID liste_variables ; > < WEIGHT variable ; > < PLOT var_ordonnee*var_abscisse </options> ; > < RESTRICT equation ; > < <label : > TEST equation ; > < OUTPUT out= table_sortie liste_stats_a_garder ; >
Quelques instructions :
La syntaxe prsente ci-dessus ne comporte pas toutes les instructions qui sont accessibles avec la PROC REG. On se rfrera laide de SAS pour en savoir plus. Linstruction MODEL permet de dfinir la variable rgresser y ainsi que la liste des variables explicatives x1,,xn . Elle donne accs de nombreuses options dont nous parlerons par la suite. Linstruction BY permet toujours de dfinir des sous-populations. Dans ce cas, la modlisation est ralise pour chacune de ces sous-populations. Linstruction ID dfinit la variable qui sert didentifiant lobservation. En labsence de cette instruction, cest le numro de lobservation qui remplit cet office. Linstruction WEIGHT permet toujours de pondrer les observations. Linstruction PLOT permet de tracer des graphes. On peut utiliser les statistiques produites dont la liste est donne plus bas (auquel cas il faut donner leur mot cl suffix dun point) aussi bien que des variables de linstruction model. On peut aussi utiliser la variable numro dobservation en lappelant OBS. Dautres encore sont disponibles, pour les connatre on se reportera ventuellement laide de SAS. Par exemple, pour tracer le graphe des rsidus en fonction de lobservation, on crit :
PLOT r.*obs.;
Axelle Chauvet-Peyrard
68
Anne 2006-2007
LANGAGE SAS
Linstruction RESTRICT permet dimposer des restrictions sur les paramtres. Par exemple, si lon sait que deux rgresseurs sont lis linairement par la relation c1*x1=c2*x2, on crira :
RESTRICT c1*x1=c2*x2 ;
ou :
RESTRICT c1*x1-c2*x2 ;
Si plusieurs restrictions doivent tre imposes, on les spare par des virgules au sein dune mme instruction RESTRICT. On peut bien sr aussi utiliser la variable INTERCEPT (qui dsigne la constante du modle). Linstruction TEST permet de faire des tests sur les paramtres estims. Par exemple, si lon veut tester si b1 = b2 , on crit : TEST x1=x2 ; Linstruction OUTPUT permet de rcuprer certaines des grandeurs calcules dans une table qui est celle indique dans OUT= . Il suffit den donner la suite sous la forme mot_cl = noms_variables. Par exemple :
Lhtroscdasticit et lautocorrlation
autocorrls lordre 1 (cest--dire quil existe un rel tel que : un = .un-1 ), lhypothse nulle tant quil ne lest pas. Ce test sapplique dans le cas o nos donnes sont des sries temporelles. On notera que loption DW ne calcule pas de p-value, il faut donc se rfrer la table statistique de DurbinWatson pour conclure. On rappelle la forme de la statistique de Durbin-Watson : Loption dw permet de raliser un test de Durbin-Watson. Il sagit de tester si les rsidus sont
dw =
(u
i =2
u i 1 ) 2
2 i
u
i =1
dL
et
dU.
Loption spec (de la PROC REG et non de linstruction MODEL !) ralise un test de White pour diagnostiquer lhtroscdasticit ventuelle. Lhypothse nulle est que la variance des rsidus est une constante.
69
Anne 2006-2007
LANGAGE SAS
hii = xi ( X X ) 1 xi H = X ( X X ) 1 X
Si
hii > 2
rgresseurs. Cest dautant plus vrai que hii est proche de 1. Pour la variable explique : On calcule les rsidus studentiss ri :
p +1 , n
ri =
ui Y Yi = i V (u i ) 1 hii
et les rsidus studentiss validation croise Ri : cest le rsidu studentis en i calcul sur lestimation du modle dans lequel on a t i. Ri mesure linfluence qua lobservation i sur sa propre estimation. Si la valeur absolue de ces grandeurs est trs suprieure 2, alors lobservation est considre comme atypique au regard de la variable explique. Influentes : Note : lindice i sera apos pour prciser que la grandeur est calcule pour le modle priv de lobservation i. Note : on dsignera le vecteur des paramtres indiffremment par b ou par De manire globale : On peut calculer lagrgat dit PRESS (Predicted Residuals Sum of Squares) :
PRESS = Yi Yi ,i
i =1
Plus le PRESS sloigne de la somme des carrs des rsidus (SSE), plus on peut suspecter lexistence dobservations influentes. Pour lestimation des paramtres b : On calcule la distance de Cook qui mesure en quelque sorte la distance entre le vecteur des paramtres estims b et ce mme vecteur calcul sur le modle priv de lobservation i :
Di =
( i ) X X ( i ) 2 ( p + 1)
lorsque Di > 1 on conclura linfluence de lobservation. Pour lestimation du paramtre bj : On calcule la quantit :
DFBETAS ij =
j i , j i ( X X ) 1 jj
DFBETAS ij >
2 n
lestimation du paramtre bj. Pour lestimation de Y en i : On calcule une quantit qui mesure linfluence de i sur sa propre valeur ajuste : Axelle Chauvet-Peyrard
70
Anne 2006-2007
LANGAGE SAS
DFFITS i =
Yi Yi ,i i hii
Lorsque
DFFITS i > 2
CovRatioi
( ) det( X X ) = ( ) det( X X )
2 i p +1 2 p +1 i i
Si
CovRatioi 1 > 3
loign de 1.
atypique
TOL j = 1 R j ,
2
Rj
les autres rgresseurs. Dans le cas extrme o Xj est combinaison linaire des autres rgresseurs, Axelle Chauvet-Peyrard
Rj
71
Anne 2006-2007
LANGAGE SAS
= 1.
On en dduit que si TOLj < 0,1 (ou VIFj > 10), on peut suspecter une situation de colinarit pour le rgresseur Xj, et ce dautant plus que TOLj est proche de 0 (que VIFj est grand).
Les options collin et collinoint permettent de prciser le nombre de relations de colinarit existant. Ces deux options calculent les indices de conditionnement CIj ainsi que les proportions de variance notes VarPropjk :
CI j =
.1 . j
o les j sont les valeurs propres de la matrice des corrlations des rgresseurs, ordonnes de manire dcroissante. notant que la variance du kme coefficient estim se dcompose en la somme de p composantes de type
kj / j .
COLLIN sutilise lorsque le modle spcifie parmi ses rgresseurs une constante (qui a une signification physique). Dans les autres cas, on utilise COLLINOINT. On considre quun CIj > 30 est louche. Lexistence dune relation de colinarit apparat dautant plus vidente que CIj est grand. Pour savoir quels rgresseurs elle met en cause, on regarde ensuite les VarPropjk pour ce j, et ceux qui sont suprieurs 0,5 dsignent les coupables.
La slection de variables
Loption selection= ralise des procdures de slection des rgresseurs les plus pertinents parmi ceux proposs dans linstruction MODEL. Les critres de choix des variables varient selon la mthode choisie. Suivent les mthodes les plus utilises : Loption selection=rsquare fournit la liste des modles possibles par ordre croissant de nombre de variables explicatives puis par ordre dcroissant de R. Loption selection=cp utilise le critre du Cp de Mallows pour classer les sous-modles possibles. Cette statistique fournit une mesure de lerreur quadratique moyenne. Lorsquun sous-modle k rgresseurs est proche du modle complet au sens de lEQM, on doit avoir Cp k+1. Loption selection=forward procde une slection des variables en ce sens quelle propose un sous-modle. La procdure consiste intgrer pas pas, en partant du modle avec la seule constante, le rgresseur qui induit le plus important gain de somme des carrs expliqus. La procdure sarrte lorsque le gain en question devient infrieur un certain seuil que lon peut modifier. Loption selection=backward repose sur le mme principe que la procdure forward, sauf que cette fois on part du modle complet et on retire pas pas le rgresseur qui induit la plus petite augmentation de somme des carrs rsiduels. Loption selection=stepwise, enfin, est du mme type que forward, sauf quil est possible que des variables introduites une certaine tape soient retires du sous-modle dans une autre tape. Elle combine donc procdure forward et procdure backward.
Axelle Chauvet-Peyrard
72
Anne 2006-2007
LANGAGE SAS
Liste des grandeurs que lon peut rcuprer dans PLOT ou dans OUTPUT (et mots-cls associs) :
Cookd Covratio Dffits H statistique D de Cook relative linfluence dune observation mesure de linfluence de lobservation sur la covariance des paramtres mesure de linfluence de lobservation sur la valeur estime de y levier de lobservation
Lcl (resp. Ucl) borne infrieure (resp. suprieure) de lintervalle de confiance pour la valeur prdite yi Lclm (resp. Uclm) borne infrieure (resp. suprieure) de lintervalle de confiance pour la moyenne de y Predicted ou P Residual ou R Student Rstudent Press Stdi Stdp Stdr estimation de la variable explique rsidu de la rgression = y - ypredicted rsidus studentiss rsidus studentiss validation croise rsidu rapport 1-H cart-type de lestimation de yi cart-type de lestimation de la moyenne de y cart-type des rsidus estims
Lecture de sorties :
Une sortie standard :
proc reg data=malib.employe; model salaire = anciennete subor age; run;
The REG Procedure Model: MODEL1 Dependent Variable: salaire salaire en euros Analysis of Variance Sum of Squares 27848720 10597854 38446573 Mean Square 9282907 392513
DF 3 27 30
F Value 23.65
Pr > F <.0001
0.7243 0.6937
Parameter Estimates Parameter Estimate 1117.36274 -9.21669 167.11617 14.21831 Standard Error 573.88399 46.23709 22.13012 21.51873
DF 1 1 1 1
La sortie standard contient donc : Un bloc danalyse de la variance (dcomposition de la somme des carrs totaux en somme des carrs rsiduels (ligne Error) et somme des carrs estims (ligne Model)). A ce niveau est aussi ralis un test de Fischer de validit globale du modle. Lhypothse nulle est (H0) : les paramtres sont tous simultanment nuls. Ici la p-value est trs infrieure 0,5, donc on rejette (H0), ce qui signifie que le modle est globalement valide. Axelle Chauvet-Peyrard
73
Anne 2006-2007
LANGAGE SAS
La colonne DF indique le nombre de degrs de libert (degrees of freedom). Le DF de la ligne Model reprsente p, cest dire le nombre de rgresseurs, constante exclus. Le DF de la ligne Corrected Total vaut n-1 o n est la taille de la population. La colonne Mean Square calcule le rapport de Sum of Squares au DF. Un bloc intermdiaire : Root MSE est lcart-type estim. Dependent Mean est la moyenne de y. Coeff Var est le coefficient de variation, dfini comme le rapport des deux grandeurs prcdentes multipli par 100. Enfin on a la donne du R (rapport de la somme des carrs estims la somme des carrs totaux) et du R ajust. Notons que le R nest pas interprtable dans un modle sans constante. Un bloc destimation des paramtres liste les rgresseurs, avec une estimation du paramtre associ, lcart-type estim pour ledit paramtre, ainsi que la statistique et la p-value relatives un test de Student de nullit du paramtre (lhypothse nulle tant justement la nullit du paramtre). Ici on voit que les variables anciennete et age ne sont pas significatives.
nb subordonns salaire en E
Dependent Variable: salaire salaire en E Analysis of Variance Sum of Squares 27848720 10597854 38446573 626.50866 1915.77419 32.70264 Mean Square 9282907 392513
DF 3 27 30
F Value 23.65
Pr > F <.0001
0.7243 0.6937
Parameter Estimates Parameter Estimate 1117.36274 -9.21669 167.11617 14.21831 Standard Error 573.88399 46.23709 22.13012 21.51873 Variance Inflation 0 3.48267 1.14660 3.46648
DF 1 1 1 1
Axelle Chauvet-Peyrard
74
Anne 2006-2007
LANGAGE SAS
Number 1 2 3
Test of First and Second Moment Specification DF 9 Chi-Square 12.49 Pr > ChiSq 0.1873 0.852 31 0.484
Output Statistics Dep Var salaire 3963 2088 1905 1875 1356 1394 1379 1844 1097 1372 1417 1379 1033 1234 1021 1067 6097 4268 3353 2286 1905 2507 2210 1951 2241 1347 1353 1361 1036 1082 968 Predicted Std Error Std Error Student Value Mean Predict Residual Residual Residual 2653 1550 1903 1575 1535 1641 1455 2280 1435 1627 1790 1689 1526 2102 1440 1626 6775 2626 2533 1693 1679 1751 1654 1585 1900 1687 1484 1607 1574 1612 1402 171.6793 128.3430 213.4522 146.2143 138.7658 141.6958 190.6224 257.8219 205.9660 167.6276 326.9184 190.2358 131.9155 387.5017 194.9316 172.5952 590.4819 207.2753 199.7933 176.9587 138.0213 119.4985 217.4930 188.4737 244.1068 299.4044 161.1971 126.6470 121.7014 158.8746 236.1441 1310 537.5132 1.7724 300.2916 -179.4820 -246.7983 -76.1737 -436.1149 -338.1672 -255.3666 -373.3427 -310.2414 -493.2653 -867.7765 -419.1689 -558.7935 -677.6047 1642 819.8226 593.4051 225.8369 755.9587 555.8449 366.2884 341.2009 -339.8818 -130.6104 -246.3601 -537.9219 -529.5752 -433.7290 602.5 613.2 589.0 609.2 610.9 610.3 596.8 571.0 591.7 603.7 534.5 596.9 612.5 492.3 595.4 602.3 209.4 591.2 593.8 601.0 611.1 615.0 587.5 597.5 577.0 550.3 605.4 613.6 614.6 606.0 580.3 2.175 0.877 0.00301 0.493 -0.294 -0.404 -0.128 -0.764 -0.572 -0.423 -0.699 -0.520 -0.805 -1.763 -0.704 -0.928 -3.236 2.778 1.381 0.987 0.370 1.229 0.946 0.613 0.591 -0.618 -0.216 -0.402 -0.875 -0.874 -0.747 Cook's D | 0.096 | 0.008 | 0.000 | 0.003 | 0.001 | 0.002 | 0.000 | 0.030 | 0.010 | 0.003 | 0.046 | 0.007 | 0.008 | 0.481 | 0.013 | 0.018 | 20.820 | 0.237 | 0.054 | 0.021 | 0.002 | 0.014 | 0.031 | 0.009 | 0.016 | 0.028 | 0.001 | 0.002 | 0.008 | 0.013 | 0.023
Obs 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
-2-1 0 1 2
Axelle Chauvet-Peyrard
75
Anne 2006-2007
LANGAGE SAS
Output Statistics Hat Diag H 0.0751 0.0420 0.1161 0.0545 0.0491 0.0512 0.0926 0.1694 0.1081 0.0716 0.2723 0.0922 0.0443 0.3826 0.0968 0.0759 0.8883 0.1095 0.1017 0.0798 0.0485 0.0364 0.1205 0.0905 0.1518 0.2284 0.0662 0.0409 0.0377 0.0643 0.1421 Cov Ratio 0.5820 1.0815 1.3157 1.1863 1.2074 1.1962 1.2785 1.2829 1.2419 1.2197 1.4857 1.2306 1.1041 1.1550 1.1956 1.1055 1.4618 0.3399 0.9659 1.0909 1.1977 0.9586 1.1555 1.2089 1.3014 1.4238 1.2368 1.1838 1.0771 1.1081 1.2468
Obs 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
RStudent 2.3497 0.8727 0.002953 0.4859 -0.2887 -0.3981 -0.1253 -0.7577 -0.5643 -0.4165 -0.6918 -0.5126 -0.8000 -1.8388 -0.6973 -0.9253 -4.0588 3.2250 1.4054 0.9869 0.3636 1.2414 0.9441 0.6058 0.5841 -0.6104 -0.2119 -0.3952 -0.8714 -0.8699 -0.7412
DFFITS 0.6695 0.1826 0.0011 0.1166 -0.0656 -0.0924 -0.0400 -0.3421 -0.1964 -0.1157 -0.4232 -0.1634 -0.1723 -1.4474 -0.2283 -0.2652 -11.4459 1.1306 0.4729 0.2906 0.0821 0.2412 0.3495 0.1911 0.2471 -0.3321 -0.0564 -0.0816 -0.1726 -0.2280 -0.3016
-----------------DFBETAS----------------Intercept anciennete subor age -0.2275 0.0918 -0.0008 0.0469 -0.0203 0.0315 -0.0357 0.2724 -0.1348 -0.0091 0.1507 0.0511 -0.0916 -1.1639 -0.1739 0.1072 0.6305 0.3527 0.1251 0.0517 0.0553 0.0697 0.0917 0.0742 -0.0761 0.2042 -0.0455 0.0100 -0.0246 0.0715 -0.2224 -0.3772 0.0606 -0.0004 0.0654 0.0204 0.0227 -0.0192 0.1918 0.0218 -0.0595 -0.1647 -0.0379 -0.0040 -1.3134 -0.0066 0.1853 0.3682 0.7929 -0.2068 -0.1690 0.0108 0.0670 -0.2004 0.1411 0.0930 0.2951 -0.0196 0.0181 0.0303 0.1477 0.0206 0.3181 -0.0522 -0.0003 -0.0429 0.0067 0.0369 0.0019 0.0317 -0.0198 0.0518 0.1893 0.0780 0.0256 -0.1305 -0.0156 0.0524 -10.5110 0.2443 0.2985 0.0378 0.0027 -0.0530 0.0677 -0.0698 -0.0966 0.0326 0.0047 0.0290 0.0473 0.0460 -0.0414 0.3600 -0.0648 0.0008 -0.0454 -0.0018 -0.0438 0.0298 -0.2940 0.0725 0.0174 -0.0691 -0.0381 0.0447 1.3126 0.1083 -0.1789 -0.3359 -0.5039 0.0176 0.0567 -0.0344 -0.0425 0.0391 -0.0910 0.0365 -0.2849 0.0346 -0.0261 -0.0197 -0.1362 0.1311
0 10597854 50241922
Axelle Chauvet-Peyrard
76
Anne 2006-2007
LANGAGE SAS
The REG Procedure Model: MODEL1
Test 1 Results for Dependent Variable salaire Mean Square 50909 392513
DF 1 27
F Value 0.13
Pr > F 0.7215
Loption CORR dite la matrice des corrlations. On peut dj reprer que les variables age et anciennete sont fortement corrles. Le graphique des valeurs prdites ninvalide pas notre choix de modle : la forme fonctionnelle nest pas mauvaise a priori, et on ne repre pas dhtroscdasticit au premier coup dil. Par contre, on repre une valeur aberrante. Loption DW ralise un test de Durbin Watson. Dans une table statistique de Durbin Watson, on pourrait relever les seuils relatifs notre modle, et on dduirait que lhypothse dautocorrlation lordre 1 peut tre accepte 5%. Cela dit, ici cela na pas beaucoup de sens. Dans un pareil cas, on regarderait plutt le test de White ralis par loption SPEC. Ici lhypothse nulle dhomoscdasticit est accepte 5%. Lanalyse des observations atypiques et influentes par les options R et INFLUENCE montre que : Les observations 1, 17 et 18 sont atypiques pour le salaire. Dans la table on peut vrifier quil sagit des trois plus gros salaires, et que les 17 et 18 sont particulirement loigns du reste des valeurs. Lobservation 17, et une moindre mesure lobservation 14, sont atypiques pour les rgresseurs. Effectivement, on remarque que la 17 a 30 subordonns (les autres valeurs se situant entre 0 et 6) et un ge et une anciennet assez levs (55 ans et 15 ans) par rapport la moyenne. Quant lobservation 14, dont le caractre atypique est moins marqu, on peut noter quelle prsente une anciennet et un nombre de subordonns un peu plus lev que la moyenne alors que son ge est plutt infrieur la moyenne. Lobservation 17 se dmarque nettement du lot en ce qui concerne son influence sur lestimation. La distance de Cook est fortement leve pour cette observation. La 17 influe sur sa propre prdiction, et particulirement sur lestimation du coefficient de la variable subor, ce qui semble logique. En conclusion de cette analyse, on dcidera de supprimer de notre rgression lobservation 17. Axelle Chauvet-Peyrard
77
Anne 2006-2007
LANGAGE SAS
A ce stade il nest pas ncessaire de poursuivre lanalyse. On recommencerait la procdure aprs avoir t lobservation aberrante. Mais puisquil ne sagit ici que de savoir lire des sorties, continuons : Grce loption VIF, on repre que ces variables ont justement un facteur dinfluence de la variance plus lev que les autres ; mais ceci nest pas flagrant. On porte donc notre regard sur la sortie de loption COLLINOINT. Mme si les CI ne sont pas trs importants, les Proportion of Variation sont tels que lon peut au moins souponner une relation de colinarit entre lge et lanciennet. A ce stade, on peut alors dcider de supprimer une des deux variables impliques dans la relation de colinarit.
The REG Procedure Model: MODEL1 Dependent Variable: salaire C(p) Selection Method Number in Model 1 2 2 3 1 1 2
Variables in Model subor age subor anciennete subor age anciennete subor age anciennete age anciennete
La procdure napporte pas grand chose. Elle semble dsigner le modle que lon a choisi, mais les trois prcdents ne sont pas fondamentalement plus mauvais.
The REG Procedure Model: MODEL1 Dependent Variable: salaire R-Square Selection Method Number in Model
R-Square
Variables in Model
1 0.6609 subor 1 0.0463 age 1 0.0384 anciennete ---------------------------------------------2 0.6771 age subor 2 0.6652 anciennete subor 2 0.0474 age anciennete ---------------------------------------------3 0.6817 age anciennete subor Il sagit darbitrer entre biais et prcision. Le premier souci commande de ne pas trop choisir de rgresseurs, tandis que le deuxime pousse amliorer le R. Ici on voit que le meilleur R pour les modles 1 variable nest gure infrieur au meilleur des R (qui correspond au modle total). On est donc amen choisir le modle avec le seul rgresseur subor.
Axelle Chauvet-Peyrard
78
Anne 2006-2007
LANGAGE SAS
La procdure stepwise conduit-elle au mme rsultat ?
The REG Procedure Model: MODEL1 Dependent Variable: salaire salaire en euros Stepwise Selection: Step 1 Variable subor Entered: R-Square = 0.6609 and C(p) = 1.7009 Analysis of Variance Sum of Squares 13469424 6911745 20381169 Standard Error 103.40401 48.03863 Mean Square 13469424 246848
F Value 54.57
Pr > F <.0001
Bounds on condition number: 1, 1 ---------------------------------------------------------------------------------------Stepwise Selection: Step 2 Variable age Entered: R-Square = 0.6771 and C(p) = 2.3790 Analysis of Variance Sum of Squares 13799241 6581928 20381169 Standard Error 368.87468 48.02542 9.68638
DF 2 27 29
F Value 28.30
Pr > F <.0001
Bounds on condition number: 1.012, 4.0482 ---------------------------------------------------------------------------------------Stepwise Selection: Step 3 Variable age Removed: R-Square = 0.6609 and C(p) = 1.7009 Analysis of Variance Sum of Squares 13469424 6911745 20381169 Standard Error 103.40401 48.03863
DF 1 28 29
Mean Square
F Value 54.57
Pr > F <.0001
13469424 246848
Bounds on condition number: 1, 1 ---------------------------------------------------------------------------------------All variables left in the model are significant at the 0.1500 level. The stepwise method terminated because the next variable to be entered was just removed. Axelle Chauvet-Peyrard
79
Anne 2006-2007
LANGAGE SAS
Summary of Stepwise Selection Variable Entered subor age age Variable Removed Number Vars In 1 2 1 Partial R-Square 0.6609 0.0162 0.0162 Model R-Square 0.6609 0.6771 0.6609
Step 1 2 3
La procdure sarrte au bout de la troisime tape. Le modle final propos est bien celui constitu du seul rgresseur subor. Notons que la procdure forward proposerait de garder aussi la variable age. A ce stade on recommencerait la rgression soit avec subor seulement, soit avec subor et age. Lestimation du deuxime modle indique que la variable age napparat pas significative. Le modle que lon retient est donc : salaire = 1410 + 355 * subor
Axelle Chauvet-Peyrard
80
Anne 2006-2007
LANGAGE SAS
MODEL y = x1 x2 x3 ;
Correspond au modle suivant :
P[ y = 0 ] Log P[ y = 1] = 0 + 1 x1 + 2 x 2 + 3 x3
Par dfaut, SAS modlise la probabilit de lvnement correspondant la plus basse des modalits de y. La mthode utilise est la maximisation de la vraisemblance de y sachant x. Les tests raliss relativement la nullit des coefficients sont des tests de Wald. Concernant la validit globale du modle, le test du score et le test du rapport des maxima de vraisemblance sont dits (on rappelle quils sont quivalents asymptotiquement), en plus des critres dAikaike et de Schwartz. On rappelle que parmi une liste de modles embots, un modle est dautant meilleur que ces critres sont faibles. La PROC LOGISTIC a cet avantage sur la PROC CATMOD (autre procdure qui permet de raliser des rgressions sur variables catgorielles) quelle dite les odd-ratios. Si lodd-ratio de la variable xi vaut w, cela sinterprte comme suit : Lorsque xi augmente dune unit, les chances
y=a ya
Enfin la procdure calcule le nombre de paires concordantes (dont la prvision concorde avec la vraie valeur) ainsi que quatre statistiques obtenues partir du nombre de paires concordantes, discordantes et tied : D de Sommer, modle aux donnes.
, a
PROC LOGISTIC data= <options> ; < CLASS var_quali ; > MODEL y = variables </options> ; < CONTRAST label l11 l12 l1n lm1 lmn </options> ; > < <label : > TEST equation ; > < BY listevariables ; > < FREQ variable ; > < WEIGHT listevariables ; > < OUTPUT out= table_sortie liste_stats_a_garder ; >
Les instructions :
La syntaxe prsente ci-dessus ne comporte pas toutes les instructions qui sont accessibles avec la PROC LOGISTIC. On se rfrera laide de SAS pour en savoir plus. Une instruction MODEL doit tre spcifie. Elle sera prcde dune instruction CLASS si le modle comporte des variables qualitatives. Comme dans la PROC REG, linstruction TEST permet de faire des tests sur les paramtres estims. Par exemple, si lon veut tester si
Axelle Chauvet-Peyrard
81
Anne 2006-2007
LANGAGE SAS
Linstruction CONTRAST permet galement deffectuer des tests sur les paramtres estims. Plus exactement, elle permet de tester (H0) : L = 0 o L est la matrice dont lij est llment la ligne i, colonne j ; n est le nombre de variables du modle et m le nombre dquations du systme test. Linstruction BY permet toujours de dfinir des sous-populations. Dans ce cas, la modlisation est ralise pour chacune de ces sous-populations. Linstruction FREQ permet de dfinir une variable entire dont les valeurs indique le nombre de fois que lobservation courante doit tre compte. Linstruction WEIGHT permet toujours de pondrer les observations. Linstruction OUTPUT permet de rcuprer certaines des grandeurs calcules dans une table qui est celle indique dans OUT= . Il suffit den donner la suite sous la forme mot_cl = noms_variables. Par exemple :
Les options :
Loption simple permet dditer des statistiques descriptives simples sur les variables du modle. Loption outest= permet de spcifier le nom dune table dans laquelle on rcupre les paramtres estims (ainsi que leurs covariances estimes dans le cas o lon ajoute loption covout). Loption descending permet de considrer la probabilit de ralisation de la modalit la plus leve (par dfaut cest la plus basse). Loption order= permet de choisir lordre des modalits de y dans le traitement. order=data ordonne selon lordre dans lequel les modalits apparaissent dans la table. order=freq ordonne de la modalit la plus frquente la plus rare.
Axelle Chauvet-Peyrard
82
Anne 2006-2007
LANGAGE SAS
Model Convergence Status Convergence criterion (GCONV=1E-8) satisfied. Model Fit Statistics Intercept Only 119.811 122.556 117.811 Intercept and Covariates 89.664 97.898 83.664
Testing Global Null Hypothesis: BETA=0 Test Likelihood Ratio Score Wald Chi-Square 34.1477 27.9854 19.4717 DF 2 2 2 Pr > ChiSq <.0001 <.0001 <.0001
DF 1 1 1
Odds Ratio Estimates Effect anciennete subor Point Estimate 1.201 1.155 95% Wald Confidence Limits 1.065 1.050 1.354 1.271
Association of Predicted Probabilities and Observed Responses Percent Concordant Percent Discordant Percent Tied Pairs 90.0 9.8 0.3 2184 Somers' D Gamma Tau-a c 0.802 0.804 0.267 0.901
Axelle Chauvet-Peyrard
83
Anne 2006-2007
LANGAGE SAS
La sortie standard est compose de 7 tableaux :
Le premier comporte des informations sur le modle : variable rgresse, son nombre de modalits, la fonction de lien Ici on rgresse la variable prime de la table malib.employe, qui a deux modalits. Le deuxime prsente les modalits de la variable rgresse et la frquence de chacune delles. 24 employs ont eu une prime cette anne et 91 nen ont pas eu. Cest la probabilit davoir une prime qui est analyse par le modle, ceci grce loption descending. Le modle estim est :
_STATUS_
anciennete
_LNLIKE_
diplome0
diplome1
diplome2
diplome3
diplome4
_NAME_
Intercept
_TYPE_
LOGIT
_LINK_
sexeF
subor
PARMS
0 Converged
prime
6,081106
-0,483097
-25,68922
Loption de slection aboutit au modle constitu des variables sexe, diplme et anciennet. On a rcupr les valeurs des paramtres estims, ainsi que certains renseignements comme la fonction de lien, le nom de la variable, le rsultat du test de convergence et le log de la vraisemblance.
Axelle Chauvet-Peyrard
84
Anne 2006-2007
LANGAGE SAS
Elles offrent galement la possibilit : dimposer des contraintes sur les paramtres estims de tester des hypothses de liaison linaire entre les paramtres
La lecture dune sortie standard de PROC SYSLIN est comparable celle dune PROC REG. La modlisation de chaque quation du systme est prsente sur une page de loutput.
PROC SYSLIN data= <options> ; < ENDOGENOUS variables ; > < INSTRUMENTS variables ; > MODEL dep_var1 = liste_des_rgresseurs </options>; MODEL dep_var2 = < RESTRICT quations ; > < SRESTRICT quations ; > < TEST quation ; > < STEST quation ; > < BY variable ; > < WEIGHT variable ; >
Les instructions :
Il y a autant dinstructions MODEL que dquations dans le systme estim. Les instructions ENDOGENOUS et INSTRUMENTS vont ensemble. Elles ne sont ncessaires que si la mthode destimation nest pas une des suivantes : OLS, SUR, ITSUR ou FIML. Les autres mthodes destimation effectuent dabord une rgression des variables endognes sur les variables instrumentales du modle. Linstruction INSTRUMENTS sert donc lister les variables instrumentales du modle. Les variables listes par ENDOGENOUS sont donc les variables du modle qui ne sont pas instrumentales. Comme dans la PROC REG, on peut imposer des restrictions ou effectuer des tests. Les restrictions et tests ne concernant quune des quations du modle sont spcifis respectivement par les instructions RESTRICT et TEST (pour plus de dtails sur ces instructions, voir le paragraphe relatif la PROC REG). Une restriction ou un test faisant intervenir des paramtres de diffrentes quations utilisent les instructions SRESTRICT et STEST. Linstruction BY sert toujours dfinir des sous-populations. Linstruction WEIGHT sert toujours dfinir une variable de pondration pour les observations.
Axelle Chauvet-Peyrard
85
Anne 2006-2007
LANGAGE SAS
Exemple :
PROC SYSLIN ; ENDOGENOUS y1 y2 ; INSTRUMENTS x1 x2 ; MODEL y1 = y2 x1 x2 ; MODEL y2 = x1 y1 ; SRESTRICT y1.x1=y2.x1 ; RUN ;
Les options :
En option de la procdure, on peut demander rcuprer entre autres :
les paramtres estims : option outest= lensemble des rsidus et des paramtres estims : option out= , utilise avec une instruction
Enfin mentionnons loption first qui dite la rgression des endognes sur les instruments.
Concernant les options de linstruction MODEL, outre deux classiques (noint qui permet dliminer la constante du modle et dw qui ralise un test de Durbin Watson), nous mentionnerons plot qui dite des graphiques des rsidus en fonction de chacun des rgresseurs (un graphique par rgresseur).
Axelle Chauvet-Peyrard
86
Anne 2006-2007
Langage SAS
Procdures graphiques
La PROC GCHART trace des graphiques sur des variables qualitatives : diagrammes en btons ou diagrammes circulaires. La PROC GPLOT trace des graphiques sur des variables quantitatives : nuages de points, courbes. La PROC BOXPLOT trace des box plots (botes moustaches) reprsentatives de la distribution dune variable sur plusieurs sous-populations.
Axelle Chauvet-Peyrard
87
Anne 2006-2007
Langage SAS
Procdures graphiques
PROC GCHART data= <options> ; HBAR variables </options> ; VBAR variables </options> ; BLOCK variables </options> ; STAR variables </options> ; PIE variables </options> ; HBAR3D variables </options> ; VBAR3D variables </options> ; PIE3D variables </options> ; < BY variables ; >
Les instructions :
Les cinq premires instructions proposes ne sont pas toutes obligatoires. Il en faut juste au moins une. Elles servent dfinir la liste des variables qualitatives sur lesquelles on souhaite faire des graphiques, ainsi que le type de graphique souhait. Linstruction HBAR ralise des diagrammes en btons horizontaux, un par variable spcifie. Linstruction VBAR ralise des diagrammes en btons verticaux. Linstruction BLOCK ralise des diagrammes par blocs et linstruction STAR des diagrammes en toiles. Enfin, linstruction PIE ralise des diagrammes circulaires (camemberts). Les trois autres instructions parlent delles mmes. Linstruction BY sert toujours dfinir des sous-populations. Dans ce cas, un graphique diffrent est trac pour chacune de ces sous-populations.
Les options :
Loption gout= permet dindiquer un catalogue dans lequel sauvegarder les graphiques (voir ce sujet la partie III C).
88
Anne 2006-2007
Langage SAS
Procdures graphiques
envisages. On ajoute alors une option sumvar= . Par exemple, le graphique que lon souhaite obtenir doit reprsenter le salaire moyen par catgorie socio-professionnelle : alors csp est dans VBAR, et on prcise type=mean et sumvar=salaire. Il existe aussi de nombreuses options de mise en forme quon ne dtaille pas ici.
Exemple :
proc gchart data=malib.bidon ; hbar distribution / sumvar=va type=mean ; pie zone / explode=IF ; vbar distribution / ascending outside=percent ; run ;
Axelle Chauvet-Peyrard
89
Anne 2006-2007
Langage SAS
Procdures graphiques
Axelle Chauvet-Peyrard
90
Anne 2006-2007
Langage SAS
Procdures graphiques
PROC GPLOT data= <options> ; PLOT yvar * xvar <=points_var><=caractre> </options> ; < PLOT2 yvar * xvar ; > BUBBLE yvar * xvar = bubble_var </options> ; < BY variables ; > < SYMBOL <interpol= > ; >
Les options :
Loption uniform indique (sil y a une instruction BY) que tous les graphes doivent avoir la mme chelle. Loption gout= permet dindiquer un catalogue dans lequel sauvegarder les graphiques (voir ce sujet la partie III C).
Les instructions :
Linstruction PLOT permet de spcifier les variables mettre en ordonne et en abscisse. La syntaxe est la suivante :
PLOT ordonne*abscisse ;
On peut demander plusieurs graphiques dans la mme instruction PLOT, par exemple :
Axelle Chauvet-Peyrard
91
Anne 2006-2007
Langage SAS
Procdures graphiques
Exemples :
proc gplot data=malib.bidon; plot va*siren="+" ventes*siren="o" /overlay; run;
Axelle Chauvet-Peyrard
92
Anne 2006-2007
Langage SAS
Procdures graphiques
proc gplot data=bidon; plot va*obs ; plot2 ventes*obs ; symbol interpol=spline; where va<3000; run;
Axelle Chauvet-Peyrard
93
Anne 2006-2007
Langage SAS
Procdures graphiques
proc gplot data=bidon uniform; bubble ventes*va=taille2 /blabel bsize=3; by distribution; run;
Axelle Chauvet-Peyrard
94
Anne 2006-2007
Langage SAS
Procdures graphiques
PROC BOXPLOT data= <options> ; PLOT var * groupvar </options> ; < INSET mots_cls_statistiques ; > < INSETGROUP mots_cls_statistiques ; >
Les instructions
Linstruction PLOT permet de dfinir : var : La variable dintrt quantitative continue pour laquelle on veut tracer les boxplots. groupvar : La variable dfinissant les sous-groupes de population. Les instructions INSET et INSETGROUP permettent dinsrer sur le graphique des encadrs de statistiques. Linstruction INSET calcule ces statistiques sur toute la population, tandis que INSETGROUP les calcule sur chacun des sous-groupes.
Moyenne Valeur minimale de la variable tudie Valeur maximale de la variable tudie Nombre dobservations minimal Nombre dobservations maximal Nombre total dobservations Ecart-type de la variable tudie
MEAN Moyenne MIN Minimum MAX Maximum N Nombre dobservations NHIGH, NLOW et NOUT Nombre dindividus atypiques (respectivement valeurs hautes, basses, et toutes) Q1, Q2 et Q3 Quartiles RANGE Max - Min STDDEV Ecart-type
Les options
Loption gout= permet dindiquer un catalogue dans lequel sauvegarder les graphiques (voir ce sujet la partie III C).
Axelle Chauvet-Peyrard
95
Anne 2006-2007
LANGAGE SAS
PARTIE III
Axelle Chauvet-Peyrard
96
Anne 2006-2007
LANGAGE SAS
Cette partie fournit quelques conseils pour une utilisation plus fluide du logiciel : Un exemple dutilisation de laide. A retenir : Utiliser plutt longlet Index, car longlet Recherche fournit des rsultats plthoriques. Taper en premier les mots les plus significatifs : FREQ Procedure et non PROC FREQ . Un recensement des messages derreur les plus frquemment rencontrs, avec leur diagnostic. Deux options pour rduire la taille de la LOG, et donc mieux sy retrouver dans les messages. Enfin, un kit de secours ou : que faire en cas de plantage lger ou aigu du logiciel ?
Axelle Chauvet-Peyrard
97
Anne 2006-2007
LANGAGE SAS
Rservez lusage de la Recherche pour les cas o vous narrivez vraiment pas trouver par lindex. Elle fournit en effet des rsultats prolifiques et non ordonns, et il est difficile de sy retrouver.
Axelle Chauvet-Peyrard
98
Anne 2006-2007
LANGAGE SAS
The variable m in the DROP, KEEP, or RENAME list has never been referenced Soit il y a une faute de frappe dans le nom de la variable soit elle nexiste pas dans la table considre soit il y a eu un rename plus haut dans ltape data qui fait quelle a chang de nom.
Variable o is uninitialized. Missing values were generated as a result of performing an operation on missing values. Ces deux messages (en bleu) sont dlivrs ensemble lorsquune variable est utilise laquelle aucune valeur nest affecte. L encore il faut penser une ventuelle faute de frappe, par exemple o au lieu de 0.
You cannot open WORK.FINALE.DATA for output access with member-level control because WORK.FINALE.DATA is in use by you in resource environment ViewTable Window La table table dans la librairie work est ouverte donc on ne peut pas lutiliser dans le programme soumis.
Statement is not valid or it is used out of proper order Soit linstruction appele nexiste pas ou est mal orthographie, soit elle nest pas approprie dans le contexte donn, soit il manque un ; avant son appel.
Data set was not specified on the DATA statement Le mot qui suit linstruction output ne correspond aucune des tables cres dans ltape data.
Undeclared array referenced: x La notation x(i) a t utilise dans un cas autre que celui o x est un tableau (dfini par linstruction ARRAY). Soit x est une variable et alors on oublie cette notation, soit x est une fonction SAS et alors son rsultat doit tre rcupr dans une variable (on crit a=x(0) ; et non x(0) ; )
Axelle Chauvet-Peyrard
99
Anne 2006-2007
LANGAGE SAS
Expecting a ; A cet endroit il faut un point virgule.
Syntax error, expecting one of the following:... Soit il manque un ; ou une parenthse ou un caractre de ce style, soit les options ou instructions spcifies ne sont pas utilises bon escient.
User does not have appropriate authorization level for file MALIB.COURS.DATA. La librairie malib est assigne sur un rpertoire sur lequel on na pas suffisamment de droits daccs.
Kit de secours
Lorsquun programme semble ne pas devoir finir, le premier rflexe avoir est de cliquer sur licne Stop ! Le logiciel peut mettre un peu de temps ragir, mais cette solution fonctionne la plupart du temps. Une pop-up souvre alors, vous proposant soit de quitter SAS, soit dinterrompre les processus en cours. Cest bien sr cette seconde proposition quil faut choisir. Dans dautres cas, le programme semble stre termin correctement, mais le logiciel se met avoir un comportement hratique, reconnaissable par exemple labsence de message dans la LOG, ou bien des messages avertissant que les donnes sont en cours dutilisation. Ces erreurs font souvent suite un bug antrieur ou lappel incorrect dune procdure. On peut alors essayer le remde miracle suivant, qui consiste taper quit ; dans leditor et soumettre. Dans tous les cas, vitez douvrir plusieurs sessions SAS en mme temps, car le logiciel le supporte mal.
Axelle Chauvet-Peyrard
100
Anne 2006-2007
LANGAGE SAS
Loutil Graph n Go
Le module Solutions Reporting Graph n Go ouvre un assistant presse-bouton qui fait appel au module SAS/GRAPH. En particulier, il permet de paramtrer en quelques clics des procdures de type GCHART ou GPLOT.
101
Anne 2006-2007
LANGAGE SAS
Diagramme circulaire :
Category : Il sagit de la variable qualitative sur laquelle vous souhaitez raliser le diagramme circulaire. Response : Par dfaut NONE- qui signifie que la taille des secteurs est dtermine par les effectifs (rels ou en pourcentage) de chacune des modalits de la variable category . Il est possible de choisir aussi une variable quantitative de la table source, dans ce cas la taille des secteurs dpend des valeurs de cette variable (en somme ou en moyenne). Statistic : Frequency par dfauts (effectifs), mais on peut aussi choisir Percent (pourcentages). Lorsquune variable est indique en response , la statistique par dfaut est la moyenne (Average), mais on peut aussi choisir la somme (Sum). Nuage de points / courbes : X : Choix de la variable placer en abscisse. Y : Choix de la variable placer en ordonne. ID : Choix ventuel dune variable dont les valeurs vont tiqueter les points. Plot style : Type de graphique, par dfaut Scatter (nuage de points). On peut aussi choisir Join (les points sont relis par des segments), Needle (les points sont relis laxe des abscisses), Step (les points sont relis par une fonction en escaliers), Spline (les points sont relis par une courbe) ou encore Regression (une droite de rgression est trace pour le nuage de points).
Onglet Appearance :
Permet de paramtrer lapparence du graphique. Diagramme en btons : Color scheme : Choix des couleurs. Reference Lines : Trace des lignes de rfrence perpendiculaires aux btons. Bar style : Choix du style des btons. Orientation Vertical / Horizontal : Choix de lorientation des btons. Visible Midpoints : Par dfauts, toutes les modalits sont visibles et correspondent chacune un bton, mais on peut modifier cela. Order Midpoints by Category value / Statistic value : Choix du tri des btons, soit par ordre des valeurs de la variable tudie, soit par ordre de grandeur des btons (ascendant ou descendant). Diagramme circulaire : Color scheme : Choix des couleurs. Legend : Affichage de la lgende si cette option est coche. Pie style : Permet de choisir le style de camembert (normal ou 3D). Orientation : Permet de dfinir le point de dpart des tranches (par dfaut, 3h). Other label : Permet de dfinir un libell pour la modalit autres . Nuage de points / courbes : Color scheme : Choix des couleurs. Plot style : Choix du style de graphe (voir onglet data). Reference Lines X axis / Y axis : Trace des lignes de rfrence parallles respectivement laxe des ordonnes et laxe des abscisses. Point markers : Choix de lapparence des points ainsi que de leur taille.
Axelle Chauvet-Peyrard
102
Anne 2006-2007
LANGAGE SAS
SAS Query
Le menu Tools Query ouvre un assistant presse-bouton qui fait appel au module SAS/SQL. En dautres termes, il permet de faire des PROC SQL sans connatre le SQL.
A partir de l, beaucoup de menus sont accessibles par un clic droit dans la fentre de droite.
Where conditions for subset : pour rajouter des conditions de type WHERE. Apparat alors une troisime fentre. A droite on clique sur la colonne concerne. Query propose alors une liste doprateurs. Enfin on complte la condition. On remarque quon peut entrer une valeur constante en cliquant sur <CONSTANT enter value> et quon peut visualiser la liste des modalits de la variable choisie en cliquant sur <LOOKUP distinct values>. Ces deux possibilits se trouvent dans la fentre de droite comme la liste des variables. Enfin mentionnons quon peut entrer plusieurs conditions WHERE en les reliant par un oprateur choisi grce longlet OPERATORS. Order by : pour trier le rsultat de la requte Groups for summary functions : quivalent du GROUP BY, Having condition for group : quivalent de la ligne HAVING compltant le GROUP BY, Join type : permet de choisir le type de jointure et la variable sur laquelle on fait la jointure (par dfaut on fait des jointures internes = inner ). Dans le premier des programmes ci-dessus, on fait une jointure interne sur la variable nom : on met sur la mme ligne les informations ayant trait la mme personne et on ne garde que les noms qui apparaissent dans les deux tables. Une jointure externe au contraire garde toutes les modalits de nom et complte la table avec des valeurs manquantes. Reset permet de rinitialiser la requte. Tables permet de modifier les tables slectionnes. Run query permet de soumettre le programme Query. Show query permet de visualiser le programme gnr par Query. On peut galement partir de l choisir de sauver le rsultat de la requte dans une table, ou bien enregistrer la requte dans un catalogue.
Axelle Chauvet-Peyrard
103
Anne 2006-2007
LANGAGE SAS
ods rtf file= w:\sas\sortiefreq.rtf ; proc univariate data=matable ; var mavariable ; run ; ods rtf close ;
Ceci cre un fichier sortiefreq.rtf dans le rpertoire \\w:\sas\. Ce fichier contient la sortie de la procdure encadre par lODS, ici une proc univariate. On pourrait souhaiter nexporter que certains des tableaux dits par la proc. Cest possible ! Dabord on va demander grce une instruction ods trace on ; ce que les noms donns pas SAS chacun de ces tableaux soit dit dans la LOG. Par exemple :
ods trace on ; proc univariate data=matable ; var mavariable ; run ; ods trace off ;
Voil quoi ressemble la LOG :
Axelle Chauvet-Peyrard
104
Anne 2006-2007
LANGAGE SAS
1 2 3 4 ods trace on ; proc univariate data=matable ; var mavariable ; run ;
Output Added: ------------Name: Moments Label: Moments Template: base.univariate.Moments Path: Univariate.mavariable.Moments ------------Output Added: ------------Name: BasicMeasures Label: Basic Measures of Location and Variability Template: base.univariate.Measures Path: Univariate.mavariable.BasicMeasures ------------Output Added: ------------Name: TestsForLocation Label: Tests For Location Template: base.univariate.Location Path: Univariate.mavariable.TestsForLocation ------------Output Added: ------------Name: Quantiles Label: Quantiles Template: base.univariate.Quantiles Path: Univariate.mavariable.Quantiles ------------Output Added: ------------Name: ExtremeObs Label: Extreme Observations Template: base.univariate.ExtObs Path: Univariate.mavariable.ExtremeObs -------------
NOTE: PROCEDURE UNIVARIATE used: real time 0.57 seconds cpu time 0.05 seconds
Admettons quon ne veuille exporter que les tableaux des moments et des quantiles. Linstruction ods select nom_tableau ; rsout le problme :
ods rtf file= w:/sas/sortiefreq.rtf ; ods select Moments Quantiles ; proc univariate data=matable ; var mavariable ; run ; ods rtf close ;
Axelle Chauvet-Peyrard
105
Anne 2006-2007
LANGAGE SAS
Axelle Chauvet-Peyrard
106
Anne 2006-2007
LANGAGE SAS
Sauvegarder un format :
On peut sauver nos formats dans un catalogue. Au moment de la cration du format, on rajoute une option : library=nom_catalog. Par la suite, si on veut utiliser le format, il suffira dinclure en dbut de session linstruction : option fmtsearch=(nom_catalog) ;
Axelle Chauvet-Peyrard
107
Anne 2006-2007
LANGAGE SAS
Axelle Chauvet-Peyrard
108
Anne 2006-2007
LANGAGE SAS
PARTIE IV
Axelle Chauvet-Peyrard
109
Anne 2006-2007
LANGAGE SAS
Exemple introductif
Je suppose que je dispose dune table par dpartement, chaque table contenant, pour chacune des communes du dpartement : le code commune, le nombre dhabitants et le nombre demplois offerts. Je souhaite sur chacune de ces tables 1) ajouter une colonne txemploi gale au ratio du nombre demplois sur le nombre dhabitants 2) connatre la moyenne et lcart-type de txemploi 3) tracer une boxplot de txemploi, en distinguant deux sous-populations : communes de plus/moins de 10000 habitants. Pour rpondre ce besoin, je vais crire une tape data, une proc means, une proc format et une proc boxplot :
data dep01 ; set dep01 ; txemploi = nbemplois / nbhabitants ; run ; proc means data=dep01 mean std ; var txemploi ; proc format ; value taille low-<10000= moins de 10000 hab 10000-high = plus de 10000 hab ; proc boxplot data=dep01 ; format nbhabitants taille. ; plot txemploi*nbhabitants ; run ;
Ce programme simple contient 4 occurences du nom de la table. La mthode la main risque dtre puissamment fastidieuse... Voyons comment je peux transformer mon programme en un macro-programme :
%macro mapremieremacro (table) ; data &table. ; set &table. ; txemploi = nbemplois / nbhabitants ; run ; proc means data=&table. mean std ; var txemploi ; proc format ; value taille low-<10000= moins de 10000 hab 10000-high = plus de 10000 hab ; proc boxplot data=&table. ; format nbhabitants taille. ; plot txemploi*nbhabitants ; run ; %mend ;
Les changements intervenus sont minimes : Le programme a t encadr par un bloc %macro%mend permettant la dfinition du macro-programme. Le nom de la table est devenu une macro-variable passe en argument de la macro. Remarque : Le format tant cr une fois pour toute la session, et ne dpendant pas de la table, on peut (doit) le sortir du macro-programme.
Axelle Chauvet-Peyrard
110
Anne 2006-2007
LANGAGE SAS
Macro-programmes et macro-variables
Syntaxe gnrale dun macro-programme
Un macro-programme prsente donc la syntaxe suivante :
%nom_de_la_macro (liste-arguments) ;
Axelle Chauvet-Peyrard
111
Anne 2006-2007
LANGAGE SAS
Les macro-fonctions
Les fonctions SAS usuelles ne sont pas accessibles dans le cadre dun macro-programme. Il faut avoir recours aux macro-fonctions. On peut retenir quen rgle gnrale, prfixer un mot-cl ou une fonction SAS par le caractre % permet de trouver leur equivalent en macro-langage.
%sysevalf() force la chane de caractres passe en argument tre interprte comme une opration arithmtique. Un deuxime argument, facultatif, permet de convertir le rsultat en entier ou en boolen. Exemples : %sysevalf (&un/&deux) Retourne 0,5 %sysevalf(5/2,floor) Retourne 2 = partie entire de 2,5 %let toto = %sysevalf(&un/&deux)+&un Affecte la macro-variable toto le texte 0,5+1 %sysevalf(&toto) Retourne 1,5 rsultat de lopration
La macro-fonction %sysfunc()
Plus gnralement, toutes les fonctions SAS peuvent tre utilises dans un macro-programme condition de passer leur appel en argument de la macro-fonction %sysfunc(). Exemples : %upcase ( toto ) est quivalent %sysfunc ( upcase ( toto ) ). %sysfunc ( int ( ranuni(0) * 100 ) ) tire un entier entre 0 et 100.
Axelle Chauvet-Peyrard
112
Anne 2006-2007
LANGAGE SAS
Les routines
Les routines CALL sont des procdures qui permettent linteraction entre diffrentes tapes SAS ou entre diffrents environnements : lien entre tapes DATA et macro-variables, lien entre commandes DOS et programme SAS, rsolution dune macro-variable, etc.
La routine SYMPUT
Elle permet daffecter une macro-variable la valeur dune variable cre par une tape DATA. Si la macro-variable nexiste pas, la routine la cre. La routine est particulirement utile pour rcuprer dans une macro-variable les statistiques calcules par des procdures statistiques. Exemple : Dans lexemple ci-dessous la routine SYMPUT sert rcuprer la moyenne calcule par la PROC MEANS :
%macro moyenne (table, var) ; proc means data=&table mean ; var &var ; output out=temporaire mean=moy ; run ; data _null_ ; set temporaire ; call symput ( moyenne, moy ) ; run ; %put La moyenne de &var est &moyenne ; %mend ;
Ltape DATA ici ne sert qu copier la valeur de moy dans la macro-variable moyenne. Elle ne cre aucune table, do lemploi du mot-cl _null_ (voir ce sujet le dernier paragraphe de la partie I). Attention la syntaxe de la routine ! Le premier argument doit tre une chane de caractre contenant le nom de la macro-variable. Une mthode quivalente pour raliser cela est davoir recours une proc sql :
%macro moyenne_v2 (table, var) ; proc sql ; select distinct mean(&var) into :moyenne from &table ; quit ; %put La moyenne de &var est &moyenne ; %mend ;
On remarque que le programme est plus court, un point de plus en faveur de la proc sql (voir le paragraphe ce sujet dans la partie IIA). Ne pas oublier de prfixer le nom de la macro-variable par un : . Note : Ici, lappel de la routine nest pas indispensable, puisque la proc sql va dj imprimer le rsultat dans loutput. Mais on peut sans peine imaginer un cas o la macro-variable moyenne servirait autre chose quun simple %put
La routine EXECUTE
Si lon a dfini une chane de caractres contenant une commande SAS, lappel de la routine EXECUTE sur cette chane de caractres permet dexcuter cette commande.
La routine SYSTEM
Elle permet dexcuter une commande DOS partir dun macro-programme SAS, par exemple la cration de fichiers, le dplacement dans larborescence des dossiers ou lappel dun programme excutable. Pour plus de dtails, on se rfrera laide de SAS.
Axelle Chauvet-Peyrard
113
Anne 2006-2007
LANGAGE SAS
Construire un macro-programme
Les arguments dun macro-programme
Les macros peuvent prendre un ou plusieurs arguments, prciss entre parenthses derrire le nom de la macro, et spars par des virgules. On peut leur faire prendre une valeur par dfaut, en crivant : Mon_argument = ma_valeur_par_dfaut. Exemple :
%macro madeuxiememacro (table, stats = mean std) ; data &table. ; set &table. ; txemploi = nbemplois / nbhabitants ; run ; proc means data=&table. &stats. ; var txemploi ; proc boxplot data=&table. ; format nbhabitants taille. ; plot txemploi*nbhabitants ; run ; %mend ;
Dans cet exemple, madeuxiememacro prend deux arguments : Le nom de la table = macro-variable de nom table . La liste des statistiques dites par la proc means = macro-variable de nom stats prenant comme valeur par dfaut mean std . Rgle gnrale : Lors de lappel de la macro : On doit renseigner tous les arguments ne prenant aucune valeur par dfaut. On peut ne pas renseigner les arguments prenant une valeur par dfaut ; On peut aussi les renseigner, afin quils prennent une autre valeur. De plus, les arguments sans valeur par dfaut : Apparaissent toujours en premier dans la liste des arguments. Sont positionnels : leur place dans la liste des arguments suffit les dfinir ie ce nest pas la peine de rappeler leur nom lors de lappel de la fonction. Exemple : %madeuxiememacro (malib.matable) ; ou : %madeuxiememacro (malib.matable, stats = sum mean std) ; Cette particularit permet dintroduire des paramtres qui servent rarement, sans que lutilisateur ait les renseigner chaque appel de la macro.
Axelle Chauvet-Peyrard
114
Anne 2006-2007
LANGAGE SAS
Linstruction %PUT
Elle permet dafficher un message dans la LOG. Exemple : %let toto = 2 ; %put la valeur de toto est : &toto. ; la LOG affichera le message suivant : la valeur de toto est 2
Axelle Chauvet-Peyrard
115
Anne 2006-2007
LANGAGE SAS
Annexes
Annexes
Afin de faciliter votre recherche dans le polycopi, vous trouverez ci-aprs : 1. Un index alphabtique des procdures, options, instructions et concepts abords 2. Une aide thmatique du type Comment faire ? classe par grandes catgories : Manipulations sur les donnes Statistiques univaries Statistiques bivaries Modlisations Tests Graphiques Autres
Axelle Chauvet-Peyrard
116
Anne 2006-2007
LANGAGE SAS
Annexes
Index
%
%DO%END ........................................................ 113 %DO%TO%END ............................................. 113 %DO%WHILE%END ....................................... 113 %eval ..................................................................... 111 %IF%THEN%ELSE ......................................... 113 %index ................................................................... 111 %length .................................................................. 111 %let........................................................................ 110 %macro .................................................................. 110 %mend ................................................................... 110 %nrstr ..................................................................... 111 %put....................................................................... 114 %qscan ................................................................... 111 %qsubstr ................................................................. 111 %qupcase ................................................................ 111 %scan ..................................................................... 111 %str........................................................................ 111 %substr ................................................................... 111 %sysevalf................................................................ 111 %sysfunc ................................................................ 111 %upcase.................................................................. 111
BOXPLOT Procdure............................................. 94 bsize= Option.......................................................... 91 BUBBLE Instruction .............................................. 90 BY Instruction ....................18, 20, 21, 31, 36, 37, 48 C
catalogue ......................................................... 6, 103
CATMOD Procdure.............................................. 80
cellchi2 Option .......................................................... 45 Centiles .............................................................. 48, 51
_
_error_ ...................................................................... 28 _n_ ........................................................................... 26
CHART Procdure ................................................. 87 chisq Option .............................................................. 45 ci=none Option .......................................................... 65 CIMPORT Procdure ................................................. 33 CLASS Instruction ..............................31, 48, 50, 65, 80 classdata= Option....................................................... 51 CLASSLEV Instruction .............................................. 51 cochran Option .......................................................... 65 collin Option ............................................................. 71 collinoint Option ........................................................ 71 Compress Fonction .................................................... 23 CONTENTS Procdure .......................................... 34 CONTRAST Instruction......................................... 81 CONVERT Procdure ................................................ 33 Cookd ...................................................................... 72 COPY Instruction ...................................................... 37 COPY Procdure ....................................................... 33 corr Option................................................................ 67 CORR Procdure ....................................................... 61 Cos Fonction ............................................................. 23 cov Option ................................................................ 62 Covratio.................................................................... 72 CPORT Procdure ..................................................... 33 Cronbach (alpha de) ................................................... 61 CSS .............................................................. 48, 51, 55 csscp Option .............................................................. 63 CV ............................................................... 48, 51, 55 D DATA tape.............................................................. 9 data= Option ....................................................... 30, 42 Date Fonction ............................................................ 23 Datepart Fonction ...................................................... 23 Day Fonction ............................................................. 23 DELETE Instruction .............................................. 13 Dequote Fonction....................................................... 23 descending Option ............................................ 42, 81 descending Option ............................................ 87, 88 deviation Option ........................................................ 45 Dffits ........................................................................ 72 Diagramme circulaire ........................................... 101 Diagramme en btons ........................................... 100 diagrammes circulaires ........................................... 87 diagrammes en btons............................................. 87 Difn Fonction ............................................................ 24 Dim Fonction ............................................................ 27 directory Option......................................................... 34 Distance interquartile.................................................. 48 DO et DO WHILE Instructions .................................... 22 DROP Instruction ................................................. 13 117
Anne 2006-2007
ascending Option .............................................. 87, 88 Atan Fonction ............................................................ 23 B bcolor= Option........................................................ 91 best= Option .............................................................. 62 bibliothque ............................................................ 6 blabel Option .......................................................... 91 BLOCK Instruction................................................. 87 box plot .............................................................. 53, 94
Axelle Chauvet-Peyrard
LANGAGE SAS
Durbin-Watson (test de) ..............................................68 dw Option ...........................................................68, 85
E
galit des moyennes (test) ..........................................65
EXOGENOUS Instruction ......................................85 Exp Fonction .............................................................23 expected Option .........................................................45 explode= Option......................................................88 EXPORT Procdure ....................................................33 F
FILENAME Instruction...............................................33
k= ............................................................................85 KEEP Instruction ...................................................13 Kendall (tau-b de).......................................................61 kendall Option ...........................................................62 KEYLABEL Instruction ..............................................51 KEYWORD Instruction ..............................................51 Khi-deux Test ............................................................45 KURTOSIS ......................................................... 48, 55 L
LABEL Instruction .................................................17 Lagn Fonction ............................................................24 LAST........................................................................26 Lcl ............................................................................72 Lclm .........................................................................72
fiml..........................................................................85 FIRST .......................................................................26 first Option ..............................................................85 FIRSTOBS= Option ...................................................13 FIT Instruction ........................................................85 Floor Fonction ...........................................................23 fmtlib Option .............................................................41 fmtsearch= Option ....................................................106 FORMAT Instruction ................................. 17, 31, 41 FORMAT Procdure ...................................................41 FREQ Instruction .................................................49, 62 freq Option ................................................................53 FREQ Procdure ........................................................45 G
legend Option..........................................................88
Length Fonction .........................................................23 LENGTH Instruction..............................................16 LIBNAME Instruction ........................................ 6, 33 library= Option .................................................. 41, 106
liml ..........................................................................85 link= Option ............................................................81 LOG (fentre) ..........................................................7, 8 Log Fonction .............................................................23 LOGISTIC Procdure .............................................80 Lowcase Fonction ......................................................23 M
GCHART Procdure ...............................................87 gout= Option ....................................... 87, 90, 94, 106 GPLOT Procdure...................................................90 Graph n Go........................................ 87, 90, 100, 106 group= Option .........................................................87 groups= Option .......................................................42 H
H 72 h0= Option ................................................................65
MAX ............................................................ 48, 51, 55 Max Fonction.............................................................23 mdy Fonction .............................................................23 MEAN .......................................................... 48, 51, 55 mean Fonction ...........................................................24 Means Procdure ........................................................48 MEANS Procdure .....................................................50 MEDIAN ...................................................... 48, 51, 55
melo ........................................................................85 MERGE Instruction ......................................... 20, 39 midpoints= Option ......................................................88 midpoints= Option ..................................................87 MIN ............................................................. 48, 51, 55 Min Fonction .............................................................23 Mod Fonction ............................................................23 MODE ......................................................................55 MODEL Instruction .................................. 30, 67, 80, 84 MODEL Procdure .................................................84 Month Fonction..........................................................23 MSIGN .....................................................................55 mu0= Option .............................................................53 N
N 48, 51, 55 n Fonction .................................................................24 name= Option ............................................................37 nextrobs= Option........................................................53 NMISS.......................................................... 48, 51, 55 nmiss Fonction ...........................................................24 NOBS .......................................................................55
in= Option .........................................................19, 29 Index Fonction ...........................................................23 influence Option ...................................................68, 81 INFORMAT Instruction .........................................17 Input Fonction ............................................................24 INPUT Fonction .....................................................16 INSET Instruction ...................................................94 INSETGROUP Instruction......................................94 INSTRUMENTS Instruction...................................84 interpol=..................................................................90 iplots Option............................................................81
Axelle Chauvet-Peyrard
118
Anne 2006-2007
LANGAGE SAS
nocol Option.............................................................. 45 nocorr Option ............................................................ 62 nocum Option ............................................................ 46 noduprecs Option ....................................................... 36
Annexes
PROBPLOT Instruction .............................................. 54 PROBS ..................................................................... 55 PROBT......................................................... 48, 51, 55 PROC Etape .............................................................. 30 Put Fonction .............................................................. 24 PUT Fonction ......................................................... 16
noechoauto Option.................................................. 99
nofreq Option ...................................................... 45, 46 noint Option .................................................. 68, 81, 85
nonotes Option........................................................ 99 noobs Option ............................................................. 36 nopercent Option.................................................. 45, 46 noprint Option ........................................................... 30 noprob Option ........................................................... 63 NORMAL ................................................................. 55 normal Option ........................................................... 53 normalit (test de) ...................................................... 53 norow Option ............................................................ 45 nosimple Option ........................................................ 63 nozero Option ......................................................... 87 O
OBS= Option............................................................. 13 ODS (Output Delivery System) ............................ 52, 103
Q
Q1................................................................ 48, 51, 55 Q3................................................................ 48, 51, 55 QRANGE ..................................................... 48, 51, 55 Quantiles .................................................................. 53 Quartiles ................................................................... 48 Query ............................................................. 102, 107 Quote Fonction .......................................................... 23
R
r Option .................................................................... 68 Ranbin Fonction ........................................................ 24 RANGE ........................................................ 48, 51, 55 rank Option ............................................................... 62
ols ........................................................................... 85 order= Option ................................................ 45, 51, 81 other= Option.......................................................... 88 out= Option ..................................31, 36, 37, 42, 45, 85 outbox= Option....................................................... 94 outest= Option ............................................... 67, 81, 85 outh= Option ............................................................. 62 outk= Option ............................................................. 62 outp= Option ............................................................. 62 OUTPUT (fentre) ................................................... 7, 8 OUTPUT Instruction ......................13, 31, 49, 54, 68 outs= Option.............................................................. 62 outside= Option ...................................................... 87 overlay Option ........................................................ 91 P PARAMETERS Instruction.................................... 85 PARTIAL Instruction ................................................. 62 partial Option ............................................................ 63 PCTLPRE=............................................................. 54 PCTLPTS= ............................................................. 54 PCTN ....................................................................... 51 PCTSUM .................................................................. 51 Pearson (coefficient de corrlation de) .......................... 61 pearson Option .......................................................... 62 percent Option ........................................................ 42 PIE Instruction ........................................................ 87 PLOT Instruction ........................................... 67, 90, 94 plot Option.............................................................. 85 PLOT Procdure ..................................................... 90 PLOT2 Instruction .................................................. 90 plots Option............................................................... 53 pointlabel= .............................................................. 90 Poisson Fonction ........................................................ 24 Predicted ................................................................... 72 prefix= Option ........................................................... 37 Press......................................................................... 72 PRINT Procdure ....................................................... 36 Probbnml Fonction ..................................................... 24 Probchi Fonction ........................................................ 24 Probf Fonction ........................................................... 24 Probhypr Fonction...................................................... 24 PROBM .................................................................... 55 PROBN .................................................................... 55 Probnorm Fonction..................................................... 24
Axelle Chauvet-Peyrard
RANK Procdure.................................................... 42 RANKS Instruction ................................................ 42 Rannor Fonction ........................................................ 24 Ranpoi Fonction ........................................................ 24 Rantbl Fonction ......................................................... 24 Ranuni Fonction ........................................................ 24 REG Procdure .......................................................... 67 regeqn Option ......................................................... 91 RENAME Instruction ............................................. 16 rename= Option ................................................ 19, 20 Repeat Fonction ......................................................... 23 Residual.................................................................... 72 RESTRICT Instruction ............................................... 68 RESTRICT Instruction ........................................... 84 RETAIN Instruction ................................................... 25 Round Fonction ......................................................... 23 Rstudent ................................................................... 72 S
sasautos= Option...................................................... 114 sasmstore = Option................................................... 114 Scan Fonction ............................................................ 23 SELECT Instruction .............................................. 22 selection= Option ................................................. 71, 81 SET Instruction................................................ 9, 13, 18 short Option .............................................................. 34 Sign Fonction ............................................................ 23 SIGNRANK .............................................................. 55 simple Option ...................................................... 67, 81 Sin Fonction .............................................................. 23 SKEWNESS ....................................................... 48, 55
SORT Procdure............................................... 18, 36 Spearman (coefficient de corrlation des rangs de) ......... 61 spearman Option ........................................................ 62 spec Option ............................................................... 68 SQL Procdure .................................................. 39, 102 Sqrt Fonction ............................................................. 23 SRESTRICT Instruction......................................... 84 ss1 Option ................................................................. 70 ss2 Option ................................................................. 70 sscp Option ............................................................... 63 STAR Instruction.................................................... 87 STD ............................................................. 48, 51, 55 STDERR ............................................................ 48, 51 119
Anne 2006-2007
LANGAGE SAS
Stdi ...........................................................................72 STDMEAN ...............................................................55 Stdp ..........................................................................72 Stdr...........................................................................72 stem and leaf (diagramme) ...........................................53
Annexes
TRANSPOSE Procdure .............................................37 Tranwd Fonction ........................................................23 TTEST Procdure .......................................................65
type= Option ..................................................... 87, 88 U uniform Option........................................................90 UNIVARIATE Procdure...................................... 48, 53 Upcase Fonction .........................................................23 UPDATE Instruction ..............................................21 USS .............................................................. 48, 51, 55 usscp Option ..............................................................67 V
VALUE Instruction ....................................................41 VAR ............................................................. 48, 51, 55 var Fonction ..............................................................24 VAR Instruction ..................... 30, 37, 42, 48, 50, 62, 65
STEST Instruction...................................................84 STOP Instruction...................................................28 Student ......................................................................72 style= Option .............................................................51 subgroup= Option..............................................87, 88 Substr Fonction ..........................................................23 SUM ............................................................. 48, 51, 55 sum Fonction .............................................................24 sumvar= Option.......................................................88 SUMWGT ..................................................... 48, 51, 55 sur............................................................................85 SYMBOL Instruction..............................................90 SYMPUT Routine .................................................112 Sysdate ...................................................................111 Syserr .....................................................................111 Syslast ....................................................................111 Syslibrc ...................................................................111 SYSLIN Procdure..................................................84 SYSTEM Routine .................................................112 Sysver .....................................................................111 T
T 48, 51, 55 Table .........................................................................6 TABLE Instruction .....................................................50 tableaux de contingence...............................................45 tableaux de frquence..................................................45 TABLES Instruction ...................................................30 TABULATE Procdure ...............................................50 Tan Fonction..............................................................23 TEST Instruction ..................................................68, 80
Axelle Chauvet-Peyrard
120
Anne 2006-2007
LANGAGE SAS
Annexes
Comment faire ?
Des manipulations sur les donnes :
MANIPULATION DE TABLES :
Ce que je veux faire Trier une table Fusionner deux tables Concatner deux tables Slectionner des variables Slectionner certaines observations Comment SAS y rpond PROC SORT Instruction MERGE (tape DATA) Ou SAS/SQL : PROC SQL ou outil Query Instruction SET (tape DATA) Instruction KEEP ou DROP (tape DATA) Instruction WHERE (tape DATA ou PROC) Ou DELETE ou OUTPUT (tape DATA) page indicative P36 P20 P39-40 P99 P13 P13 P13
PROC FORMAT pour crer le format, Instruction P41 FORMAT pour lappliquer 1 PROC RANK Instruction ID
1
P42-43 P66
Axelle Chauvet-Peyrard
LANGAGE SAS
Annexes
Toutes les statistiques simples recenses ci-dessous figurent dans la sortie standard de la PROC UNIVARIATE. Ce que je veux calculer Nombre dobservations non manquante Nombre de valeurs manquantes Somme Moyenne Ecart-type Variance Minimum Maximum Coefficient dasymtrie Coefficient daplatissement Somme des carrs Somme des carrs des carts la moyenne Mdiane Mode Distance interquartile N NMISS SUM MEAN STD VAR MIN MAX SKEWNESS KURTOSIS USS CSS MEDIAN MODE QRANGE Q1 (premier quartile) Q3 (troisime quartile) P10 (premier dcile) P90 (neuvime dcile) P1 (premier centile) P99 (dernier centile) P5 P95 Pour les autres centiles, PROC UNIVARIATE. Option de la PROC MEANS adquate
Quantiles
Axelle Chauvet-Peyrard
LANGAGE SAS
Annexes
Des modlisations :
Ce que je veux faire Spcifier un modle Imposer une restriction un modle Effectuer une slection de variables dans un modle Dtecter les individus atypiques dun modle Dtecter les individus influents dun modle Effectuer une rgression linaire multiple Effectuer une rgression sur variable catgorielle Effectuer une modlisation plusieurs quations Comment SAS y rpond Instruction MODEL
1 1
Des tests :
Ce que je veux faire Test dadquation une loi normale Test de nullit de la moyenne Test dgalit des moyennes Choix du seuil pour le calcul dintervalles de confiance Test de Durbin Watson Test de White Test de liaison entre paramtres estims dun modle Instruction TEST
1
Comment SAS y rpond PROC UNIVARIATE option normal PROC UNIVARIATE PROC TTEST Option ALPHA Option DW
1 1 1
Option SPEC
1 1
Axelle Chauvet-Peyrard
LANGAGE SAS
Annexes
Des graphiques :
Ce que je veux faire Bote moustaches Diagramme stem and leaf Diagramme dajustement une loi normale Graphe des rsidus dune modlisation Histogrammes Diagrammes circulaires Diagramme en btons ou circulaires dont la hauteur (resp. les angles) varie avec la valeur dune variable quantitative Nuage de points de y en fonction de x Graphe (reli) y en fonction de x Graphes superposs : y et z en fonction de x Comment SAS y rpond PROC UNIVARIATE option PLOTS Ou PROC BOXPLOT PROC UNIVARIATE option PLOTS PROC UNIVARIATE option PLOTS Instruction PLOT
1
page indicative P53 P91 P53 P53 P66 P84 P84 P85
PROC GCHART instruction HBAR ou VBAR PROC GCHART instruction PIE Option SUMVAR= de la PROC GCHART
PROC GPLOT PROC GPLOT avec instruction SYMBOL INTERPOL= Option OVERLAY ou instruction PLOT2 de la PROC GPLOT
Autre chose :
Ce que je veux faire Allouer une librairie Importer des donnes Lier un fichier de donnes externes Voir les proprits dune table Faire des modifications la main Enregistrer un rsultat SAS (autre) Exporter une sortie SAS Utiliser laide en ligne de SAS Vider le contenu dune fentre Imprimer une table dans lOUTPUT Comment SAS y rpond Instruction LIBNAME Module SAS/Wizard ou PROC IMPORT Instruction FILENAME SAS/INSIGHT ou Menu Edit - Edit Mode PP31-49-54 P100 P94 P8 P36 Sauvegarde dans un catalogue ou un fichierP102 Output Delivery System Menu Help SAS System Help Commande Clear PROC PRINT page indicative P6 P33 P33
Axelle Chauvet-Peyrard
124
Anne 2006-2007