You are on page 1of 362

IUT2 Grenoble

Dpartement STID
Cours de Logiciel SAS
2000/2001

COURS, TP
Modules utiliss : Base, Stat, Insight, Ets, Graph, Assist

Eric PREUD'HOMME
I.G.W.T. Juin 2001

IUT II Dept STID


BP 47 38040 Grenoble Cedex 09
Tl: 0476825641 Fax:0476825640

Introduction
Le systme SAS est LE logiciel de traitement de donnes . Les
procdures SAS sont trs compltes et dpassent largement le cadre du
DUT STID.
1

SAS est trs rpandu. Il a acquis depuis son lancement en 1960 une
situation dominante dans beaucoup de secteurs dactivits. En France
lINSEE, ELF, EDF et depuis peu les banques, les assurances, les CAF
lont adopt.
SAS peut sutiliser, dans le cadre de votre formation, en assimilant le
langage SAS ou en utilisant les modules cliquer-rsultat comme SAS/
ASSIST ou SAS Enterprise Guide. Nous privilgierons la premire
approche car elle permet une utilisation plus approfondie de SAS mme
si cest au prix dun certain temps d'apprentissage.
2

Ajoutons que SAS ne peut tre utilis convenablement que par


des personnes ayant les connaissances requises en statistiques et en
programmation. Il est devenu incontournable dans la majorit des stages et
offres demplois qui nous arrivent.

Le Systme SAS fonctionne sur plusieurs systmes (MAC, PC Dos et WINDOWS, UNIX...).
La version WINDOWS ncessite:
16 M0 de mmoire vive RAM (minimum)
500 M0 sur le disque dur. (minimum)
Ce logiciel est commercialis par :
SAS INSTITUTE
B.P.5
77166 GREGY-SUR-YERRES
: 0160621111
Fax:0160621199
Contact : Ariane Ligier Bellair
SAS est une marque dpose par SAS Institute Inc.

1 SAS commercialise un autre logiciel statistique (trs convivial) SAS JMP3.2. Il noccupe que quelques mgas sur le disque dur. Il est trs
convivial (menus...) et assez complet (Plans dexpriences, Surfaces de rponse, Rgression logistique...) mais malheureusement limit dans
certains domaines (importation de donnes, paramtrage des sorties, des plans dexpriences fractionns...). Nanmoins, il peut tre une
alternative intressante pour ceux qui nont pas besoin de toute la puissance du systme SAS ou qui sont allergiques au langage SAS !
2 SAS possde en fait 3 langages. Le langage SAS et son module Macros bien sr, mais aussi le langage SQL bien connu dans lunivers des
SGBD et le langage le SCL pour crer des applications type Visual Basic (SAS/AF, SAS/FSP)
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 2

SOMMAIRE
I. Premier contact avec SAS......................................................................................................8
A. Cinq fentres essentielles.............................................................................................................8
B. Mon premier programme SAS..................................................................................................11
1. Saisie du programme..................................................................................................................................11
2. Sauvegarde des instructions du programme...............................................................................................13
3. Excution du programme (F8)...................................................................................................................13
4. Visualisation des rsultats et personnalisation de la fentre OUTPUT (complment)...........................14
5. Sauvegarde des rsultats contenus dans OUTPUT....................................................................................15
6. Sauvegarde du fichier des donnes............................................................................................................15
7. Ne confondez pas.......................................................................................................................................16

II. Fichiers de donnes SAS ...................................................................................................17


A. Prliminaires sur les fichiers de donnes SAS.........................................................................17
1. Nom logique dun fichier de donnes SAS................................................................................................17
2. Les 2 bibliothques prdfinies WORK et SASUSER..............................................................................18
3. Comment crer VOTRE bibliothque ?.....................................................................................................19
4. Visualisation du contenu dun fichier, modifications...............................................................................22

B. Conversion automatique dun fichier EXCEL (File/Import).................................................24


1. Choix du type de fichier.............................................................................................................................24
2. Emplacement du fichier convertir...........................................................................................................25
3. Nom du fichier SAS obtenu.......................................................................................................................25
4. Visualisation du fichier SAS......................................................................................................................26

C. Fichier de donnes cr dans un programme SAS : tape DATA.........................................31


1. Donnes incluses dans le programme. (CARDS)......................................................................................31
2. Utilisation de fichiers de donnes SAS existants : Instruction SET.........................................................36

D. Utilisation de donnes SAS dans les Procdures ou les tapes DATA)..................................64


1. Slection sur les variables..........................................................................................................................65
2. Slection dindividus..................................................................................................................................67

III. LODS : Gestion des sorties SAS......................................................................................73


A. Quelques notions basiques sur lHTML..................................................................................74
B. Utilisation de lODS de SAS. Objets de sortie.........................................................................77
C. Trois sorties possibles................................................................................................................79
1. Sortie HTML basique.................................................................................................................................80
2. Slection dobjets en sortie : ODS TRACE, ODS SELECT, ODS EXCLUDE.......................................82
3. Sorties HTML sophistiques......................................................................................................................87
4. Sorties HTML pour les graphiques............................................................................................................97
5. Sorties vers des fichiers de donnes.........................................................................................................107

IV. Analyse interactive de donnes : SAS/INSIGHT...........................................................112


A. Ouverture dune table.............................................................................................................112
1. Aperu rapide de quelques menus............................................................................................................114

B. Analyse dune Variable qualitative........................................................................................116


C. Variable quantitative ; Analyse univarie.............................................................................120
1. Boxplots, histogrammes, moments..........................................................................................................120
2. Fonction de rpartition.............................................................................................................................123
3. Densit de probabilit...............................................................................................................................124

D. Etude de plusieurs variables quantitatives............................................................................126


1. Nuage de points (scatter plot)...................................................................................................................126
2. Stratification par une variable qualitative, ou quantitative agrge (TOOL).........................................126
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 3

3. Rgression (Fit XY).................................................................................................................................129


4. Reprsentation 3D interactive..................................................................................................................131
5. Lancement dINSIGHT avec le langage SAS.........................................................................................132

V. Quelques procdures statistiques ...................................................................................134


A. SORT (Trier des fichiers)........................................................................................................135
B. PRINT (Afficher un fichier dans lOUTPUT).......................................................................136
C. TABULATE.............................................................................................................................139
D. RANK (Calculs de rangs)........................................................................................................146
E. UNIVARIATE (Analyse univarie).......................................................................................148
1. Syntaxe:.....................................................................................................................................................148
2. Dtails.......................................................................................................................................................150
3. Exercices ..................................................................................................................................................151

F. TTEST (Tests de Student un ou deux chantillons, apparis ou non)..............................152


1. Syntaxe simplifie....................................................................................................................................152
2. Rappels thoriques....................................................................................................................................153
3. Exercices:..................................................................................................................................................155

G. FREQ (tris plat, tris croiss, test dindpendance du chi2)...............................................156


1. Syntaxe simplifie....................................................................................................................................156
2. Exemples...................................................................................................................................................156
3. Quelques options de la commande TABLES..........................................................................................158
4. Exercice....................................................................................................................................................160
5. Cas Particulier important, TEST du chi2 sur un tri crois existant.........................................................161
6. Rappels thoriques sur le test d'indpendance du 2.............................................................................162

H. ANOVA et GLM, Analyse de la variance .............................................................................163


1. Un exemple...............................................................................................................................................163
2. ANOVA un critre.................................................................................................................................163
3. Mise en pratique sous SAS ......................................................................................................................166
4. Exercices...................................................................................................................................................169
5. ANOVA deux critres de classification (modle fixe).........................................................................171

I. NPAR1WAY :Quelques mthodes non paramtriques..........................................................174


1. Prliminaires.............................................................................................................................................174
2. Test de Kolmogorov-Smirnov..................................................................................................................174
3. Test de Mann et Whitney (ou Wilcoxon ou White)...............................................................................179
4. Le test de Kruskal et Wallis ....................................................................................................................182

J. CORR , calcul des coefficients de corrlations.......................................................................184


1. Syntaxe simplifie....................................................................................................................................184
2. Test de nullit...........................................................................................................................................184

K. PRINCOMP, Analyse en Composantes Principales............................................................189


1. Syntaxe simplifie....................................................................................................................................189
2. Exercice....................................................................................................................................................191

L. STANDARD , normalisation de variables.............................................................................203


M. CLUSTER : Classification dindividus.................................................................................206
1. But.............................................................................................................................................................206
2. Choix de la distance ................................................................................................................................206
3. Qualit de la typologie.............................................................................................................................206
4. Algorithme................................................................................................................................................207
5. Mise en uvre (Proc CLUSTER)............................................................................................................208
6. Exercice ...................................................................................................................................................214

N. CORRESP Analyse des correspondances simples.................................................................215


1. tude des profils lignes............................................................................................................................216
2. Etude des profils colonnes........................................................................................................................223
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 4

3. Lien entre les deux analyses.....................................................................................................................227


4. Syntaxe de PROC CORRESP sous SAS..................................................................................................229

O. CORRESP Analyse des Correspondance Multiples ............................................................231


1. Tableau disjonctif complet.......................................................................................................................231
2. Exemple....................................................................................................................................................231

P. DISCRIM : LAnalyse discriminante.....................................................................................247


1. Lanalyse factorielle discriminante..........................................................................................................248
2. Lanalyse discriminante Bayesienne........................................................................................................257

Q. La commande FORECAST (Etude de sries chronologiques)............................................269


1. Visualisation de la srie............................................................................................................................271
2. Choix dun modle de lissage..................................................................................................................272
3. Estimation des paramtres........................................................................................................................273
4. Prcision de lajustement..........................................................................................................................274
5. Calcul des prvisions................................................................................................................................274

VI. Quelques procdures de gestion de fichiers....................................................................276


A. FORMAT (Crer de nouveaux formats)................................................................................276
1. Objet..........................................................................................................................................................276
2. Syntaxe simplifie...................................................................................................................................276
3. Exemples...................................................................................................................................................278
4. Visualisation des formats utilisateurs.......................................................................................................279
5. Exercices...................................................................................................................................................280
6. Format permanent Library= ; puis Libname library nom de bibliothque ;........................................281
7. Masques daffichage (picture)..................................................................................................................283
8. Informat (INVALUE)...............................................................................................................................287
9. Complments............................................................................................................................................289

B. TRANSPOSE (Transposer un fichier)...................................................................................290


C. CONTENTS (Inventaire dune bibliothque).......................................................................293
D. DATASETS (gestion de bibliothques, de fichiers de donnes)...........................................296
1. Concatnation de fichiers.........................................................................................................................297
2. Changement de nom dun fichier.............................................................................................................299
3. Inventaire dune bibliothque, informations sur un fichier.....................................................................299
4. Suppression de fichiers.............................................................................................................................299
5. Copie de fichiers.......................................................................................................................................300
6. Modifications sur les variables dun fichier (format, nom...).................................................................301
7. Rparer des fichiers endommags par une panne systme.....................................................................302

VII. Une autre faon d'utiliser SAS: SAS / ASSIST............................................................303


A. Prsentation..............................................................................................................................303
B. Comment lancer SAS/ASSIST ?.............................................................................................304
C. Exemple d'utilisation de SAS/ASSIST: ................................................................................304
D. Comment obtenir les instructions SAS qui ont donn le rsultat prcdent.......................306

VIII. PETIT DICTIONNAIRE ANGLAIS-FRANCAIS......................................................308


IX. BIBLIOGRAPHIE COMMENTEE................................................................................309
X. ANNEXES.........................................................................................................................312
A. Raccourcis clavier....................................................................................................................313
B. OPERATEURS ET FONCTIONS.........................................................................................314
1. Les oprateurs...........................................................................................................................................314
2. Les fonctions.............................................................................................................................................316

C. Format et Informat..................................................................................................................321
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 5

1. Formats.....................................................................................................................................................321
2. Les Informats............................................................................................................................................329

D. Commande ou fentre OPTIONS en langage SAS...............................................................332


1. La fentre doptions..................................................................................................................................332
2. Linstruction..............................................................................................................................................333

E. Echange dynamique de donnes SAS-EXCEL :Liaisons DDE ...........................................335


1. Voyons un exemple de transfert SAS vers Excel....................................................................................335
2. Transfert Excel vers SAS.........................................................................................................................336
3. Applications..............................................................................................................................................337

F. Quelques procdures usuelles..................................................................................................339


G. Execution dun FICHIER DE COMMANDES SAS depuis le DOS...................................341
H. Importation de fichiers ayant un format connu PROC IMPORT.......................................342
I. Exportation de fichiers PROC EXPORT................................................................................343
J. Complment : Donnes importes dun fichier texte ASCII externe ...................................344
1. LEFI.........................................................................................................................................................344
2. Instruction INFILE : Syntaxe simplifie..................................................................................................347
3. Donnes ou fichiers inhabituels...............................................................................................................349
4. Lecture des donnes par colonnes dans un fichier ASCII externe..........................................................353

K. Utilisateurs du systme SAS en France au 1.1.1996..............................................................357


L. INDEX
........................................................................................................................................................358

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 6

Pour bien utiliser ce cours...

"J'entends, j'oublie
J'apprends, je retiens
Je fais, je comprends"
Proverbe chinois

Le but de ce cours est de vous prsenter une petite palette doutils SAS afin de
mettre en pratique vos connaissances en statistiques et en informatique.

On ne peut faire le tour des possibilits de SAS en 50H

de TD! Il en faudrait
au moins 5 fois plus ! Nous avons donc omis une grande partie des nombreuses
options des procdures, commandes et instructions . Laide en ligne du logiciel ou
lexcellente documentation papier sont l pour vous permettre dapprofondir les
notions vues en cours.
4

Pour que ce cours soit profitable, il faut le travailler rgulirement. Il ne faut


pas hsiter y revenir hors sance.

N'hsitez pas me faire part de vos commentaires sur ce document afin de


l'amliorer pour les candidats futurs.

Bon courage !

3 Cit par M. Tennenhaus dans une confrence de l'ASU sur l'emploi des logiciels en Statistique
4 Ce document totalise 400 pages environ contre plus de 10000 pour la documentation papier officielle SAS
5 Vous devrez imprativement la consulter si vous voulez tre spcialiste SAS plus tard
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 7

I.

Premier contact avec SAS

Lancez le programme SAS, vous allez voir apparatre le DMS ( Display Manager System) de
SAS qui contient cinq fentres essentielles :
6

A.

Cinq fentres essentielles

Rsultats de compilation

Explorer : permet de
crer des bibliothques
pour grer les fichiers de
donnes.
Enhanced Editor : Pour entrer
votre Code SAS

Pour grer toutes les sorties


des programmes

Contient tous les rsultats

6 Si tel n'est pas le cas, allez dans le menu Windows/Cascade ou si une des fentres est absente, faites View/'nom de la fentre'
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 8

La fentre Explorer
Permet de grer les bibliothques et les fichiers de donnes. On peut crer,
visualiser, modifier une fichier de donnes.

La fentre Enhanced EDITOR

Elle contient, comme son nom l'indique, les instructions SAS excuter. Grce
aux menus attachs CETTE fentre, vous pouvez saisir un programme, le
sauvegarder, le rappeler, le modifier...

La fentre LOG (Touche F6)


Aprs excution d'un programme, cette fentre contient chaque instruction
excute et ventuellement les erreurs rencontres. Il est indispensable de
consulter cette fentre avant de lire les rsultats contenus dans la fentre
OUTPUT.

La fentre OUTPUT (Touche F7)


Cette fentre contient tous les rsultats des instructions excutes par SAS: tests,
tableaux de valeurs ... Elle ne doit tre consulte qu'aprs la LOG.
Il vous est possible de sauvegarder tout ou partie du contenu de cette fentre et de
rcuprer le contenu sous WORD.

La fentre RESULTS
Permet de grer toutes les sorties produites par les programmes SAS excuts
pralablement. Elles permet daccder rapidement la sortie qui vous interesse.

7 En fait, il y en a deux. Il y a lancienne (Program Editor V6.12) et celle-ci beaucoup plus agrable utiliser (indentation automatique,
reconnaissance des caractres par des couleurs etc.)
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 9

Ainsi, aprs excution du programme contenu dans l Enhanced EDITOR prcdent, on


observe le rsultat suivant:

Vous constatez que les instructions et les commentaires d'excution sont "passs"
dans la fentre "LOG", quant aux rsultats, ils figurent dans la fentre "OUTPUT".
Quant la fentre Results, elle contient le plan des rsultats disponibles.
Nous voyons quune procdure MEANS a t excute et que nous disposons des
Summary Statistics :

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 10

B.

Mon premier programme SAS

1.

Saisie du programme
Activez la fentre Enhanced EDITOR et cliquez sur FILE/NEW pour vider son
contenu. Vous allez taper ( la lettre !) dans la fentre le programme suivant :
/* Petit programme simple */
DATA WORK.TAILPOID;

Cration du fichier tailpoid dans la


bibliothque Work qui contiendra :

INPUT TAILLE POIDS;


CARDS;
175
85
167.5 75
190
92
188
88
165
57
166
49.5
RUN ;

Etape
DATA
(cration
fichier de
donnes)

Variables du fichier : Taille


et poids.

Donnes

Excuton de cette tape DATA cest dire cration


physique du fichier ci-dessus

TITLE 'CALCUL DES STATISTIQUES DE BASES' ;


FOOTNOTE 'SOURCE:QUESTIONNAIRE OCT 1992';
Procdure
SAS (calcul de
stats
lmentaires)

PROC MEANS DATA=WORK.TAILPOID N NMISS MIN


MAX RANGE MEAN VAR STD;
VAR TAILLE POIDS;
RUN;

Statistiques de
base sur les
variables Taille et
Poids du fichier
Work.Tailpoid

Ce programme cre un fichier de donnes TAILPOID dans la


bibliothque WORK contenant deux variables numriques TAILLE et POIDS
puis calcule quelques statistiques de base.

Linstruction CARDS ; indique SAS lemplacement des donnes.


Notez les RUN ; qui terminent les procdures et les tapes DATA et aussi le
. qui sert de sparateur dcimal (comme pour MINITAB)

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 11

Un mot sur PROC MEANS


( passer en premire lecture)
PROC MEANS etc. demande SAS deffectuer quelques statistiques
lmentaires sur les variables taille et poids dont voici la signification (nous en
ajoutons dautres qui peuvent tre demandes en option) :
8

Terme
N
NMISS
MIN
MEDIAN
Q1
MAX

Signification
Nombre dobservations
Nombre dobservations manquantes
Le minimum
Mdiane
Premier quartile
Le maximum

Terme
RANGE
MEAN
VAR
Q3
QRANGE
STD

Signification
Ltendue (MAX-MIN)
La moyenne
La variance
3eme quartile
Q3-Q1
Lcart-type

Sa syntaxe peut tre trs complexe :


Linstruction CLASS indique quelles variables utiliser pour dfinir les sous
populations.
proc means data=moi.stid193 mean median q1 q3;
var taille;
class groupe sexe bac;
run;

Extrait de la sortie :
N
Lower
Upper
GROUPE
SEXE BAC
Obs
Mean
Median
Quartile
Quartile

A
1 B
2 174.0000000 174.0000000 168.0000000 180.0000000
C
5 182.2000000 181.0000000 179.0000000 183.0000000
D
2 173.0000000 173.0000000 168.0000000 178.0000000
PRO
1 186.0000000 186.0000000 186.0000000 186.0000000
2 A
2 168.5000000 168.5000000 167.0000000 170.0000000
B
5 163.0000000 162.0000000 162.0000000 164.0000000

Pour limiter le croisement des variables prcdentes, vous pouvez utiliser WAYS :
Complment sur Proc Means : WAYS, TYPE
proc means data=moi.stid193 mean median q1 q3;
var taille;
class groupe sexe bac;
ways 1 2;
run;

Ne va combiner les variables CLASS que 1 1 ou 2 2 et ce, grce WAYS pour navoir
quune seule combinaison il suffit de mettre 1. Linstruction TYPE GROUPE*SEXE ; permet
de navoir que la variable groupe croise avec la variable SEXE

8 Pour en savoir plus, allez dans laide, puis dans Help on SAS Software PRODUCTS puis dans Search entrez MEANS, vous pouvez
ensuite accder la procdure PROC MEANS. Nous verrons plus loin une procdure plus complte pour traiter les donnes
quantitatives :PROC UNIVARIATE
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 12

2.

Sauvegarde des instructions du programme

Toujours dans la fentre " EDITOR" faites FILE/SAVE AS et enregistrez ce


programme dans votre rpertoire sous le nom PREMIER.SAS par
exemple.
10

3.

Excution du programme (F8)


Excution de tout le contenu de la fentre
Nous allons excuter le programme prcdent. Assurez-vous que la fentre
LOG est visible. Dans la fentre "EDITOR" allez dans LOCALS/SUBMIT, ou
cliquez sur le bouton

ou encore tapez sur F8.

Une fois l'excution acheve, allons dans la fentre LOG (F6) pour voir les
commentaires d'excution . Il est fondamental d'y aller AVANT d'interprter
les rsultats car elle contient les ventuels messages derreurs.
11

Excution partielle
Pour excuter une partie du programme figurant dans la fentre Program
Editor, slectionnez la avec la souris (mettez la en surbrillance) puis faites un
submit. Seule la partie slectionne a t excute.

9 Le fichier de programme est un fichier texte DOS banal qui peut ensuite tre dit sous Word (en police courier new pour conserver
l'alignement)
10 Lextension .SAS est rserve au fichiers de programme SAS. Ce sont des fichiers ASCII standard.
11 Il vous est possible aussi de sauvegarder le contenu de cette fentre LOG (menu File/...) dans un fichier que vous nommerez
PREMIER.LOG par exemple. Vous pourrez ainsi regarder le contenu tte repose !
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 13

4.

Visualisation des rsultats et personnalisation de la fentre OUTPUT


(complment)
Si tout s'est bien pass, la fentre OUTPUT (F8) apparat avec les rsultats.
Par dfaut SAS affiche dans la fentre OUTPUT, la date, le titre SAS, votre
titre, le numro de page Vous pouvez changer cela par un
Options nodate nonumber ;
mettre au dbut de votre premier programme avant de lexcuter nouveau.
Vous pouvez aussi changer la taille du contenu de la fentre OUTPUT avec les
options LINESIZE= nb de caractres par ligne PAGESIZE=nb de lignes par
page :
Options linesize=70 pagesize=35 ;
Quant aux titres, vous pouvez les grer par linstruction TITLE ou par un
CTRL T et les notes de bas de page par un FOOTNOTE ou par un CTRL F.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 14

Correction de votre programme


En cas de problme, vous pouvez corriger votre programme.
Quand tout est correct, retournez dans la fentre OUTPUT.

12

5.

Sauvegarde des rsultats contenus dans OUTPUT

a)

Dans un document WORD


Avec la souris, slectionnez le tableau des rsultats (la zone change de
couleur), faites EDIT/COPY TO PASTE BUFFER ( la couleur
d'origine revient) . Basculez vers WORD, slectionnez la police
COURIER NEW, et collez le rsultat !
13

b)

Dans un fichier Texte depuis SAS


En effet, vous pouvez aussi sauvegarder directement les rsultats de la
fentre OUTPUT dans un fichier texte, nomm PREMIER.LST par
exemple, (File/SAVE As) que vous pourrez rappeler sous WORD.

6.

Sauvegarde du fichier des donnes


Elle est automatique ! Nous verrons plus loin que les donnes sont
automatiquement place en C :\SASWORK\TAILPOID.SD2
14

Vos donnes sur la taille et le poids sont dans le fichier SAS temporaire
WORK.TAILPOID. Vous pouvez y accder sans recrer ce fichier
Ainsi, si vous souhaitez faire un nuage de points avec ces donnes, tapez
simplement dans la fentre PROGRAM EDITOR ( la suite du programme
prcdent)
PROC GPLOT DATA=WORK.TAILPOID ;
PLOT TAILLE*POIDS ;
RUN ;
QUIT ;

12 Si vous trouvez que la fentre OUTPUT est peu lisible (trop de lignes par page ou pas assez, trop de caractres par ligne ou pas assez,
vous pouvez modifier cela en insrant au dbut de votre programme un OPTIONS LINESIZE=70 PAGESIZE=35 ; allez voir
lannexe pour plus dinformations sur les options.
13 Si tel nest pas le cas, vous avez probablement slectionn une zone interdite. Vous ne devez pas faire descendre le curseur au del de la
dernire ligne de rsultats.
14 Nanmoins, ce fichier ne peut tre lu QUE par un programme SAS (ou par le SAS viewer qui est un petit programme SAS libre de droits
permettant de lire tous les fichiers de donnes SAS)
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 15

7.

Ne confondez pas...
Vous venez de voir 4 sortes de fichiers quil ne faut pas confondre :
1)Le fichier de programme dit dans la fentre PROGRAM EDITOR et
qui contient vos instructions SAS (PREMIER.SAS)
2)Le fichier de donnes WORK.TAILPOID qui a t cr par votre
programme et qui contient les donnes de votre tude statistique.
3) et 4) Les fichiers PREMIER.LOG et PREMIER.LST qui contiennent, si
vous les avez crs, les erreurs de compilation de la fentre LOG et les
rsultats contenus dans la fentre OUTPUT.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 16

II.

Fichiers de donnes SAS


Mthode
SAS ne peut effectuer de calculs que sur des fichiers de donnes type - SAS. Vous
devez donc, avant toutes choses saisir vos donnes dans un programme SAS ou, ce qui
est le plus courant, convertir votre fichier EXCEL, DBASE, Lotus 1-2-3 , ASCII au
format SAS.
SAS sait convertir directement (grce FILE/IMPORT) les fichiers EXCEL, DBASE,
ASCII (texte) etc.
15

16

A.

Prliminaires sur les fichiers de donnes SAS

1.

Nom logique dun fichier de donnes SAS


SAS utilise son propre systme pour nommer les fichiers de donnes . Tout
fichier SAS a un nom du type LIBREF.FILE o LIBREF est le nom de la
bibliothque (8 caractres maximum) et FILE le nom du fichier (32 caractres
maximum). La bibliothque est lendroit o se trouve le fichier de donnes SAS.
Elle se substitue au chemin du DOS.
17

Comparaison entre les noms des fichiers de donnes usuels et ceux de SAS
Sous EXCEL, WORD, etc.
Chemin et Nom de Extension
fichier caractrise lapplication
(XLS pour EXCEL,
DOC pour WORD)

Sous SAS
Nom de bibliothque Nom du fichier

identifie le rpertoire DOS o


SAS va chercher le fichier dont
le nom figure droite.

C:\WORD\COURS . DOC
G:\MONREP\TOT . XLS
I:\MART\STID193 . XLS

WORK . STID193
WORK . DONNEES
SASUSER . STID193

Comment SAS sy retrouve-t-il ?


Prenons par exemple le fichier de donnes WORK.BIDULE. Il dsigne le
fichier SAS Bidule dans la bibliothque WORK
18

WORK.BIDULE
15 Sils ne sont pas trop compliqus : Pas de ligne de titre, le sparateur de variables est un espace. Si FILE/IMPORT ne fonctionne pas avec
votre fichier, il faudra utiliser limportation classique utilisant un programme SAS. Cf. Importation dun fichier ASCII de ce document.
Grce son langage puissant, SAS peut en effet importer nimporte quel fichier texte aussi compliqu soit il !
16 Thoriquement SAS reconnat les fichiers SPSS et BMDP. La procdure IMPORT permet deffectuer le transfert.
17 Ceci peut sembler bizarre premire vue. Cela dit SAS est multi plate-forme : il fonctionne galement sous UNIX, NT etc. Ce systme de
noms particuliers permet aux programmes SAS de fonctionner sur nimporte quelle plate-forme aprs quelques modifications mineures des
programmes (Libname par ex.)
18 Work est une bibliothque prdfinie par SAS. Elle est situe physiquement en C:\SAS\WORK. Cest dire que le fichier Bidule sy
trouve physiquement
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 17

Correspond en ralit
(pour le DOS)

C:\SAS\WORK\

BIDULE.SD2

Remarques:
Tout fichier de donnes SAS a donc une adresse de stockage. Il est inutile de le
sauvegarder (contrairement MINITAB ou EXCEL) car ceci est fait
automatiquement fait par SAS. Par contre vous pouvez recopier le fichier un
autre endroit pour plus de sret... (cf. PROC DATASETS)
19

Si vous voulez mettre vos fichiers de donnes sur disquette (A:) ou dans votre
rpertoire rseau (Z:\TOTO) il vous faudra crer une bibliothque dont ladresse
sera lendroit o vous voulez mettre vos fichiers.
20

2.

Les 2 bibliothques prdfinies WORK et SASUSER


Il y a d'origine deux bibliothques sous SAS. Une temporaire (WORK) et une
permanente (SASUSER). La bibliothque WORK dtruit les fichiers quelle
contient ds que vous quittez SAS. A linverse de SASUSER.
Elles correspondent respectivement aux rpertoires DOS physiques
C:\Windows\Temp\SAS temporary Files et C:\Mes Documents\SASV8 .
21

Remarques:
Vous pouvez vrifier que le fichier TAILPOID de votre premier
programme SAS se trouve bien en C:\WINDOWS\TEMP sous le nom
tailpoid.sd2. Toutefois vous ne pourrez visualiser ce fichier quavec un
programme SAS ou le SAS VIEWER .
22

Les fichiers de ces bibliothques sont donc sauvegards physiquement sur C:,
le disque dur de l'ordinateur dont vous vous servez. Ceci est dangereux si vous
ntes pas le seul utilisateur de ce micro... Il est donc conseill de crer votre
propre bibliothque et d'y mettre vos fichiers de donnes SAS.

19 On peut tre tent de faire les copies de fichiers de donnes SAS en utilisant le gestionnaire de programmes ou lexplorateur de Windows
puisque nous connaissons le nom DOS du fichier. Cela dit, si la copie dun fichier devient systmatique, il est prfrable de leffectuer via la
procdure DATASETS pour respecter la compatibilit multi plateforme dont nous parlions dans la note prcdente.
20 (cf. instruction Libname plus loin dans ce document)
21 Ceci peut changer dun systme un autre.
22 Application fournie gracieusement par SAS permettant de consulter les fichiers de donnes.
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 18

3.

Comment crer VOTRE bibliothque ?


Nous allons maintenant crer une nouvelle bibliothque appele MOI qui pointe
sur le rpertoire D:\DATA (ce rpertoire nexiste pas chez vous, cest simplement
un exemple de dmonstration).

a)

Avec lexplorer
Activez la fentre Explorer. Au moins trois bibliothques par dfaut sont actives sous
SAS :
23

SASHELP, SASUSER, WORK

Pour ajouter une nouvelle bibliothque, cliquez sur le bouton droit et choisissez NEW,
ou cliquez sur
de la barre doutils, ou entrez la commande LIBASSIGN dans la
ligne de commande.

23 Allez dans View/Explorer si vous ne la voyez pas.


IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 19

Entrez le nom daccs


de votre bibliothque

Tapez ici votre rpertoire ou cliquez ici

En cliquant sur Browse, cette fentre apparat pour


vous permettre de slectionner votre rpertoire.

Validez. Si tout a bien fonctionn, vous devriez avoir dans la fentre Explorer :

La nouvelle bibliothque MOI est


rfrence.

Pour avoir des dtails sur ces bibliothques, allez dans View/ Details :

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 20

b)

Cration dune bibliothque dans un programme SAS


Pour faire la mme chose en utilisant un programme, il suffirait de taper :
LIBNAME MOI 'D:\DATA'; et de le compiler.
Remarque :
La bibliothque MOI est rfrence (elle a une adresse, SAS peut dsormais y
accder), son adresse physique est D:\DATA . Si je cre sous SAS le fichier de
donnes
MOI.STID193,
il
sera
physiquement
stock
en
D:\DATA\STID193.SD2
Exercice:
Crez-vous une bibliothque (8 caractres maximum) avec comme adresse
physique votre rpertoire serveur(et ventuellement un sous - rpertoire).
Modifiez mon premier programme pour que le fichier de donnes TAILPOID
soit directement cr dans votre rpertoire. Vrifiez dans la "LOG" que tout s'est
bien pass.
Remarques:
SAS oublie les noms de vos bibliothques mais pas le contenu !- ds que
vous le quittez . Pensez les redclarer au dbut de chaque session. Dautre part,
le nom MOI na aucune importance ; on peut mettre nimporte quel nom (<=8
caractres) condition de sen rappeler !
24

24 Sauf si vous cochez la case ENABLE AT STARTUP de la fentre de cration de bibliothques.


IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 21

4.

Visualisation du contenu dun fichier, modifications...


Il suffit de cliquer sur la bibliothque dans laquelle il se trouve, puis de cliquer
sur le fichier concern. En suite, en cliquant sur le bouton droit de la souris, vous
faites apparatre un menu contextuel qui vous permet de visualiser le fichier :
Ici, nous avons ouvert la bibliothque WORK, nous y avons trouv notre fichier
de donnes :

Remarque Importante :
Pour revenir en arrire (Fermer la fentre donnant le contenu dune bibliothque
et afficher la liste des bibliothques cliquez sur

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 22

de la barre doutils.

Exercice :

Recherchez le fichier TAILPOID que vous avez cr Cf. Mon


premier programme . Et visualisez-le avec les commandes prcdentes.

Pour modifier les donnes de faon intractive, passez en


Edit/Edit Mode25 et Edit/Table LEVEL EDIT ACCESS. Ajoutez une
nouvelle ligne de donne (Edit/Add Row, faites un Edit/Commit New
Row pour valider la saisie dune nouvelle ligne).

Un File/Close permet de terminer la modification.

Vous pouvez maintenant rexcuter la fin de votre petit


programme pour obtenir des statistiques jour. Pour cela mettez en
surbrillance la portion du programme a excuter et faites un
Local/Submit.

26

PROC MEANS DATA=MOI.TAILPOID N NMISS MIN


MAX RANGE MEAN VAR STD;
VAR TAILLE POIDS;
RUN;

25 Le Browse Mode est le mode de lecture seule.


26 Si vous excutez tout le programme, le fichier de donnes sera remis sa forme dorigine cause de linstruction DATA
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 23

B.

Conversion automatique dun fichier EXCEL (File/Import)


27

Prenons le fichier EXCEL : STID193.XLS qui contient des donnes sur les
STID1ere anne 1993 : (Les variable sont : Groupe, ordre (dans le groupe), Sexe,
Srie du Bac, Date (de naissance), Nombre de frres et soeurs(NBFS), Notfr, Nothis,
Notmat (les notes en franais, histoire go et maths au bac), la faon dont ils ont connu
lIUT (IUT ?), leur taille et leur poids et le code postal de leur lyce.

Nous allons le transformer en un fichier de donnes SAS pour pouvoir


travailler dessus sous SAS. Vous allez tre guid pas pas par un assistant
pour effectuer le travail.
1) Dclarez, si ce nest pas dj fait votre bibliothque sous SAS.
2) Sous SAS, allez dans FILE/IMPORT DATA, vous obtenez :

1.

Choix du type de fichier

Choisissez EXCEL 97 2000 comme format de fichier importer.


Cliquez ensuite sur NEXT .

27 Ceci suppose que le module ACCESS to PC FILE FORMAT est install. Si tel nest pas le cas, il faut convertir votre fichier Excel en CSV
et importer ce type avec SAS. Cest un peu plus lourd mais cela fonctionne. Pour limportation de fichiers ASCII voir en fin de ce document.
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 24

2.

Emplacement du fichier convertir


SAS vous demande ensuite WHERE IS THE FILE LOCATED ?
Cest dire : o se trouve le fichier importer ?, Vous pouvez alors taper le
chemin et le nom du fichier ou, si vous ne vous en rappelez plus, effectuer
un Browse pour parcourir les diffrents rpertoires.
En ce qui nous concerne, le fichier est en P:\LOGICIEL.
Il vous suffit donc de taper P:\LOGICIEL\STID193.XLS ou daller le
chercher dans les rpertoires (BROWSE)
et de cliquer sur Next.

3.

Nom du fichier SAS obtenu


SAS demande ensuite la bibliothque et le nom du fichier SAS rsultat .
28

Mettez ici le nom de votre


fichier : STID193

Choisissez ici la
bibliothque

Nous choisissons ici MOI comme bibliothque et STID193


comme nom de fichier.

SAS demande ensuite si vous souhaitez rcuprer le programme


ayant permis de faire cette importation. Nous nen avons pas besoin ici.

Cliquez sur Finish. Si tous sest bien pass, dans la fentre


LOG, vous devez avoir le message suivant :

29

30

NOTE: MOI.STID193 WAS SUCCESSFULLY CREATED.

28 Comme vous le savez tout fichier de donnes SAS possde un nom accol son nom de bibliothque qui nest autre que le chemin du
DOS
29 (qui a t prcdemment dclare)
30 Ce programme, utilisant la procdure IMPORT peut tre utile lorsque vous avez un grand nombre de fichiers importer
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 25

4.

Visualisation du fichier SAS


Il y a deux mthodes :

a)

La fentre Explorer
Slectionnez votre bibliothque. Reprez le fichier STID193. Cliquez sur le
bouton droit de la souris (menu contextuel) et choisissez View Columns :
31

Column
name
Length
Format
Informat
Label

Cest le nom de la variable qui sera utilis dans les procdures


les tapes DATA etc. Son type (numrique ou caractre) est
symbolis par une icne. Longueur maxi : 32 caractres.
Cest la longueur (en bytes)
$ variable caractre
8 variable numrique
Cest le format daffichage de la variable. Remarquez le
format de la date de naissance.
Cest le format de lecture, utile si vous importez des donnes.
Toujours pour la date, remarquez que vous ne pouvez
importer que des dates en format ddmmyy8.
Etiquette de la variable ne pas confondre avec le nom de
la variable. Longueur maxi 256 caractres.

31 Sivous importez unfichier EXCEL97, vous aurez peut tre une diffrence au niveau de la date. SAS va lire une DATETIME (date heure)
dont il faudra tenir compte plus tard.
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 26

Pour visualiser votre fichier, choisissez OPEN , vous visualisez alors votre
fichier :
32

Grce au menu DATA, vous pouvez effectuer des recherche (Where), des tris
(Sort) etc... Nous sommes en fait ici dans le module SAS/FSP qui permet
deffectuer des manipulations intractives sur les fichiers de donnes.

Attention :
Etiquettes (LABEL)
des variables.

32Si les variables de votre fichier possdent des tiquettes (label), ce sont les labels qui sont en tte de colonne.
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 27

Comment slectionner une partie dun fichier ?


Cherchons par exemple les individus de STID193 masculins ayant plus de
10 en maths et en franais :
Allez dans DATA/WHERE

et tapez la close prcdente en cliquant successivement sur les nom de variables et


sur les operateurs (AND, OR, GT (=Greater Than plus grand que,), EQ (Equal,
Egal), LT (Less Than, plus petit que), GE (great or equal = suprieur ou gal), LE
(Less or equal = inferieur ou gal), NE (Non equal= diffrent).
33

Validez en cliquant sur OK.


Vous obtenez les 11 individus rpondant la question :

a) Cherchez les individus masculins ns aprs le 10 octobre 1972.


33 Pour une constante, cliquez sur le champ CONSTANT Enter Value, puis entrez la valeur. Remarquez bien que la valeur peut tre une
date. 10JAN69:000:00:00DT est une constante valide pour SAS. (Le DT sert SAS pour identifier une date-heure : DATETIME. D pour
une date seule (DATE) ; T pour une heure seule(TIME).
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 28

Vous pouvez sauvegarder le rsultat de la requte dans un autre fichier de donnes


SAS. Grce File/ Save As :

Le fichier sera enregistr sous


le nom MOI.PARTIE

Table=fichier de donnes SAS

En cliquant sur Advanced, vous pouvez mettre un LABEL explicitant ce que


contient votre fichier. Vous pouvez aussi protger votre fichier de donnes en
lecture, criture etc

b) Cherchez les individus des groupes B et C ayant une note strictement suprieure
10 dans les trois matires et ns le 1/1/73 ou aprs
34

34 Attention la spcification de la date. Voir la note prcdente.


IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 29

b)

Visualisation dun fichier de donnes dans lOUTPUT


Cest une mthode beaucoup plus rudimentaire nutiliser que pour de
petits fichiers et pour cas de force majeure !
Vous pouvez donc visualiser, dans la fentre OUTPUT, un fichier de
donnes en tapant dans le program Editor :
PROC PRINT DATA=MOI.STID193 ; RUN ;
Voir la PROC PRINT dans ce document pour avoir plus de dtails sur sa
syntaxe.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 30

C.

Fichier de donnes cr dans un programme SAS : tape DATA


Ltape DATA est ltape quasi incontournable en langage SAS pour crer ou
modifier un fichier de donnes . Nous allons distinguer 3 types dtape DATA :
35

1.

Donnes incluses dans le programme. (CARDS)


Nous lavons dj rencontre avec mon premier programme SAS :

a)

Syntaxe trs simplifie

Nom(s) du (des) fichier(s)


de donnes SAS crer.

DATA nom fichier SAS ;

INPUT var1 type1 var2 type2 .... var n type n ;


instructions complmentaires ;
CARDS ;
liste des donnes

Les donnes
commencent ici.

Noms des
variables suivis
de leur type, de
leur informat.

RUN ;
Le type contient les informations sur le type de la variable ($ si elle est de type
texte, rien sinon), sur son format, sa longueur, sa position etc.

35 Il y a aussi la mthode EXPLORER (File/New) plus graphique, ou des procdures qui permettent de crer un fichier de donnes, mais
ceux-ci sont figs : procdure CORR rendant les coefficients de corrlations, pocdure REG les rsidus etc. Seule la procdure SQL
permet de crer des fichiers de donnes avec souplesse. Notons aussi lODS qui permet de rorienter toutes les sorties dans des fichiers de
donnes SAS.
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 31

Exemples :
DATA work.donnee;

Nous allons crer un nouveau fichier donnee dans work.

input groupe $ taille poids;

Le $ indique SAS que groupe est une variable texte.

cards;
A 175 85
B 167.5 75
B 190 92
C . .
C 165 57
A 166 49.5
;
RUN ;

Les donnes suivent...

Le ; marque la fin du jeu de donnes.


Ltape DATA se termine par un RUN.

proc print data=work.donnee;


run;

Dans le programme suivant, nous introduisons les noms des individus.


Testez ce programme, quel est son inconvnient pour la variable nom ?
DATA work.donnee;
input nom $ groupe $ taille poids;
cards;
Jean-philippe
A 175 85
Claude
B 167.5 75
Marie-christine B 190 92
Eric
C . .
Carmino
C 165 57
Etienne
A 166 49.5
;
run ;
Proc Print data=work.donnee ; run ;

Les deux points


indiquent que les
donnes sont
manquantes pour la
taille et le poids.

Pour y remdier, nous allons introduire un informat. Nous allons demander SAS
de lire 15 caractres et non pas 8. Linformat se nomme $15.
Remplacer donc linput par : input nom $15. groupe $ taille
poids;

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 32

b)

Lecture et restitution de dates (Informat et Format)


De faon gnrale, lorsque SAS lit des donnes spciales il faut lui prciser
un format dentre (nomm informat) derrire le nom de la variable dans
linstruction INPUT. Vous pouvez ensuite dclarer un format de sortie (format)
qui est en gnral li linformat.
La liste des formats et informats courants figurent en annexe.

36

Exemple
Nous allons lire la variable date dentre pour les personnes prcdentes.
Si nous voulons lire des dates, il va falloir prciser SAS leur forme
dentre cest dire leur informat. En effet, il existe plusieurs faons dcrire
une date : 08/04/1997 ; 08APR97 ; Thu, April 8, 1997 etc...
Tapez le programme suivant :
DATA work.donnee;
input nom $15. dat_entr date8.; Date8. est le format des dates ci-dessous cf.annexe
cards;
Jean-philippe
08JAN89
Voici les donnes.
Claude
05FEB88
Marie-christine 02MAR90
Eric
31DEC95
Carmino
12APR75
Etienne
10JUL85
;
run ;
proc print data=work.donnee ; run ;

Vous obtenez laffichage suivant :


OBS
1
2
3
4
5
6

NOM

DAT_ENTR

Jean-philippe
Claude
Marie-christine
Eric
Carmino
Etienne

10600
10262
11018
13148
5580
9322

Contrairement ce quil semble, SAS a bien lu les dates (elles sont codes en
interne sous forme de nombre) .
37

Nous allons maintenant demander SAS de les afficher convenablement en


donnant un format daffichage.
38

36 Il vous est galement possible de dfinir vos propres formats et informats en uitlisant PROC FORMAT.
37 Le nombre obtenu est le nombre de jours entre le 1/1/1960 et la date en question. Dans notre exemple, il y a donc 10600 jours entre le
8/1/89 et le 1/1/1960 !
38 Notons que ce format ne change rien la reprsentation interne de la date. Elle sera toujours code sous forme de nombre. Seule son
apparence changera.
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 33

DATA work.donnee;
input nom $15. dat_entr date8.;

format dat_entr date8.;

Nous conservons le mme format pour laffichage

cards;
Jean-philippe
08JAN89
Claude
05FEB88
Marie-christine 02MAR90
Eric
31DEC95
Carmino
12APR75
Etienne
10JUL85
;
run ;
proc print data=work.donnee ; run ;

Nous obtenons :
OBS
1
2
3
4
5
6

NOM

DAT_ENTR

Jean-philippe
Claude
Marie-christine
Eric
Carmino
Etienne

08JAN89
05FEB88
02MAR90
31DEC95
12APR75
10JUL85

Exercice
Modifiez le programme prcdent pour obtenir laffichage suivant dans la
fentre OUTPUT (date la franaise)
OBS
1
2
3
4
5
6

NOM

DAT_ENTR

Jean-philippe
08/01/89
Claude
05/02/88
Marie-christine 02/03/90
Eric
31/12/95
Carmino
12/04/75
Etienne
10/07/85

Modifiez ce programme pour afficher le jour (de la semaine) de la date


dentre de chaque personne. (on pourra choisir un format adapt cf.
annexe)

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 34

c)

Instructions supplmentaires
Vous pouvez ajouter des instructions dans une tape data de manire
calculer de nouvelles variables partir de variables existantes.
Exemple :
Nous voulons calculer la date de sortie (dat_sort) des individus prcdents
sachant quils restent exactement 900 jours sur place.
Nous ajoutons les deux lignes (en gras) au programme :
DATA work.donnee;
input nom $15. dat_entr date8.;
format dat_entr date8.;
dat_sort=dat_entr+900;
format dat_sort date8.;
cards;
Jean-philippe
08JAN89
Claude
05FEB88
Marie-christine 02MAR90
Eric
31DEC95
Carmino
12APR75
Etienne
10JUL85
;
run ;
proc print data=work.donnee;
run;

Nous obtenons :
OBS
1
2
3
4
5
6

NOM

DAT_ENTR

DAT_SORT

Jean-philippe
08JAN89
27JUN91
Claude
05FEB88
24JUL90
Marie-christine 02MAR90 18AUG92
Eric
31DEC95 18JUN98
Carmino
12APR75 28SEP77
Etienne
10JUL85 27DEC87

Gnial non ?
Exercice
En utilisant la fonction TODAY( ) qui donne la date courante,
calculez lanciennet en jour, puis en annes des individus en ne
tenant compte que de la date dentre.
39

Calculez les statistiques lmentaires sur cette variable (Proc Means)

39 Diffrence entre la date dentre et la date courante.


IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 35

2.

Utilisation de fichiers de donnes SAS existants : Instruction SET


Dans ce paragraphe, vous apprendrez crer de nouveaux fichiers partir de
fichiers existants, ajouter des variables, recoder des variables etc...en utilisant
ltape DATA du langage SAS .
40

DATA nom(s) fichier(s) SAS (options);

SET fichierSAS1(options1)fichierSASn(optionsn)[ options


point=nomvariable nobs=nomvariable end=nomvariable ];
instructions complmentaires (IF, KEEP, DROP ;
RUN ;
Linstruction SET ci-dessus permet de spcifier le (ou les) fichier de donnes
SAS, ventuellement assortis doptions , partir duquel on va en construire un
autre. Nous allons retrouver les keep, drop... que vous venez de voir mais sous
forme dinstructions et non plus doptions.
41

Les options de linstruction SET (END=, POINT= , NOBS= ) sont dcrites un


peu plus loin dans ce paragraphe.

40 Notez aussi que la procdure DATASETS permet deffectuer directement des modifications sur le fichier dorigine (changement de nom,
de format etc... des variables dorigine)
41 (WHERE= KEEP= etc. permettant de slectionner certaines variables ou certains individus dun fichier.
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 36

a)

Copie d'un fichier SAS existant

(1)

Copie totale en utilisant ltape DATA


LIBNAME MOI Z:\ ;
LIBNAME PUB P:\LOGICIEL ;
DATA MOI.ACP;
SET PUB.ACP;
RUN;
Ces instructions permettent la cration d'un fichierACP qui est la copie conforme
du fichier ACP de la bibliothque PUB. (trs utile pour copier un fichier du
rpertoire public sur le votre)
Remarque importante: Ce nest pas la faon la plus rapide de copier deux
fichiers ! Vous pouvez, tout simplement, faire un copier coller entre les deux
bibliothques dans lexplorer !
Si vous utilisez le langage SAS la PROC COPY permet de faire ce travail.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 37

(2)

Copie partielle
Cest le rel intrt de ltape DATA pour copier des fichiers.
Nous allons retrouver ici certains termes (KEEP, DROP...) qui sont cette fois des
instructions et non plus des options attaches qux fichiers de donnes (Voir page
64).
en ne conservant que certaines variables (KEEP)
DATA WORK.NOTSTID;
le fichier notstid est cr...
SET MOI.STID193;
partir du fichier STID193 de la bibliothque MOI...
KEEP NOTEMAT NOTEHIS NOTEFR_; en ne conservant que les variables notes.
RUN;
Remarque : Le programme :
DATA WORK.NOTSTID;
SET MOI.STID193 (KEEP=NOTEFR_ NOTEHIS NOTEMAT);
RUN;
ferait la mme chose.
en ne supprimant que certaines variables (DROP)
DATA work.saufsexe;
SET MOI.STID193;
DROP SEXE;
RUN;

On enlve la variable sexe.

en conservant certaines observations (IF THEN, WHERE, OBS, FIRSTOBS)


DATA WORK.HOMME;
SET MOI.STID193;
IF SEXE=1;
RUN;

on ne conserve que les individus dont SEXE=1

On peut aussi utiliser les options (cf. plus loin)


DATA WORK.HOMME;
SET MOI.STID193 (where=(sexe=1));
RUN;

DATA WORK.BONMAT;
SET MOI.STID193;
KEEP GROUPE NOTEMAT ;
IF NOTEMAT>=10 AND GROUPE='A';
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 38

on ne conserve que les gens du groupe A


ayant la moyenne en math.

RUN;
Remarque : Ce IF est diffrent de ceux que vous avez lhabitude de voir en
INFO. Il permet de faire des slections sur des individus.
On a aussi en utilisant loption WHERE= : (cf. Plus loin)
DATA WORK.HOMMAT;
SET MOI.STID193 (KEEP=GROUPE NOTEMAT WHERE=(GROUPE=A
AND NOTEMAT>10));
RUN;
Remarque (rappel) : Loption WHERE ne peut pas tre utilise avec OBS et
FIRSTOBS suivantes.
DATA
SET
RUN;
DATA
SET

WORK.PARTIE;
MOI.STID193 (OBS=15);

on ne conserve que les 15 premiers individus

WORK.EXTRAIT;
MOI.STID193 (FIRSTOBS=100 OBS=106);

on ne conserve que les


individus du 100me au
106me .

RUN;
en liminant certaines observation (delete)
DATA WORK.LESBONS;
SET MOI.STID193;
On limine les gens ayant moins de 12 de moyenne.
IF MEAN(NOTEFR_,NOTEHIS,NOTEMAT)<12 THEN DELETE;
RUN;
DATA WORK.PRESENT;
SET MOI.STID193; Cette fois on enlve tout ceux ayant au moins une note manquante...
IF NMISS(NOTEFR_,NOTEHIS,NOTEMAT)>0 THEN DELETE;
RUN;
Remarque:
Pour plus dinformation sur les fonctions NMISS, MEAN consultez lannexe
(Oprateurs et fonctions).

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 39

(3)

Copies multiples sur des fichiers diffrents OUTPUT


Il est possible de crer plusieurs fichiers la fois en les spcifiant derrire
linstruction DATA.
Linstruction OUTPUT nomdefichier permettra ensuite daffecter les observations
dans les fichiers choisis.
data work.homme work.femme;
set moi.stid193;
if sexe=1 then output work.homme;
if sexe=2 then output work.femme;
run;
Gnial non ?

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 40

Exercices
A partir du fichier STID193 import pralablement, crez un fichier
temporaire ne contenant que les gens ayant la moyenne dans les trois matires;
Crez un fichier WORK.HOM ne contenant que les hommes de STID avec les
variables taille, poids et sexe. Faites de mme un fichier WORK.FEM.
Crez trois fichiers de donnes ENFANT1, ENFANT2, ENFANT3 contenant
les individus de STID ayant respectivement 1, 2 ou 3 frres et surs (variable
NBFS). On effectuera ce travail en une seule tape DATA.
Toto veut

excuter le programme suivant.

data essai;
set pub.stid193;
jour=date;
format jour downame10.;
if jour='Sunday';
run;
proc print data=essai(obs=10);
var groupe ordre jour;
run;
Il stonne car il ne fonctionne pas. Identifiez lerreur de TOTO sur la
notion de Format et apportez une solution. On pourra utiliser la
fonction SAS WEEKDAY()
42

42 Attention toutefois,car la fonction WEEKDAY ne fonctionne quavec des variables DATE. Si vous avez une variable de type
DATETIME (cest le cas si vous avez import votre fichier depuis EXCEL 97-2000), vous devez en extraire la date grce la fonction
DATEPART.
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 41

b)

Crations de variables, modifications, tableaux de variables

(1)

Cration ( partir des variables existantes)


La syntaxe est trs simple, il suffit de dclarer le nom de la variable = sa
dfinition :
Data moi.stid193 ;
Set moi.stid193 ;
Taille_metre=taille/100 ;
Run ;
Ce programme cre la variable taille_metre qui est la taille en mtre (taille/100).
Cette variable est ajoute au fichier existant.
Data moi.stid193 ;
Set moi.stid193 ;
NOTEMAX=MAX(NOTEFR_,NOTEHIS,NOTEMAT) ;
NOTEMIN=MIN(NOTEFR_,NOTEHIS,NOTEMAT) ;
Run ;
Ce programme va crer les variables notemax, notemin qui sont le max et le
min pour chaque individu de leurs trois notes obtenues au bac. Ces variables
seront ajoutes au mme fichier MOI.STID193 ;
Remarque : Si les variables sont indices, on peut spcifier cela autrement :
PMAX=MAX(POIDS1,POIDS2,POIDS3,POIDS4);
Peut tre remplac par : PMAX=MAX(OF POIDS1-POIDS4);
Trs utile lorsquon a un grand nombre de variables.
Cration dune variable de type caractre ; instruction LENGTH
data work.essai;
*on va crer une variable identif de 4 caractres ;
length identif $4.;
set moi.stid193;
identif=put(groupe,$1.)!!put(ordre,2.0);
keep identif groupe ordre sexe taille poids;
run;

Excutez cet exemple et visualisez le rsultat en faisant un VT


work.essai dans la ligne de commandes.

Comment est cre la variable Identif ?

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 42

(2)

Modification
Supposons quun prof de maths dcide de mettre 0 ceux qui nont pas de
notes de maths dans le fichier STID193. Nous allons modifier en
consquence les notes de maths...
Nous avons alors :
DATA WORK.COPY;

Cration dun fichier temporaire copy. Nous ne voulons pas


altrer loriginal !

SET MOI.STID193;
IF NOTEMAT=. THEN NOTEMAT=0;Si notemat est manquant alors notemat=0.
RUN;
Plusieurs variables...
Supposons que les professeurs dcident dtendre cette manipulation
toutes les autres notes !
Il est possible de rpter le programme prcdent trois fois ; toutefois
comme la modification est identique, nous allons regrouper les trois variables
dans un tableau.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 43

(3)

Tableau de variables
( passer en premire lecture)
Un tableau de variables est un mot cl avec un indice qui remplace un
ensemble de variables, en gnral de mme type . Le tableau vous permet
deffectuer dun seul coup un mme traitement vos variables en utilisant leur
nouveau nom dans une boucle par exemple :
43

DATA WORK.COPY (DROP=I);

on te la variable i du fichier copy (cest


une variable temporaire utilise dans les calculs)

SET MOI.STID193;
ARRAY NOTES{3} NOTEFR_ NOTEHIS NOTEMAT;

On cre
le tableau notes qui a 3 variables notefr_ notehis et
notemat. Notes{1} dsigne notefr_ etc...

DO I=1 TO 3 ;
IF NOTES{I}=. THEN NOTES{I}=0;
END;
RUN;
Dans cet exemple : Notes{1} est la variable NOTEFR_, Notes {2} la variable
NOTEHIS etc.
Exercice : Le fichier de donnes ACP contient les tempratures annuelles de
quinze villes en C. Mettez ces tempratures en F sachant que F=1.8*C+32.

43 Attention, aucune nouvelle variable nest cre. Il ne sagit que dun changement provisoire de nom pour allger les algorithmes de
calcul.
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 44

c)

Changement dtiquette, de nom, de format dune variable


( passer en premire lecture)

(1)

Changement dtiquette
LABEL nom de variable= Etiquette ;
Cette instruction permet daffecter des tiquettes des variables pour avoir des
sorties plus lisibles :
DATA WORK.TEMP;
SET PUB.ACP;
KEEP JAN FEV;
LABEL JAN='TEMPERATURE JANVIER' FEV='TEMPERATURE
FEVRIER';
RUN;
Si vous demandez la visualisation du fichier, vous obtiendrez :

Etiquettes des
variables...

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 45

(2)

Changement du nom dune variable :


RENAME nom de variable renommer(une ou plusieurs)=nouveau nom
LIBNAME PUB I :\STID9799\PUBLIC\LOGICIEL ;
DATA WORK.TEMP;
SET PUB.ACP;
KEEP JAN FEV;
On ne conserve que la t de janvier et de fvrier
RENAME JAN=JANVIER FEV=FEVRIER; La variable jan devient Janvier etc.
RUN;
Remarque (complment) :
Ici, nous avons recr un fichier (TEMP) ce qui peut tre couteux en
temps dexcution. Il est possible de passer par la procdure
DATASETS pour effectuer ce travail :
(Attention, ce programme modifiera dfinitivement le nom de la
variable NOTEFR_ ; si vous lexcutez souvenez vous du nouveau
nom ! ! !)
PROC DATASETS LIBRARY=MOI;
MODIFY STID193;
RENAME NOTEFR_=FRANCAIS;
RUN;
QUIT;
Ici nous renommons la variable NOTEFR_ en Franais directement
sur le fichier de dpart.
Remarque : Pour visualiser la modification allez dans
Global/Access/Display Libraries slectionnez le fichier puis dans le
menu contextuel (clic droit) choisissez la VAR Window.
Pour plus de dtails sur DATASETS reportez vous au paragraphe
La procdure DATASETS de ce document.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 46

(3)

Changement du FORMAT dune variable


Linstruction FORMAT permet de changer le format daffichage des variables. Ils
suffit de spcifier le nom de la variable et son nouveau format. Vous pouvez
lutiliser dans une tape DATA ou dans la procdure DATASETS comme le
montre lexemple ci dessous...
Exemple :
PROC DATASETS LIBRARY=MOI;
MODIFY STID193;
FORMAT NOTEHIS NOTEMAT 4.1 TAILLE 6.2;
RUN;
QUIT;
Dans cet exemple, les notes de Math et Histoire-go auront un format 4.1 et
la taille un format 6.2. .
44

Pour visualiser le rsultat faites un PROC PRINT et vous obtenez:


OBS
103
104
105
106

NOTEHIS
12.0
6.0
12.0
6.0

NOTEMAT
17.0
12.0
18.0
15.0

TAILLE
165.00
160.00
167.00
168.00

Ici, on voit que la variable taille est code sur 6 caractres dont 2 dcimales.

44 Le premier chiffre indique la taille maximale du nombre et le deuxime, le nombre de dcimale(s). Pour avoir plus dinformations sur les
formats disponibles, allez voir en annexe.
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 47

d)

Mot-cls particuliers :
Lors de lexcution dune tape DATA, SAS gnre des variables temporaires
trs utile pour des traitements particuliers.

(1)

_N_ compteur de ltape DATA


_N_ est une variable prdfinie du type compteur de boucle. Elle peut
permettre de reprer le numro de lobservation en cours de lecture dans une
tape DATA.
Voici un exemple dutilisation :
Le fichier CASOCIET (fichier de donnes SAS, rpertoire public/logiciel)
contient le chiffre daffaire annuel dune socit de 1971 1996. (Variable
C1) :
OBS
1
2
3
4
5
6
7
8
9
10
11
...

C1
9050
9380
9378
9680
10100
10160
10469
10738
10910
11058
11016

Nous souhaiterions, pour rendre le fichier plus lisible , crer une variable
Anne qui renvoie lanne associe au chiffre daffaire.
Le programme suivant rpond la question :
DATA WORK.ESSAI;
SET MOI.CASOCIET;
ANNEE=_N_+1970;
RUN;
PROC PRINT DATA=WORK.ESSAI;
RUN;
Tapez-le et vrifiez.
Supposons que le chiffre daffaire de CASOCIET corresponde au chiffre
daffaires des annes 1945, 1947, 1949,1951 etc. Modifiez le programme pour
ladapter cette situation.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 48

(2)

Variables instantanes
Mditez lexemple suivant :
data work.groupe;
set moi.stid193 ;
if sexe=1 then hom+1;
if sexe=2 then fem+1;
total+1;
keep groupe sexe taille poids hom fem total;
run ;
Proc print data=work.groupe (obs=10) ;
Run ;
Comment sont construites les variables hom, fem et total ?
Une utilisation de ce qui prcde va tre faite dans lexemple suivant.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 49

e)

Options de linstruction SET


Ci-dessous, nous dcrivons les options de linstruction SET. Les mots cls :
END= ; POINT= ; NOBS=

(1)

END=
Ce mot clef se place derrire le SET et permet de crer une variable temporaire
qui prendra la valeur VRAIE lorsque ltape DATA aura lu toutes les
observations.
Syntaxe ultra simplifie
SET nomdefichier END=nomdevariable ;
data work.groupe;
set moi.stid193 end=final ;
if sexe=1 then hom+1;
if sexe=2 then fem+1;
total+1;
keep groupe sexe taille poids hom fem ;
/*nous detectons la fin du fichier*/
if final then do;
put hom=;
put fem=;
end;
run;
va donner dans la LOG :
HOM=46
FEM=60

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 50

(2)

POINT=
Loption POINT= de linstruction SET permet de slectionner lindividu dont le
numro est dans la variable suivant POINT=
Dans lexemple suivant, nous allons lectionner un individu sur 10 dans le fichier
STID193.
data unsurdix;
do i=1 to 110 by 10 ;
set moi.stid193 point=i; Nous allons lire la ieme observation de ce fichier
if _error_ then abort;

Si elle nexiste pas (dpassement du fichier) , la


variable automatique _ERROR_ vaut 1, nous
arrtons ABORT.

output;

Nous inscrivons cette observation dans le fichier

end;

Nous passons la valeur de i suivante

stop;

INDISPENSABLE : sinon on entre en boucle infinie.45

run;
Attention : loption POINT= ne peut sutiliser avec BY, WHERE, WHERE=.

45 En effet, pour sortir de ltape data il faut dpasser la fin du fichier, comme ici nous ne pointons que sur des observations existantes,
nous ny arriverons jamais ; do le STOP pour arrter ltape DATA quand la boucle est finie.
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 51

(3)

NOBS=
Cette option de linstruction SET cre une variable contenant le nombre total
dobservations du fichier de donnes.
La valeur de cette variable est affecte lors de la compilation. Vous pouvez donc
vous y rfrer avant linstruction SET. Cette variable nestpas disponible en
dehors de ltape DATA qui la contient.
Nous pouvons modifier le programme prcdent de la sorte :
data unsurdix;
do i=1 to dernier by 10 ;
set moi.stid193 point=i nobs=dernier;
output;
end;
stop;
run;
Dernier vaudra 106. Nous navons plus besoin de la condition derreur du
programme prcdent car nous nallons pas dpasser la fin du fichier.

(4)

Option IN=
Cre une variable prenant la valeur 1 si lobservation vient du fichier ou figurait
le IN et 0 sinon.
Voir un exemple dans la concatnation de fichiers.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 52

f)

Fusion de fichiers
Si vous devez augmenter fusionner des fichiers contenant les mmes variables
sur des individus diffrents (par ex. STID93, STID94STID99), utilisez la
fusion verticale.
46

Si vous devez fusionner des fichiers contenant les mmes individus mais sur des
variables diffrentes (par ex. ventes sur les dernier trimestre : TOTOCT,
TOTNOV,TOTDEC), utilisez la fusion horizontale (MERGE).

46 Si des variables nexistent pas dans les deux fichiers, la colonne contiendra des manquants pour les individus en question.
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 53

(1)

Fusion verticale de deux fichiers (augmente le nombre d'observations (ou d'individus))


FICHIER 1
OBS
1
2
3

X
23
54
123

Y
Jules
Toto
Prof

FICHIER 2
OBS
1
2

X
678
787

Y
COUCOU
truc

FICHIER CONCATENE 1+2


SET FICHIER1 FICHIER2
OBS
1
2
3
4
5

X
23
54
123
678
787

Y
Jules
Toto
Prof
COUCOU
truc

Si WORK.HOM contient les hommes de STID et WORK.FEM les femmes, vous


pouvez reconstituer un fichier TOUT, concatnation des deux prcdents, de la
faon suivante:
DATA WORK.TOUT;
SET WORK.HOM WORK.FEM;
RUN;
Ce fichier contiendra l'ensemble des individus de ces deux fichiers sur les
variables correspondantes.
Remarque : Si une variable se trouve dans un des fichiers sans tre dans le
second, les individus seront ports manquants pour cette variable dans le second
fichier.
On peut galement faire figurer des options derrire les noms des fichiers de
donnes :
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 54

data essai;
set moi.stid193(where=(sexe=1)) moi.stid197 (where=(sexe=2));
run;

Que fait ce programme ?

Fusion avec lutilisation de loption IN=


IN=Variable est une option des instructions SET et MERGE permettant de savoir
do vient lobservation lorsque lon fusionne plusieurs fichiers de donnes :
data work.tous;
set moi.stid193 moi.stid197(in=x);
keep annee sexe taille poids;
annee=1993;
if x=1 then annee=1997;
output;
run;
Ici X prend la valeur 1 lorsque lobservation vient de STID197 .

Que fait ce programme ?

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 55

(2)

Fusion horizontale simple: L'instruction MERGE


Cette instruction permet de fusionner deux fichiers (en augmentant le nombre de
variables cette fois). Elle suppose que les individus (lignes) SONT LES MEMES
et DANS LE MEME ORDRE !
47

Nous ne prsentons ici qu'une version simple de cette instruction:


FICHIER 1
OBS
1
2
3

X
23
54
123

Y
Jules
Toto
Prof

FICHIER 2
OBS
1
2
3

Z
678
787
89

T
COUCOU
truc
Machin

FICHIER CONCATENE
MERGE FICHIER1 FICHIER2
OBS
1
2
3

X
23
54
123

Y
Jules
Toto
Prof

Z
678
787
89

T
COUCOU
truc
Machin

47 Sinon votre fichier rsultat ne sera plus cohrent. Loption BY permet deffectuer cette fusion en se basant sur une ou plusieurs variables
identifiant les individus.
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 56

Exemple :
Nous allons d'abord crer deux extraits complmentaires de STID193 (M1 et
M2):
DATA WORK.M1;
SET MOI.STID193;
KEEP SEXE GROUPE;
RUN;
DATA WORK.M2;
SET MOI.STID193;
DROP SEXE GROUPE;
RUN;

Nous ne conservons que les variables sexe et groupe

Nous prenons toutes les variables sauf sexe et groupe

Puis, nous allons les fusionner pour retrouver le fichier original:


DATA WORK.TOUT;
MERGE WORK.M1 WORK.M2;
RUN;
Thoriquement TOUT=STID193!

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 57

(3)

Fusion horizontale sophistique (MERGE avec option BY)


Prenons les deux fichiers CHOL_AVR et CHOL_OCT contenant les taux de
cholesterol de quelques individus au mois davril puis au mois doctobre :
Fichier CHOL_AVR :
Analyses du mois d'avril
Obs

NUM_SECU

LDL_AVR

1
2
3
4
5

1660538898013
1770538351009
2761138010001
2781038351025
2890138351006

0.96
1.65
0.89
0.67
2.20

Fichier CHOL_OCT :
Analyses du mois d'octobre
Obs

NUM_SECU

LDL_OCT

1
2
3
4
5

1660538898013
1770538351009
2650238982002
2781038351025
2890138351006

0.90
1.77
1.65
0.67
2.00

Remarquez que les patients ne sont pas toujours les mmes !


Nous souhaitons fusionner ces deux fichiers en un seul. Chaque ligne reprsentant
un patient.

Utilisez btement loption MERGE.


Quel est le problme ici ?

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 58

Nous allons dire SAS de fusionner les deux fichiers par rapport aux individus :
data ensemble;
merge moi.chol_avr moi.chol_oct;
by num_secu;
run;
Attention : Pour que BY fonctionne, les fichiers doivent avoir t tris par
rapport la variable contenue dans le BY (ici num_secu). Si tel nest pas le cas,
utilisez PROC SORT. (Voir page 135)
Fichiers octobre et avril avec

BY

Obs

NUM_SECU

LDL_AVR

LDL_OCT

1
2
3
4
5
6

1660538898013
1770538351009
2650238982002
2761138010001
2781038351025
2890138351006

0.96
1.65
.
0.89
0.67
2.20

0.90
1.77
1.65
.
0.67
2.00

Super non ?

Syntaxe simplifie
DATA nom de fichier ;
MERGE fichier1 fichier2 fichier3 ;
BY Variable1 Variable2 ;
RUN ;
Remarques :

Les variables dans le BY doivent figurer dans TOUS les fichiers de


donnes concatner.

Les fichiers doivent tre tris par rapport aux variables figurant dans le
BY ou tre indexs par rapport ces variables.

Il est possible de spcifier un ordre dcroissant Cf. Aide en Ligne.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 59

(4)

Exercices

Crez trois fichiers (temporaires) SAS (hommes seuls, femmes seules,


hommes et femmes) contenant les variables note de maths, d'histoire-go et de
franais ainsi que leur moyenne, max et min pour chaque individu.

Crez un autre fichier SAS contenant les individus fminins ayant 3


notes et dont la moyenne gnrale est suprieure ou gale 12.
Crez un fichier de donnes contenant le groupe, ordre, taille, poids,
des hommes de tous les fichiers STID : stid193, 194 etc. Vous vous
arrangerez pour avoir une variable anne dans le fichier qui permet de savoir
de quelle anne tait lindividu de STID. Idem avec les femmes.

Slectionnez les 4eme, 7eme, 10 eme, 13eme etc. individus des fichiers
STID et mettez les dans un fichier en reprant le numro de lanne, le
groupe, lordre et le sexe.
Exercice rcapitulatif n1 du paragraphe PROC PRINT de la page 136.
(A faire lorsque vous aurez compris PROC SORT)

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 60

g)

Recodage de variables (if, then, else, select when )

(1)

if...then ...
syntaxe (dans le cas d'une instruction aprs le test)
IF condition THEN instruction;
IF condition THEN instruction; ELSE instruction;
syntaxe s'il y en a plusieurs:
IF condition THEN DO;
instruction1;
instruction2;
END;
Exemples:
IF AGE<10 THEN DO;
TYPE='ENFANT';
ECOLE=PRIMAIRE;
END;
Que fait le programme suivant ?
DATA WORK.STID;
SET MOI.STID193;
IF SERIEBAC IN ('C' 'D') THEN TYPE='SCIENTIFIQUE';
ELSE TYPE='AMATEUR';
KEEP SERIEBAC TYPE;
RUN;
Remarquez la prsence du type liste dans SAS. (if seriebac in(C D) etc...) qui
est trs pratique.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 61

(2)

Exercices:

Crez un programme SAS crant un fichier temporaire contenant le


fichier STID auquel on ajoute une nouvelle variable SEXEA qui vaut
"homme" si SEXE=1 et "femme" si SEXE=2.

Ecrivez un programme SAS crant la variable mention dans le fichier


STID. La mention est passable si la moyenne est entre 10 et 12, assez
bien entre 12 et 14, bien entre 14 et 16 et trs bien entre 16 et 20.

Crez un fichier de donnes extrait alatoirement de STID193, ne


contenant quune moiti des individus environ. On pourra utiliser la fonction
RANUNI(0) qui donne une ralisation dune variable alatoire suivant une
U[0,1].

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 62

(3)

Select / When
Vous avez dj vu cette fonction en informatique.
Un petit exemple vaut mieux quun long discours:
DATA WORK.STID;
FORMAT TAILLEC $10. ;
SET MOI.STID193;
SELECT (SEXE);
WHEN (1)
IF TAILLE>190 THEN TAILLEC='GRAND';
ELSE IF TAILLE >170 THEN TAILLEC='MOYEN';
ELSE TAILLEC='PETIT';
WHEN (2)
IF TAILLE>180 THEN TAILLEC='GRANDE';
ELSE IF TAILLE >160 THEN TAILLEC='MOYENNE';
ELSE TAILLEC='PETITE';
END;
KEEP TAILLE TAILLEC SEXE;
RUN;
Que fait ce programme ? Comment est dfinie taillec ?

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 63

D.

Utilisation de donnes SAS dans les Procdures ou les tapes DATA)


Lorsque nous faisons agir une procdure SAS sur un fichier SAS, il est possible
de limiter la porte de la procdure une partie du fichier de donnes en utilisant
des mots cls situs derrire le nom du fichier :
Procdure SAS
quelconque

Fichier de donnes
concern par la procdure

Options associes au fichier

PROC xxxx DATA=MOI.STID193 (Keep=groupe sexe


Where=(sexe=1 and groupe=A )) ;
RUN ;
Ces options permettent de ne conserver quune partie du fichier de dpart sans
pour autant modifier celui-ci.
Dans lexemple ci-dessus, la procdure xxxx ne sappliquera quaux hommes du
groupe A de STID193. Seules les variables Groupe et sexe sont conserves.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 64

1.

Slection sur les variables

a)

Suppression de variables : DROP=


DROP= variables
Exemple :
proc print data=moi.stid193(drop=notefr_ notehis notemat);
run;

Ici nous affichons STID193, dans la fentre OUTPUT, en enlevant les


variables notes. Linstruction ci-dessous fait exactement le contraire.
b)

Conservation de variables : KEEP=


Keep= variables
Exemple :
PROC PRINT DATA=MOI.STID193(KEEP=NOTEFR_ NOTEHIS
NOTEMAT);
RUN;
Ici nous imprimons STID193 en ne conservant que les variables
NOTEMAT, NOTEHIS ET NOTEFR_.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 65

c)

Renommer des variables : RENAME=


rename=(ancien_nom1=nouv_nom1 ancien-nom2=nouv_nom2...)
Exemple :
PROC MEANS DATA=MOI.STID193(KEEP=NOTEMAT NOTEHIS
NOTEFR_ RENAME=(NOTEMAT=MATHS NOTEHIS=HISTOIRE
NOTEFR_=FRANCAIS));
RUN;
va donner
VARIABLE
N
MEAN
STD DEV
MINIMUM
MAXIMUM
--------------------------------------------------------------------FRANCAIS 105
8.8285714
2.3099165
4.0000000
14.0000000
HISTOIRE
98
10.6020408
2.8420255
5.0000000
17.0000000
MATHS
104
12.5144231
3.2226871
5.0000000
19.0000000
---------------------------------------------------------------------

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 66

2.

Slection dindividus

a)

Slection dindividus par leur n : FIRSTOBS= OBS=


FIRSTOBS= n OBS=p
SAS ne conserve que les individus compris entre le nieme et le pieme. On peut
utiliser ces deux options sparment.
Exemple :
PROC MEANS DATA=MOI.STID193(KEEP=NOTEFR_ NOTEHIS
NOTEMAT FIRSTOBS=10 OBS=25);
RUN;
Ici nous calculons quelques statistiques sur STID193 en ne conservant que
les variables notemat, notehis et notefr_ et 16 individus (entre le 10eme et le
25eme )

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 67

b)

Slection dindividus par une condition : WHERE=


WHERE=Condition
Seuls les individus remplissant la condition seront slectionns. Cette option
est extrmement riche et donc importante connatre.
Remarque : Loption WHERE ne peut pas tre utilise avec OBS et FIRSTOBS.

c)

Oprateurs < > = ...


PROC PRINT DATA=MOI.STID193
(WHERE=(NOTEMAT>10 AND NOTEFR_>=12));
RUN;
On ne slectionne que les individus ayant plus de 10 en maths et plus de 12
(ou 12) en franais. Il nen reste plus beaucoup ! ! !
PROC PRINT DATA=MOI.STID193
(WHERE=(SERIEBAC='C' OR NOTEMAT>16));
RUN;
Vous pouvez bien sr utiliser les AND, OR , NOT,< (ou LT),= (ou EQ)
^= (ou NE) (diffrent) que vous connaissez bien.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 68

d)

Utilisation de Fonctions
Il est possible dutiliser des fonctions dans les WHERE . Ici, nous
utilisons la fonction MEAN qui calcule la moyenne arithmtique des
variables entre parenthses.
48

PROC PRINT DATA=MOI.STID193


(KEEP=GROUPE BAC SEXE NOTEFR_ NOTEHIS NOTEMAT
WHERE=(MEAN(NOTEFR_,NOTEMAT,NOTEHIS)>12));
RUN;
que fait le programme prcdent ?
et celui-ci ?
PROC PRINT DATA=MOI.STID193
(KEEP=GROUPE SEXE NOTEFR_ NOTEHIS NOTEMAT
WHERE=(NMISS(NOTEFR_,NOTEMAT,NOTEHIS)>0));
RUN;
e)

Oprateur IS MISSING
Il permet de slectionner les individus ayant une variable manquante (ou
plusieurs).
PROC PRINT DATA=MOI.STID193
(WHERE=(NOTEMAT IS MISSING));
RUN;
SAS va afficher les individus nayant pas de notes de note de maths.
Dans lexemple suivant, nous utilisons loprateur NOT pour prendre la
ngation.
PROC PRINT DATA=MOI.STID193
(WHERE=(NOTEMAT IS NOT MISSING AND NOTEFR_ >=12));
RUN;

48 Attention ne pas confondre la fonction MEAN avec la procdure MEANS. MEAN calcule une moyenne pour chaque individu et
MEANS calcule la moyenne de la classe.
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 69

f)

Oprateur CONTAINS
Cet oprateur (et le suivant) sont utiliser avec les variables
alphanumriques ou textes.
Contains permet de ne slectionner que les individus dont la variable
(texte) contient la chane spcifie.
Prenons le fichier CUSTOMER (Rpertoire public) il contient les donnes
suivantes :

(Ce fichier est dtaill dans le paragraphe sur la procdure SQL que vous verrez plus tard)
OBS

CUSTNAME

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

CUSTNUM

Beach Land
Coast Shop
Coast Shop
Coast Shop
Coast Shop
Del Mar
Del Mar
Del Mar
New Waves
New Waves
Sea Sports
Sea Sports
Surf Mart
Surf Mart
Surf Mart
Surf Mart

16
3
5
12
14
3
8
11
3
6
8
20
101
118
127
133

CUSTCITY
Ocean City
Myrtle Beach
Myrtle Beach
Virginia Beach
Charleston
Folly Beach
Charleston
Charleston
Ocean City
Virginia Beach
Charleston
Virginia Beach
Charleston
Surfside
Ocean Isle
Charleston

Si nous voulons slectionner les individus dont la ville contient Beach ,


nous allons taper le programme suivant :
LIBNAME PUB Z:\LOGICIEL ;
PROC PRINT DATA=PUB.CUSTOMER
(WHERE=(CUSTCITY CONTAINS 'Beach'));
RUN;
Nous obtenons :
OBS

CUSTNAME

CUSTNUM

CUSTCITY

2
3
4
6
10
12

Coast Shop
Coast Shop
Coast Shop
Del Mar
New Waves
Sea Sports

3
5
12
3
6
20

Myrtle Beach
Myrtle Beach
Virginia Beach
Folly Beach
Virginia Beach
Virginia Beach

Gnial non !

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 70

g)

Oprateur Like
Vous slectionnez les individus dont la variable (texte) est gale (ou peu
prs !) la chane spcifie.
PROC PRINT DATA=PUB.CUSTOMER
(WHERE=(CUSTCITY LIKE 'Ocean City'));
RUN;
Vous nallez slectionner que les individus dont la ville est Ocean City. (un
= aurait fait la mme chose)
OBS
1
9

CUSTNAME

CUSTNUM

CUSTCITY

Beach Land
New Waves

16
3

Ocean City
Ocean City

PROC PRINT DATA=PUB.CUSTOMER


(WHERE=(CUSTCITY LIKE 'Ocean%'));
RUN;
Le caractre % remplace toute chaine de caractres. Nous allons
donc slectionner toutes les villes commenant par Ocean .
OBS

CUSTNAME

CUSTNUM

CUSTCITY

1
9
15

Beach Land
New Waves
Surf Mart

16
3
127

Ocean City
Ocean City
Ocean Isle

De mme, le caractre _ remplace un caractre quelconque.


Remarque : Dans le cas de fichiers volumineux, il peut tre intressant de
crer des index sur le fichier ce qui peut considrablement acclerer la
recherche. (cf. La procdure SQL de ce document ou le Chap. 6 SAS indexes du
SAS Language Reference)

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 71

Exercices
A)
TOTO dit quil ny a aucune diffrence entre ces deux programmes, quen
pensez-vous ?
PROC PRINT DATA=MOI.STID193 (WHERE=((SERIEBAC='C' OR
SERIEBAC='D') AND SEXE=2) );
RUN;
PROC PRINT DATA=MOI.STID193 (WHERE=( SERIEBAC='C' OR
SERIEBAC='D' AND SEXE=2) );
RUN;
B)
1) Affichez les individus ayant un bac D ou B, nayant aucune note manquante et
dont la moyenne des trois notes est suprieure 13. Vous nafficherez que le
Bac, le Groupe, le Sexe et les notes de ces individus.
2) Affichez les hommes de STID193 des groupes A,B et C ayant une note
manquante en histoire go ou en franais ou dans les deux.
3) Affichez les femmes du groupe A de tous les fichiers STID dont la taille est
suprieure 170cm. On spcifiera les annes et les numros dordre des
femmes slectionnes.
4) Affichez les individus de STID193 ns aprs le 14/8/1973 nayant aucune note
manquante et dont la plus grande est suprieure 14.
5) Affichez les individus de STID193 ayant connu lIUT grce un ou une amie.
Examinez pour cela le contenu de la variable IUT ?

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 72

III.

LODS : Gestion des sorties SAS


Avant de lire ce chapitre, il faut avoir les notions des procdures SORT, PRINT,
UNIVARIATE et TABULATE.
Les procdures prcdentes PRINT, MEANS envoient leur rsultat dans la
fentre OUTPUT.
SAS permet denvoyer ces rsultats aussi dans un fichier HTML ou directement
dans une table SAS. Le but de ce praragraphe est de vous montrer comment y
parvenir.
49

49 Ceci prsente un double intrt. Les fichiers HTML peuvent contenir des informations sous un format trs sophistiqu tout en tant lus
par un simple navigateur WEB. Dautre part, on peut copier coller des tableaux HTML directement sous EXCEL et rutiliser ces donnes
facilement !
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 73

A.

Quelques notions basiques sur lHTML


LHTML est le langage des documents WEB. Il contient du texte, mais aussi
des balises permettant de mettre en forme le texte, de pointer vers un autre document
etc.
Vous pouvez construire un document HTML directement ou en utilisant un
logiciel spcialis comme FRONTPAGE.
WORD, EXCEL, SAS etc. permettent aussi de crer des documents HTML.

a)

Un exemple
Tapez le texte suivant dans NOTEPAD (bloc-notes de Windows). Enregistrez le
document sous le nom MENU.HTML dans votre rpertoire.

Balises

Ouvrez ce document avec Internet Explorer par exemple.


Nous avons utilis les balises suivantes :

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 74

Balise
<H1> </H1>

<BR>
<HR>
<FONT FACE=> </FONT>
<FONT COLOR=> </COLOR>
<G> </G>
<I> </I>
<IMG SRC="nom fichier.gif"
ALIGN=>

Signification
Caractres Grande taille. On peut remplacer
le 1 par un nombre de 1 6
On peut aussi mettre des attributs
ALIGN=CENTER pour centrer le texte
Retour la ligne
Trac dune ligne horizontale
Pour changer la police de caractre
Pour changer la couleur de la police
Mettre en Gras
Mettre en Italique
Insere une image GIF et la centre si
ALIGN=CENTER etc.

Exemple :
Le texte plac entre deux balises <H1> </H1> sera en grands caractres.
Essayez lexemple suivant en remplaant le D:\SASV801 par le rpertoire SAS de
votre ordinateur .
Pratique de lcriture de code HTML : Vous laisserez NOTEPAD et INTERNET
EXPLORER actifs. Vous basculerez de lun a lautre avec ALT+TAB. Faites
Fichier/Enregistrer avec NOTEPAD et REFRESH avec internet explorer pour
enregistrer et visualiser vos modifications.
<HEAD> <TITLE> Ma page de Menu </TITLE> </HEAD>
<BODY BGCOLOR=YELLOW>
<H1 ALIGN=CENTER> <I> <FONT FACE='COMIC SANS MS'> <FONT
COLOR=RED>
Ma premire Page HTML </FONT> </COLOR> </I></H1>
<IMG SRC="E:\sasv8\core\sasmisc\gfkids.gif" ALIGN=RIGHT>
<H2> C'est super non !!! </H2>
<HR>
Il va y avoir plein de choses. !..
<BR>
<B> Bientot </B>
</BODY>

b)

Dautres exemples

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 75

Sur le Web vous trouverez des belles pages dont vous pourrez examiner la source
(Clic droit, afficher la source)

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 76

Nous allons maintenant voir comment crer automatiquement des documents


HTML avec SAS.

B.

Utilisation de lODS de SAS. Objets de sortie


Certaines procdures envoient un dautres plusieurs objets (ou section) dans la
fentre OUTPUT.
Exemples :
La procdure PRINT ci-dessous ne va renvoyer quun seul objet :
Proc print data=moi.stid193 (obs=10) obs=Numro ;
Var date taille poids ;
Run ;
Va donner :
Numro

(Un seul objet : les 10


observations)

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

1
2
3
4
5
6
7
8
9
10

DATE

21/10/73
08/12/74
15/08/72
10/11/72
30/11/74
11/02/74
14/09/74
22/11/73
08/06/74
15/06/73

TAILLE
180
168
178
167
162
167
178
160
186
168

Page 77

POIDS
68
61
68
54
50
58
58
56
64
55

proc univariate data=moi.stid193;


var taille;
run;
Va donner 5 objets en sortie : Les moments (moyenne, cart type etc.), Les statistiques de
base (de position et de dispersion), les tests de position, les quantiles et les valeurs extrmes.
The UNIVARIATE Procedure
Variable: TAILLE (TAILLE)
Moments
N
106
Sum Weights
106
Mean
170.69
Sum Observations
18094
Std Deviation
7.839
Variance
61.4508535
Skewness
0.480
Kurtosis
-0.057081
Uncorrected SS 3095064 Corrected SS
6452.33962
Coeff Variation 4.592
Std Error Mean
0.76139676
Basic Statistical Measures
Location
Mean
170.69
7.83906
Median
170.00
61.45085
Mode
160.00
41.00000

Variability
Std Deviation
Variance
Range
Interquartile Range

10.00000
Test
Student's t
Sign
Signed Rank

Tests for Location: Mu0=0


-Statistic-----p Value-----t 224.1908
Pr > |t|
<.0001
M
53
Pr >= |M|
<.0001
S
2835.5
Pr >= |S|
<.0001

Quantile
100% Max
99%
95%
90%
75% Q3
0% Min

Quantiles (Definition 5)
Estimate Quantile
Estimate
196 50% Median
170
187 25% Q1
165
184 10%
160
182 5%
160
175 1%
158
155

----Lowest----

Extreme Observations
----Highest---

Value
155
158
158
160
160

IUT II Dept STID


BP 47 38040 Grenoble Cedex 09
Tl: 0476825641 Fax:0476825640

Obs
52
86
70
103
101

Value
185
185
186
187
196

Obs
25
90
9
48
16

C.

Trois sorties possibles


Chaque Objet de sortie se compose de donnes et de mise en forme appeleTemplate. La mise
en forme pourra tre personnalise.
Linstruction ODS permettra de diriger chaque Objet vers une sortie (ou plusieurs la fois !)
de notre choix :

Objet de sortie (= Donnes+ Mise en forme)

3 directions possibles :
3 instructions ODS
ODS OUTPUT :
Fichier de donnes
SAS

ODS LISTING :
Fentre OUTPUT (par
dfaut)

ODS HTML :
Document WEB

Ne confondez pas la fentre OUTPUT et lODS OUTPUT qui nont rien voir

IUT II Dept STID


BP 47 38040 Grenoble Cedex 09
Tl: 0476825641 Fax:0476825640

1.

Sortie HTML basique


Lintruction ODS HTML Body= Nom de fichier HTML va rediriger la sortie en
fichier HTML.
Linstruction ODS LISTING CLOSE sert supprimer la sortie vers lOUTPUT.
Linstruction ODS LISTING sert ractiver la sortie vers lOUTPUT.
ods html body='c:\temp\univariate.html';
ods listing close;
proc univariate data=moi.stid193;
var taille;
run;
proc means data=moi.stid193 ;
class groupe;
var notemat;
run;
ods html close;
ods listing;
SAS vous affiche alors le contenu du fichier HTML que vous auriez pu lire avec
INTERNET EXPLORER ou NETSCAPE.

Ce qui a quand mme un peu plus dallure

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 80

Dans la suite de la sortie, vous avez la procdure MEANS dont vous pouvez copier
coller les rsultats sous Excel :

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 81

2.

Slection dobjets en sortie : ODS TRACE, ODS SELECT, ODS EXCLUDE


Comme nous lavons vu tout lheure, la procdure UNIVARIATE inscrit 5
objets dans la sortie. Pour slectionner ceux que nous voulons afficher, il faut
reprer le nom des objets : cest le but de Linstruction ODS TRACE
ODS TRACE ON <options> ; Active le mode TRACE
ODS TRACE OFF ;
Supprime le mode TRACE (cest loption par dfaut)
Les options tant
LABEL pour indiquer les chemin de lobjet
LISTING pour mettre les noms des objets avant les objets dans les sorties.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 82

Exemple :
ods listing;
Pour diriger les objets vers la fentre OUTPUT
ods trace on;
Pour activer le mode TRACE
proc univariate data=moi.stid193;
var taille;
run;
ods trace off;
Va donner dans la LOG les noms de nos 5 objets :
Output Added:
------------Name:
Moments
Label:
Moments
Template: base.univariate.Moments
Path:
Univariate.TAILLE.Moments
------------Output Added:
------------Name:
BasicMeasures
Label:
Basic Measures of Location and Variability
Template: base.univariate.Measures
Path:
Univariate.TAILLE.BasicMeasures
------------Output Added:
------------Name:
TestsForLocation
Label:
Tests For Location
Template: base.univariate.Location
Path:
Univariate.TAILLE.TestsForLocation
------------Output Added:
------------Name:
Quantiles
Label:
Quantiles
Template: base.univariate.Quantiles
Path:
Univariate.TAILLE.Quantiles
------------Output Added:
------------Name:
ExtremeObs
Label:
Extreme Observations
Template: base.univariate.ExtObs
Path:
Univariate.TAILLE.ExtremeObs
-------------

Ces noms (en gras) sont TRES IMPORTANTS car ce sont eux dont on va se servir dans la
suite pour slectionner les objets afficher ! ! !
Exercice

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 83


Compliquez la procdure UNIVARIATE en ajoutant une option
PLOTS par exemple qui permet dobtenir un box plot et un graphique de
normalit :
ods trace on;
proc univariate data=moi.stid193 plots;
var taille;
run;
ods trace off;
Combien dobjets figurent dans la sortie cette fois ci ? Quel est le nom du
dernier ?

Redirigez la sortie en un document HTML, cela change-t-il quelque


chose au nom des objets ?

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 84

Passons ce qui nous intresse :


Slection des objets :
ODS <Destination> SELECT noms des objets | ALL |NONE ;
Exclusion dobjets :
ODS <Destination> EXCLUDE noms des objets | ALL |NONE ;
Pour savoir ou on en est :
ODS <destination> SHOW
Exemple :
ods listing select quantiles basicmeasures;
Slection dobjets
ods listing show;
Pour savoir o on en est
proc univariate data=moi.stid193 plots;
var taille;
run;
ODS LISTING SHOW va nous donner dans la LOG :
ods listing show;
Current LISTING select list is:
1. quantiles
2. basicmeasures

cela nous confirme ce que nous souhaitions avoir.


Dans la fentre OUTPUT vous navez que ces deux objets.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 85

Exercice
Le programme
proc reg data=moi.stid193;
model poids=taille;
run;
quit ;
permet deffectuer une regression linaire POIDS=a+b*TAILLE.

Combien dobjets va crer ce programme ? Quels sont leurs noms ?

Ecrivez un programme permettant de ne mettre dans la fentre


OUTPUT que lestimation des paramtres. a= ? b= ?

Mme chose mais dans un document HTML. (vous indiquerez deux


instructions ODS HTML une pour indiquer le fichier de sortie (BODY), une
autre pour slectionner les objets (SELECT)).

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 86

3.

Sorties HTML sophistiques

a)

Structure dune Feuille HTML


Pour SAS, votre feuille HTML contient 3 lments :
Le corps (BODY) ce sont toutes les sorties de SAS en HTML.
La table des matires (CONTENTS) contient le nom des objets de chaque Page
du BODY.
La table des Pages (PAGE) qui contient le titre de chaque Page et son numro.

CONTENTS

BODY

PAGE

FRAME
Ici, notre sortie comporte deux pages. LA premire page contient la sortie
dUNIVARIATE. Cette sortie dUNIVARIATE comporte plusieurs objets. Nous
sommes en train de visualiser les TESTS FOR LOCATIONS.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 87

Pour chacun des lments prcdents, SAS vous demande un nom de fichier
HTML.
Pour viter de taper le chemin de chaque fichier , vous pouvez utiliser la
commande PATH=.
Exemple :
ods listing close;
On ferme lOUTPUT
ods html path='c:\temp'
On ouvre la sortie HTML en c:\temp
body='corps.html'
On stocke diffrentes parties dans 4 fichiers
contents='contenu.html'
page='page.html'
frame='feuille.html' ;
proc univariate data=moi.stid193 plots;
var taille;
run;
proc print data=moi.stid193 (obs=10) ;
run;
ods html close;
On ferme les fichiers HTML
ods listing;
On ouvre la feuille OUTPUT pour la suite.
Remarques : En fait Corps.html va tre en c:\temp\corps.html etc.
Un seul des fichiers prcdents est essentiel : cest BODY qui contient tous les
rsultats.
Application

Tapez le programme prcdent.

Excutez le.

Depuis Internet Explorer chargez la page Feuille.html. Amusez vous


vous promener dans cette sortie. Chargez les autres fichiers HTML cres par
SAS.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 88

b)

Changement de Style dune feuille HTML


Pour personnaliser les sorties HTML prcdente, il suffit dajouter loption STYLE=
dans les instructions prcdentes :
ods listing close;
ods html path='c:\temp'
body='corps.html'
contents='contenu.html'
page='page.html'
frame='feuille.html'
style=brown;
proc univariate data=moi.stid193 plots;
var taille;
run;
proc print data=moi.stid193 (obs=10) ;
run;
ods html close;
ods listing;
Faites lessai !
Divers modles sont fournis par SAS :
DEFAULT
BEIGE
BRICK
BROWN
D3D
MINIMAL
STATDOC
Essayez les avec lexemple prcdent
Pour crer vos propres styles, il faut avoir recours une nouvelle procdure
PROC TEMPLATE.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 89

c)

Personnalisation des titres et notes de bas de page


Dans linstruction Title, ou Footnote, nous pouvez indiquer des lments HTML
permettant de modifier les polices des titres, notes de bas de page :
Syntaxe :

Title <FONT nom de lattribut= valeur > texte du titre </FONT> ;


Quelques attributs et leur valeur :
FONT FACE= nom de la police
Pour changer la police de carcatres (Arial, Times etc.)
FONT SIZE= taille
Pour changer la taille de la police (1 7...)
FONT STYLE= style de la police
Pour changer le style de la police de carcatres (Italic, Roman)
FONT WEIGHT= gras ou non
Pour changer le style (Medium, Bold)
FONT WIDTH=espacement de la police : Normal, Narrow ou Wide
De mme avec FOOTNOTE.
Exemple :
ods html path='c:\temp'
body='body1.html';
title '<font face="Arial" color="green" weight="bold"
size=6 > Dix individus de STID anne 93 </font>';
proc print data=moi.stid193 (obs=10);
var groupe sexe taille poids;
run;
title ; /*pour effacer le titre pour la suite */

Excutez cet exemple.


Crez une note de bas de page Courier Rouge de taille 4 indiquant do
viennent les donnes.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 90

d)

Utilisation de STYLES dans la procdure TABULATE


Nous allons utiliser une procdure TABULATE pour illustrer ces notions :
title 'Synthse des rsultats par Groupe';
proc tabulate data=moi.stid193 format=6.1;
class groupe ;
var notemat notehis notefr_;
table groupe*(notemat notehis notefr_), min
box={label='Notes du BAC'};
run;
title ;

donne dans la fentre OUTPUT :


Synthse des rsultats par Groupe

Notes du BAC
Min Median Max

GROUPE

A
NOTE MAT 9.0 13.0 18.0

NOTE HIS 5.0 11.5 17.0

NOTE FR. 5.0 8.0 14.0

B
NOTE MAT 6.0 11.0 17.0

NOTE HIS 6.0 11.0 16.0

NOTE FR. 4.0 9.0 14.0

C
NOTE MAT 7.0 11.5 18.0

NOTE HIS 6.0 10.0 17.0

NOTE FR. 5.0 8.0 14.0

D
NOTE MAT 5.0 13.0 19.0

NOTE HIS 5.0 11.0 16.0

NOTE FR. 5.0 8.0 12.0

Redirigez cette sortie dans un fichier HTML.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 91

median max /

Options placer derrires les commandes de la procdure TABULATE


Pour changer les couleurs et la police des lments dune page HTML
STYLE= {Background=couleur} ;
Pour changer la couleur de larrire plan.
STYLE={Foreground=couleur} ;
Pour changer la couleur du texte.
STYLE={FONT_FACE= nom de la police}
Pour changer la police de carcatres (Arial, Times etc.)
STYLE={FONT_SIZE= taille}
Pour changer la taille de la police (1 7...)
STYLE={FONT_STYLE= style de la police}
Pour changer le style de la police de carcatres (Italic, Roman)
STYLE={FONT_WEIGHT= gras ou non}
Pour changer le style (Medium, Bold)
STYLE={FONT_WIDTH=espacement de la police : normal, Narrow ou Wide

Quelques couleurs possibles tant :


Red, Pink, Orange, Yellow, Yellow-Green, Green, Blue, purple, Black, White,
Cyan :
Exemple :
Reprenons lexemple prcdent en changeant les couleurs de fond et de caractres
pour diffrents lments de la sortie prcdente :
ods listing close;
ods html body='c:\temp\tabulate.html';
proc tabulate data=moi.stid193 format=6.1
style={background=yellow foreground=red};
title 'Synthse des rsultats par Groupe';
class groupe / style={background=brown};
classlev groupe / style={Background=purple foreground=red
font_size=30};
keyword min median max / style={background=red
font_weight=bold};
var notemat / style={background=pink foreground=red
font_face=times font_style=italic};
var notefr_ / style={background=pink foreground=green};
var notehis / style={background=pink foreground=cyan};
table groupe*(notemat notehis notefr_), min median max /
box={label='Notes du BAC'};
run;
ods html close;
ods listing ;

Excutez cette sortie , quoi servent les lignes CLASSLEV,


KEYWORD ?

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 92

STYLES des cellules Parents :


Linconvnient de la sortie prcdente, cest que le style des cellules calcules
(nombres) ne correspond pas au style des cellules contenant les noms des notes.
Nous pouvons automatiquement les affecter en utilisant loption :
*STYLE=<PARENT>
table groupe*(notemat notehis notefr_)*{style=<parent>}, min
median max / box={label='Notes du BAC'};

Voyez la diffrence et reconnaissez le got certain de votre prof pour


lharmonie des couleurs !

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 93

e)

Coloration conditionnelle des cellules : utilisation de FORMAT


Cet exemple assez spectaculaire peut vous montrer lutilisation des STYLES
diffrentes selon la valeur de la cellule. Pour cela, nous allons utiliser un Format
cr spcialement. Si vous ntes pas laise avec les formats, allez voir le
paragraphe correspondant dans les annexes et la PROC FORMAT.
Nous allons voir ici comment colorier le fond de la cellule
en ROUGE si le poids est suprieur 65
en JAUNE sil est entre 60 et 65
en VERT, sil est infrieur 60.
Cration dun nouveau Format
Pour cela, nous allons dfinir un nouveau Format appel FOND.
proc format ;
value fond low-60 = 'Green' 60<-65='Yellow' 65<-High ='Red';
run;

Fond. prend donc les valeurs Green , Yellow et Red selon les valeurs de la variable
laquelle nous allons attribuer ce format :
Amusons nous afficher les Poids des 10 premires personnes de STID avec ce
format :
proc print data=moi.stid193 (obs=10);
format poids fond.;
var poids;
run;

On a :
Obs
1
2
3
4
5
6
7
8
9
10

POIDS
Red
Yellow
Red
Green
Green
Green
Green
Green
Yellow
Green

Rigolo non ?
Remarque : La valeur de la variable POIDS na pas chang ! On lui a juste appliqu
un masque ! En interne, les valeurs sont inchanges

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 94

Utilisons ce format dans les Styles :


ods listing close;
ods html body='c:\temp\corps.html' style=brown;
proc tabulate data=moi.stid193;
title 'Rpartition des Poids selon le sexe';
class groupe sexe;
var poids;
table groupe*(sexe*Poids)*{style={background=fond.
foreground=black font_weight=bold}},mean median;
run;
ods html close;
ods listing;

Visualisez le rsultat.
Rigolo non ?

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 95

f)

Exercice rcapitulatif :
Copier les fichiers FRAME1.HTML ; BODY1.HTML, CONTENT1.HTML,
PAGE1.HTML du rpertoire public en C:\TEMP
Ouvrez le fichier FRAME1.HTML avec INTERNET EXPLORER.
Retrouvez le programme SAS capable de produire ces fichiers HTML ! ! !

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 96

4.

Sorties HTML pour les graphiques


Les graphiques ne sont pas simples grer sous SAS. Le module GRAPH permet
dobtenir des graphiques prsentables mais au prix dune programmation
complexe. Certains outils (Graph n Go) ou modules (ASSIST, Enterprise Guide)
permettent de crer des graphiques simples.

a)

Assistant graphique : Graph n Go


Sinon, vous pouvez utiliser lutilitaire GRAPH-N-GO (Menu
SOLUTIONS/REPORTING) qui est un assistant graphique.
50

Il permet deffectuer des graphiques simples en cliquant sur des boutons puis de
les exporter en HTML (fixe, JAVA, ou ACTIVE X). Vous pouvez aussi rcuprer
le code SAS ayant permis de faire les graphiques en question.
Les donnes doivent figurer dans des tables SAS dont vous pouvez extraire des
parties.

50 Signalons aussi SAS ENTERPRISE GUIDE mais il necessite un module supplmentaire. Graph n Go ne ncessite que les modules BASE
et GRAPH.
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 97

b)

Diagramme Bande HTML Interactif avec Graph n Go


Nous allons crer un petit graphique illustrant la rpartition des Bacs en STID193.
Nous allons rcuprer le code permettant de faire ce graphique. Puis nous allons
lexporter en Fichier HTML interactif Active X.
Activez cet outil (SOLUTIONS/REPORTING)

Fichiers de donnes, ou
vues (view)

Graphiques

Nous allons dabord slectionner un fichier de donnes (STID193). Pour cela


cliquez sur le premier bouton en haut gauche. (New SAS Data Set Model)

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 98

Slectionnez le fichier STID193. Vous voyez que vous pouvez slectionner


certaines colonnes (Column Filter) si vous le souhaitez.
Validez, vous avez maintenant dans la partie fichier de donnes :

Nous allons maintenant effectuer un diagramme bande.


Cliquez sur loutil BAR CHART . Glissez le cadre o vous souhaitez. Double
cliquez dessus.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 99

Choisissez les options de manire obtenir (aprs avoir agrandi le graphique avec
GROW du menu contextuel) :

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 100

Rcupration du Code SAS


Dans le menu contextuel, choisissez EXPORT puis

Vous obtenez alors :

Cliquez sur WRITE pour sauver le fichier et PREVIEW pour le visualiser. Vous
aurez les commandes SAS quil fallait donner pour obtenir ce graphique.
En gras figurent les commandes graphiques fondamentales.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 101

/*
**
**
**
**
**
**
**
**
**
**
**
**
**
**
**
**
**
**
**
**
**
**
**
**
*/

Graph-N-Go SAS/Graph Code Generation for


SAS products required: Base, SAS/Graph (Version 8 or later)
Code generated on: 21APR2000 15:29:55
Notes: There may be differences in appearance of the graph
generated by the code below and the Graph-N-Go viewer.
To make code modifications consult the documentation
for these statements: GCHART, GPLOT, ODS,
GOPTIONS, AXIS, LEGEND, SYMBOL, TITLE, FOOTNOTE.
To route output to a graphics device other than your monitor,
modify the source code below to change the device driver by
1) removing the asterisk preceding GOPTIONS DEVICE=JAVA;
2) changing JAVA to some other valid device.
To create an interactive HTML file, modify the source code below
to enable ODS output by
1) removing the asterisks from the two ODS statments and
the asterisk preceding GOPTIONS DEVICE=JAVA;
2) changing DEVICE=JAVA to DEVICE=ACTIVEX if you want to create
an ActiveX control rather than a Java applet
3) verifying or changing the ODS FILE= option so it names an
output HTML file.

/* Begin ODS output */


* ods html file="C:\Mes Documents\My SAS Files\V8\bar.html"
parameters=("DisableDrillDown"="True"
"ShowBackDrop"="False"
"BackColor"="#FFFFFF"
"BackDropColor"="#FFFFFF"
"FreqName"="BAC"
"FreqDesc"="(Frequency)"
"FreqFmt"="BEST."
"MenuRemove"="File,Variables,Options:Drilldown,Graph:Image,Graph:Naviga
te,Graph:Type,Legend"
);
/* Set the SAS/Graph options */
goptions reset=all hpos=40
ctext=CX000000 ftext="MS Sans Serif"
colors=(CX0000FF CXFF0000 CX008080 CX00FF00 CXFF00FF CXFFFF00 CX00FFFF CX800000
CX008000 CX800080 CX000080 CX808000 CXFFFFFF CX808080 CXC0C0C0 CX000000);
/* Set the Titles/Footnotes */
title1 justify=center color=CX000000 font="MS Sans Serif" height=8 pt "Rpartition des Bacs
selon le sexe";
footnote1 justify=center color=CX000000 font="MS Sans Serif" height=8 pt "Source: Stid193";
/* Set the SAS/Graph device driver */
* goptions device=JAVA xpixels=531 ypixels=346;
/* AXIS1 describes axis for Category variable BAC */
/* AXIS2 describes axis for Response statistic FREQ */
axis1 minor=none label=("BAC") ;
axis2 minor=none label=("(Frequency)")
order=(0 to 25 by 5) ;
proc gchart data=MOI.STID193;
vbar BAC /
type=FREQ maxis=axis1 descending
discrete frame cframe=CXFFFFFF
woutline=1 coutline=CX000000 caxis=CX000000
raxis=axis2
group=SEXE G100 ;
run;
quit;
/* Reset all graphics options */
goptions reset=all;
/* End ODS output */
* ods html close;

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 102

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 103

Exportation du graphique vers un fichier HTML


Choisissez EXPORT puis HTML File
3 options soffrent vous :

Static Image : Fichier HTML fixe. On ne peut modifier le graphique.

Interactive JAVA Applet : Fichier HTML interactif puisquen fait SAS


va gnrer un programme JAVA permettant votre Browser Internet de
rendre votre grqphique modifiable.

Interactive Active X Control : Idem.

Remarque : Les deux dernires options requirent les bibliothques (JAVA,


Active X) adquates pour Windows. Elles sont automatiquement installes si SAS
a t install dans les rgles sur votre Micro.

Choisissons la troisime option.

Editez alors le fichier HTML avec SAS ou votre Browser Internet


habituel.

Cliquez sur le bouton droit de la souris

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 104

Comme vous le voyez, nous pouvons modifier les couleurs, les polices, le type de
graphique
Amusant non ?
Modifiez le graphique prcdent pour faire apparatre le graphique suivant (sans
retoucher SAS !)

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 105

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 106

5.

Sorties vers des fichiers de donnes

a)

Fichiers simples
La version 6 de SAS ne permettait de sauvegarder dans les fichiers de donnes
quune partie des sorties des procdures. Avec la V8, TOUTES les sorties des
procdures peuvent tre exporte dans des fichiers de donnes.
Il est possible de ne mettre quune partie des sortie en spcifiant le nom des
objets.
Syntaxe simplifie :

ODS OUTPUT nom de lobjet (options) = nom du fichier de donnes SAS ;


Exemple :
La procdure Univariate renvoie (en gnral) 5 objets :Moments, BasicMeasures,
TestsForLocation, Quantiles, Extremeobs.
Pour sauvegarder ces donnes dans des fichiers, il suffit de lindiquer derrire
ODS OUTPUT comme le montre le programme ci-dessous :
ods listing close;

On ferme la sortie dans la fentre OUTPUT classique

/*On redirige la sortie vers des fichiers de donnes*/

ods output Moments=work.moments


BasicMeasures=Work.statdebase
TestsForLocation=Work.test
Quantiles=work.quantiles
Extremeobs=work.extremes;
Proc univariate data=moi.stid193;
var notemat notehis notefr_;
run;
ods listing;

On ractive la sortie OUTPUT classique pour visualiser les fichiers crs.

/*Visualisation de deux fichiers */


proc print data=work.moments;
title 'Fichier Work.moments';
run;
proc print data=work.quantiles;
title 'Fichier Work.quantiles';
run;
va donner pour le fichier WORK. QUANTILES
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 107

Fichier Work.quantiles
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
32
33

VarName
NOTEMAT
NOTEMAT
NOTEMAT
NOTEMAT
NOTEMAT
NOTEMAT
NOTEMAT
NOTEMAT
NOTEMAT
NOTEMAT
NOTEMAT
NOTEHIS
NOTEHIS
NOTEHIS
NOTEHIS
NOTEHIS
NOTEHIS
NOTEHIS
NOTEHIS
NOTEHIS
NOTEHIS
NOTEHIS
NOTEFR_
NOTEFR_
NOTEFR_
NOTEFR_
NOTEFR_
NOTEFR_
NOTEFR_
NOTEFR_
NOTEFR_
NOTEFR_
NOTEFR_

Quantile

Estimate

100% Max
19.00
99%
18.00
95%
18.00
90%
17.00
75% Q3
15.00
50% Median
12.25
25% Q1
10.00
10%
9.00
5%
7.00
1%
6.00
0% Min
5.00
100% Max
17.00
99%
17.00
95%
16.00
90%
15.00
75% Q3
12.00
50% Median
11.00
25% Q1
9.00
10%
6.00
5%
6.00
1%
5.00
0% Min
5.00
100% Max
14.00
99%
14.00
95%
13.00
90%
12.00
75% Q3
10.00
50% Median
9.00
25% Q1
7.00
10%
6.00
5%
6.00
1%
5.00
0% Min
4.00

Vous pouvez aussi le visualiser avec lEXPLORER de SAS en allant dans la


bibliothque WORK.

Visualisez les autres fichiers de donnes.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 108

b)

Fichiers multiples (Option MATCH_ALL)


Lorsque vous utilisez une OPTION BY dans une procdure, vous allez crer un fichier
de donnes contenant toutes les occurrences du nom de lobjet. En clair :
/* On trie le fichier par rapport au groupe*/
proc sort data=moi.stid193 out=work.stidtri;
by groupe;
run;
/* On se prepare a sauvegarder les Quantiles*/
ods listing close;
ods output Quantiles=work.quantiles;
proc univariate data=work.stidtri;
var notemat notehis;
by groupe;
run;
ods listing;
proc print data=work.quantiles;
title 'Quantiles des notes de Maths et d''Histoire
par Groupe';
run;
Va donner :

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 109

Quantiles des notes de Maths et d'Histoire par Groupe


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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47

GROUPE

VarName

Quantile

A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
C
C
C

NOTEMAT
NOTEMAT
NOTEMAT
NOTEMAT
NOTEMAT
NOTEMAT
NOTEMAT
NOTEMAT
NOTEMAT
NOTEMAT
NOTEMAT
NOTEHIS
NOTEHIS
NOTEHIS
NOTEHIS
NOTEHIS
NOTEHIS
NOTEHIS
NOTEHIS
NOTEHIS
NOTEHIS
NOTEHIS
NOTEMAT
NOTEMAT
NOTEMAT
NOTEMAT
NOTEMAT
NOTEMAT
NOTEMAT
NOTEMAT
NOTEMAT
NOTEMAT
NOTEMAT
NOTEHIS
NOTEHIS
NOTEHIS
NOTEHIS
NOTEHIS
NOTEHIS
NOTEHIS
NOTEHIS
NOTEHIS
NOTEHIS
NOTEHIS
NOTEMAT
NOTEMAT
NOTEMAT

100% Max
99%
95%
90%
75% Q3
50% Median
25% Q1
10%
5%
1%
0% Min
100% Max
99%
95%
90%
75% Q3
50% Median
25% Q1
10%
5%
1%
0% Min
100% Max
99%
95%
90%
75% Q3
50% Median
25% Q1
10%
5%
1%
0% Min
100% Max
99%
95%
90%
75% Q3
50% Median
25% Q1
10%
5%
1%
0% Min
100% Max
99%
95%

. suivre

(Tous les groupes sont dans un seul fichier)

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 110

Estimate
18.0
18.0
17.0
16.5
15.0
13.0
10.0
10.0
9.0
9.0
9.0
17.0
17.0
15.0
14.0
12.0
11.5
9.0
8.0
6.0
5.0
5.0
17.0
17.0
17.0
17.0
13.5
11.0
9.5
7.0
6.0
6.0
6.0
16.0
16.0
16.0
15.0
13.0
11.0
9.0
8.0
6.0
6.0
6.0
18.0
18.0
17.0

En ajoutant (Match_all) derrire le nom de lobjet, SAS va crer un fichier de


donnes diffrent chaque changement de groupe et de variable :
ods listing close;

ods output Quantiles(Match_all)=work.quantiles;


proc univariate data=work.stidtri;
var notemat notehis;
by groupe;
run;
ods listing;
proc print data=work.quantiles;
title 'Quantiles des notes de Maths du Groupe A';
run;
proc print data=work.quantiles1;
title 'Quantiles des notes d''Histoire du Groupe A';
run;
proc print data=work.quantiles2;
title 'Quantiles des notes de Maths du Groupe B';
run;

Le dernier PRINT va donner :


Quantiles des notes de Maths du Groupe B
Obs

GROUPE

VarName

Quantile

B
B
B
B
B
B
B
B
B
B
B

NOTEMAT
NOTEMAT
NOTEMAT
NOTEMAT
NOTEMAT
NOTEMAT
NOTEMAT
NOTEMAT
NOTEMAT
NOTEMAT
NOTEMAT

100% Max
99%
95%
90%
75% Q3
50% Median
25% Q1
10%
5%
1%
0% Min

Estimate
1
2
3
4
5
6
7
8
9
10
11

Combien de fichiers de donnes seront crs ici ?


Comment sont ils nomms ?

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 111

17.0
17.0
17.0
17.0
13.5
11.0
9.5
7.0
6.0
6.0
6.0

IV.

Analyse interactive de donnes : SAS/INSIGHT


Ce module inclus dans loutil de DATA MINING de SAS (Enterprise MINER)
permet deffectuer de puissantes analyses interactives de donnes, essentiellement
sur des donnes quantitatives.51
Le grand intrt de ce module rside dans le fait de pouvoir faire rapidement
de nombreux graphiques interactifs, de reprer, dexclure ou dinclure de
nouveaux individus. Tous les calculs sont alors modifis en consquence.
On peut effectuer des rgressions, des analyses en composantes principales...
bref un trs bon outil.

A.

Ouverture dune table


Pour le mettre en uvre allez dans SOLUTIONS/ANALYSISINTERACTIVE
DATA ANALYSIS ; une fentre apparat dans laquelle vous allez spcifier le nom
du fichier que vous souhaitez analyser52 :

Cliquez sur OPEN pour continuer.


Remarque : Il est aussi possible douvrir INSIGHT avec PROC INSIGHT.
proc insight data=moi.stid193;
run;
Vous obtenez :

51 Histogrammes, Boxplots, Diagrammes bandes, fonctions de rpartition, ajustement de lois (test de normalit), Rgression simple et
multiple, ACP etc.
52 Vous devez avoir dclar la bibliothque contenant le fichier que vous souhaitez analyser.
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 112

Type de la variable
(Nominale (Nom) ou
Numrique (Int)
Accs un menu permettant de
trier le fichier, de modifier les
places des variables...
En cliquant sur le bouton droit de la souris,
vous pouvez exclure des calculs lobservation
en question. SAS effectue automatiquement
les corrections ncessaires. Le carr noir
devient une croix.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 113

1.

Aperu rapide de quelques menus


Ce menu permet dagir sur les
fentres de graphiques que vous
sortirez.
Pour copier votre fentre
dans une autre.
Pour animer vos points (nuages) en
fonction des modalits dune variable
Par dfaut INSIGHT modifie les fentres
en temps rel (cf. Excel) cette option
permet de geler une fentre.
Gnial : outil permettant de marquer les
observations sur un graphique en fonction
dautres modalits.

Le menu Edit permet aussi dagir sur les variables (Transformation (Log,
Exponentielle,...) sur les observations :
Recherche dindividus
dition dindividus
Permet de choisir les observations
tiqueter ou non dans les graphiques.
Permet de choisir les observations
montrer ou non dans les graphiques.
Permet de choisir les observations
inclure ou exclure des calculs.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 114

Le menu Analyse permet deffectuer des calculs et des graphiques de diffrents


types :
Diagramme bandes, histogramme.
Boxplot, diagramme bandes multivaris
Nuage de points 2
ou 3 dimensions
tude de la distribution de Y (Fonction de rpartition,
superposition lois de proba (Normale), tests etc.
Rgression simple, multiple.
Analyse multivaries (Matrice des
corrlations, Valeurs propres, vecteurs
propres (ACP) ), Analyse discriminante

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 115

B.

Analyse dune Variable qualitative


Nous allons voir comment tracer un diagramme bandes et obtenir un tri plat .
Choisissez la premire option du menu prcdent, nous allons analyser la variable
BAC. Pour cela cliquez sur le nom de cette variable, puis sur Y et validez.

Remarque : Vous pouvez aussi slectionner, depuis la feuille de donnes, une ou


plusieurs colonnes du fichier de donnes en cliquant sur leur nom et choisir
ensuite le menu Histogram/Bar Chart. Vous aurez alors directement tous les
graphiques concerns dans une fentre.
Vous obtenez 53

53 Remarquez que SAS a mis dans une colonne OTHER toutes les modalits rares . Il suffit de cliquer sur le bouton METHOD de la bote
prcdente pour paramtrer la raret . De plus, vous pouvez en cliquant sur les lment du graphique afficher les effectifs
correspondants...
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 116

En cliquant sur le bouton droit de la souris, vous faites apparatre un menu


contextuel avec lequel vous pouvez afficher les valeurs de la rpartition
(Values...)
Pour obtenir le tri plat de la rpartition allez dans Analyse/Distribution Y, pour
compliquer, nous mettons SEXE comme variable de Groupement.

Nous obtenons un graphique du mme type que le prcdent.

Pour transfrer les calculs dans la fentre OUTPUT


cliquez sur ce bouton, puis sur SAVE.

En allant dans Tables/ Frequency counts, SAS ajoute de tableaux de frquences


un pour les hommes et un autre pour les femmes.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 117

Exercice
1. Reproduisez le graphique suivant en utilisant la commande MOSAIC PLOT
qui permet de faire des diagrammes bandes deux dimensions :

Etude graphique de la liaison entre deux variables :


2. Slectionnez les colonnes SEXE, TAILLE et POIDS de la feuille de donnes
en cliquant sur leur nom avec la touche CTRL maintenue enfonce. (Assurez vous
au pralable que SEXE est bien considre comme nominale).
Activez ensuite le menu Histogram/Bar Chart. Cliquez ensuite sur la barre du
graphique reprsentant les hommes. Interprtez le rsultat obtenu.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 118

Ceci fonctionne sur toutes les fentres cres par INSIGHT sauf celles qui sont geles (Menu
Freeze de Windows)
3. Donnez un graphique dmontrant labsence (ou la prsence) de liaison entre les variables
SEXE et GROUPE.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 119

C.

Variable quantitative ; Analyse univarie

1.

Boxplots, histogrammes, moments


Analysons la variable TAILLE. Pour cela allons dans Analyse/Distribution Y et
choisissons la variable Taille :
Rappel de la dfinition du Box Plot :
100% de la pop
50 % de la pop.

Q1-1.5E

25%

Q1

25%

Q2=M

Q3

Plus petite valeur observe


suprieure Q1-1.5 E
M=Mdiane
Qi=ime quartile
E=Q3-Q1

Q3+1.5E
Valeurs
extrmes
Plus grande valeur observe
infrieure Q3+1.5E

Sortie SAS :

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 120

Interprtez les lments ci dessus. (Range, Qi etc.) Vous rappellerez les


dfinitions de ces moments.
Identifiez lindividu hors norme (Box Plot) en cliquant dessus. Refaites les
calculs sans lui. (Menu Edit/Observations/Exclude in Calculations, vous pouvez
aussi le sortir du graphique Hide in Graph)
Analyse par groupe
Pour distinguer selon les sexes ltude prcdente, il suffit dindiquer la variable
SEXE dans la case GROUP :

Complments :
Dans la fentre prcdente, il vous est possible d intgrer diffrents lments :
(ceux dj affichs sont indiqus par

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 121

Intervalle de confiance...
Tests de Student, de Wilcoxon...
Tableau de frquence.
Tests de normalit
Moyenne tronque
(Calcule en tant une partie
des individus extrmes)

Application : Donnez les statistiques lmentaires sur la variable POIDS en


distinguant hommes et femmes. Amusez vous retirer lindividu le plus pesant et
regardez les changements dans les calculs.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 122

2.

Fonction de rpartition
En allant dans le menu CURVES, vous pouvez intgrer des courbes
supplmentaires la sortie prcdentes :

Densit des lois connues


(Normales etc.)
Fonction de rpartition
(observe)
Fonction de rpartition thorique.
(dune loi connue)
Tests de normalit etc...
Courbe de Normalit (Droite de Henry ou
autre)

En choisissant Empirical CDF, vous avez la fonction de rpartition suivante :

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 123

3.

Densit de probabilit
Vous pouvez obtenir la superposition de la densit de la loi Gaussienne sur
lhistogramme prcdent :

Choix des
distributions

Lestimation se
fait partir de
lchantillon ou
partir de vos
spcifications.

Choix des
paramtres (si vous
choisissez vos
spcifications)

Cliquons simplement sur OK

Vous pouvez dplacer ce curseur pour


modifier la moyenne...

Vous pouvez agir sur les curseurs pour modifier la moyenne et lcart type. La
courbe rouge se modifiera en temps rel.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 124

Complment
Vous pourrez tester lajustement de la courbe prcdente en allant dans
Curves/Test for distribution.
Dans lexercice suivant, vous allez voir les possibilits de la commande Box plot/
Mosaic Plot
Exercice
En allant dans Analyse/ Box Plot, reproduisez le graphique suivant :

Identifiez les deux individus hors normes dhistoire gographie.

Faites des Boxplots illustrant la rpartition des notes de maths selon les
groupes. Le niveau en maths vous semble-t-il homogne selon les groupes ?

Y a-t-il une liaison entre les notes et la variables SEXE ? Quel


graphique peut-on faire pour sen rendre compte ?

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 125

D.

Etude de plusieurs variables quantitatives

1.

Nuage de points (scatter plot)


Cette commande permet de tracer des nuages de points. Il suffit dentrer la
variable X et la variable Y.
Effectuez un nuage taille poids pour les STID193.

2.

Stratification par une variable qualitative, ou quantitative agrge (TOOL)


Nous souhaitons savoir o se placent les individus du groupe A sur ce graphique.
Nous allons activer la bote EDIT/WINDOWS/TOOL

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 126

Pour zoomer sur le graphique.

Couleur de la stratification.
Cliquez sur une couleur, puis
remplissez la bote de
dialogue qui saffichera.
Gnial : pour affecter un dgrad de couleur
une variable numrique. Pour changer les
couleurs du dgrad, faites glisser une
couleur du dessus sur ce bouton.
Marque de la stratification.
Cliquez sur une marque par
laquelle vous souhaitez marquer
les observations...une bote de
dialogue va safficher.

Cliquez sur la couleur rouge, une bote apparat :


Vous indiquez ici la
condition remplir pour
tre en rouge.

Mettez en rouge les individus du groupe A. Mettez leur galement un symbole en


croix.
Le graphique apparat.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 127

Exercice :
1. Sur le graphique Taille Poids, faites figurer les hommes avec un point bleu et
les femmes avec une croix rouge. Activez le Zoom et faites le fonctionner.
54

2. Reprsenter graphiquement les trois notes des individus sur un mme


graphique. On reprsentera deux notes sur un nuage de points et la troisime en
forme dun dgrad de couleurs. Du rouge pour les individus ayant une mauvaise
note (dans la troisime matire) au vert pour les bons . (Cf. Windows/Tool)
Existe il une liaison entre les trois notes ? (les bons en franais sont ils
automatiquement bons ou mauvais en maths ?...)
3. Le fichier PUB.BANQUE contient des informations sur 50 clients dune
banque. La variable SOLD contient le solde moyen sur le compte courant, la
variable DEPO contient les DEPO effectus lan pass sur les comptes dpargne.
La variable NBPR contient le nombre de produits bancaires possds par le client.
Faites un nuage de points SOLD DEPO en stratifiant par la variable NBPR. (Vous
reprsenterez en dgrad de couleurs les individus suivant leur valeur de NBPR)
Mditez...Existe-il une liaison entre ces trois variables ?

54 Le curseur de la souris se transforme en loupe. Grosse loupe : en cliquant vous aggrandissez, Petite loupe : en cliquant, vous rtrcissez.
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 128

3.

Rgression (Fit XY)


Cette commande permet de faire des rgressions linaires de tous ordres55, des
ajustement polynomiaux, exponentiels...
Nous allons tudier la liaison entre deux variables quantitatives : la taille et le
poids des Stid193.
Allez dans Analyse/Fit XY et compltez la bote comme suit :

Vous obtenez les rsultats suivants :

55
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 129

Nuage de points
avec la droite des
moindres carrs de
Y en X.

Vous pouvez vous amuser dplacer le curseur ci-dessus vers la droite pour
augmenter le degr du polynme ajustant Y en X.56
Tout est recalcul automatiquement, y compris le nuage des rsidus.

Coefficients de corrlations
Il vous est possible de calculer directement le coefficient de corrlation entre les
variables quantitatives en allant dans Analyse/Multivariate.

56 Si vous passez au degr 2, vous aurez une parabole au lieu dune droite dajustement etc.
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 130

4.

Reprsentation 3D interactive
Ce que nous allons voir ici est plus spectaculaire quutile...
Nous allons reprsenter graphiquement les donnes du fichier ACP (tempratures
moyennes annuelles de 15 villes de France).
Chargez le fichier ACP. Allez dans Analyse/Rotating Plot ZXY. Choisissez les
pour axes : JAN, FEV et JUI qui sont les variables Janvier, Fvrier et Juillet.
Reproduisez le graphique suivant en donnant la signification des options du menu
contextuel : Rays, Depth...

Faites tourner le graphique en positionnant le curseur de la souris


lgrement en dehors du graphique, il se transforme alors en main. Laissez
alors le bouton gauche enfonc et dplacez la souris.... Gnial non ?

Quelle est la particularit gomtrique du nuage de points prcdent ?


Est-il vraiment tri - dimensionn ?

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 131

5.

Lancement dINSIGHT avec le langage SAS


Il est possible de lancer SAS INSIGHT directement partir du langage SAS avec
la procdure PROC INSIGHT.
proc insight data=moi.stid193;
rotate notemat*notehis*notefr_;
run;
Vous permet de faire un graphique 3D des notes

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 132

Exercice 1

Chargez le fichier STID198

Reprsentez le nuage Taille Poids (Scatter Plot) et faites un dgrad


proportionnel la pointure (Edit/Window/Tools). Existe-il une liaison entre
ces 3 variables.

Nous allons essayer de prdire la Pointure en fonction de la taille et du


poids. Nous allons ajuster un modle linaire. Dans le menu FIT XY Mettez
Pointure comme variable expliquer (Y) et TAILLE et POIDS comme
predicteurs (X)

Que reprsente le graphique avec une grille ? Vous pourrez le faire


tourner pour mieux vous rendre compte de la nature de la surface.
Exercice 2

Chargez le fichier ECHXYZ1. Reprsentez le nuage 2D XY et le nuage


3D XYZ. Identifiez ensuite visuellement sur les deux graphiques les individus
dont le Z est suprieur 0.9.(windows tool)

Quelle est la nature des lignes de niveau ?

La liaison entre Z et X,Y est elle linaire ?

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 133

V.

Quelques procdures statistiques


Nous avons vu dans les pages prcdentes quelques lments du langage SAS
pour grer les fichiers de donnes. Un fichier de donnes existe souvent dans le
but dtre trait, analys. Cest lobjet des procdures SAS.
Les procdures SAS sont trs nombreuses , trs puissantes et couvre un trs
large champ dapplications. Cf. fin de ce document.
Lappel dune procdure SAS se fait en gnral par les instructions suivantes :
PROC nom de la procdure DATA=nom du fichier concern par le traitement options ;
instructions lies la procdure (modle pour une rgression etc...) ;
RUN ;
Exemple :
Dbut des options lies au fichier de
donnes

Procdure invoque

PROC MEANS DATA=MOI.STID193

(KEEP=SEXE NOTEFR_ NOTEHIS NOTEMAT


WHERE=(SEXE=2 AND NOTEMAT>10));

VAR NOTEFR_ NOTEHIS;


RUN;

Variables concernes
par la procdure

Fin des options.

Dans cet exemple, nous utilisons la procdure MEANS pour calculer quelques
statistiques simples sur une partie du fichier MOI.STID193.
On ne conserve que les variables sexe, NOTEFR_, NOTEHIS et NOTEMAT et
les individus de sexe fminin (2) dont la note de maths est strictement suprieure
10. Nous calculons, pour ces individus, les moyennes, mini, maxi, cart types
des notes de franais et dhistoire-go.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 134

A.

SORT (Trier des fichiers)


Elle permet de trier les observations d'un fichier dans l'ordre croissant (par dfaut)
selon un ou plusieurs critres.
Elle est indispensable pour utiliser l'option BY dans les certaines procdures
comme PRINT, UNIVARIATE.
57

Syntaxe:
Pour trier dans l'ordre croissant
PROC SORT (options);
BY variables;
RUN;
Pour trier dans l'ordre dcroissant
PROC SORT(options);
BY DESCENDING variables;
RUN;
Les options principales tant:
DATA=nom du fichier (si ce n'est pas le fichier en cours);
OUT=nom du fichier o sera mis le rsultat (si ce n'est pas le mme)
Exemple:
PROC SORT DATA=MONLIB.STID193 OUT=WORK.STIDTRI;
BY SEXE TAILLE;
RUN;
PROC PRINT DATA=WORK.STIDTRI;
RUN;
Ce programme va trier et afficher le fichier tri selon les critres Sexe et Taille.
Exercice:
Ecrivez un programme triant STID193 par le BAC et le nombre de frres et
soeurs, puis par le nombre de frres et soeurs et le bac. (Vous mettrez le rsultat
de ce tri dans un fichier temporaire STIDTRI). Visualisez le fichier obtenu dans
le deux cas. Y a-t-il une diffrence ?

57 Cette option permet de rpter des calculs dans diffrentes sous populations. Par exemple PROC MEANS ; VAR MATH ; BY SEXE ;
RUN ; effectuera des statistiques lmentaires sur les notes de maths en distinguant homme et femme. Nous aurons donc deux tableaux de
sortie.
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 135

B.

PRINT (Afficher un fichier dans lOUTPUT)


Proc PRINT permet d'diter tout ou partie de votre fichier partir de certaines
variables.
Syntaxe:
PROC PRINT (options)
VAR variables;
(Les variables qui seront affiches)
BY variables;
(Permet de distinguer selon les sous-populations, le tableau devra
avoir t tri avec SORT pralablement)

PAGEBY variables;
SUM variables;

(Provoquera un changement de page chaque nouvelle modalit de la variable


considre. Cette variable doit aussi figurer dans BY)
(Variables dont on veut effectuer la sommation (salaires, dpenses...))

Les options tant:


DATA= nom du fichier diter (sinon c'est le fichier courant)
N=texte afficher nombre d'observations la fin de l'dition ou de chaque
"BY" prcde par le texte afficher.
OBS=nom de la colonne change lentte de la colonne OBS selon le nom
spcifi.
ROUND arrondit les valeurs
LABEL variable='intitul' permet d'diter des intituls de variables
SPLIT=sert dfinir un caractre de saut la ligne pour Label (cf exemple3)
NOOBS pas d'dition du numro d'identification de chaque individu.
Exemples:
ex1:
PROC PRINT DATA=PUB.STID193;
VAR GROUPE SEXE TAILLE POIDS;
RUN;

Ajoutons quelques options :


PROC PRINT DATA=MOI.STID193 N='Nombre d individus:' OBS='Numro
' ;
VAR GROUPE SEXE TAILLE POIDS;
RUN;

Va donner : (extrait de la sortie)


Numro
101
102
103
104
105
106

GROUPE
D
D
D
D
D
D

SEXE
2
2
2
2
1
2

160
165
160
167
172
168

TAILLE

POIDS

60
58
53
48
57
50

Nombre d individus:106

ex2:(Remarquez la prsence de PROC SORT... cause de l'utilisation


de BY dans PRINT)
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 136

PROC SORT DATA=MOI.STID193 OUT=WORK.STIDTRI;


BY GROUPE;
RUN;
PROC PRINT DATA=WORK.STIDTRI obs='Numro' N='Nombre d''individus
dans ce groupe';
VAR SEXE TAILLE POIDS ;
BY GROUPE;
SUM POIDS ;
RUN;

Que fait le programme prcdent ?


ex3:
PROC SORT DATA=PUB.STID193 OUT=WORK.STIDTRI;
BY BAC SEXE;
RUN;
PROC PRINT DATA=WORK.STIDTRI NOOBS;
VAR TAILLE POIDS;
BY BAC SEXE;
LABEL TAILLE='Taille en cm'
POIDS='Poids en kg';
RUN;

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 137

Exercices rcapitulatifs :
I) Les fichiers NOTE1T, 2T et 3T contiennent les notes de deux groupes
de STID en maths au premier,deuxime et troisime trimestres. Il y a des
notes manquantes, cest pour cela que les fichiers nont pas le mme
nombre dindividus.
Chaque individu est identifi par son groupe et son ordre dans le groupe.
(GROUPE et ORDRE).
Fusionnez ces trois fichiers dans un seul nomm ENSEMBLE. Calculez
les moyennes, mini, maxi de chaque individu. Sortez des statistiques
lmentaires sur la promo (moyenne, mediane, quantile au premier,
deuxieme et troisieme trimestre puis sur la moyenne annuelle).
II)
Crez un fichier de donnes SAS ne contenant que les individus de
STID193 qui fteront leur anniversaire dici 30 jours ( compter
daujourdhui)..
Vous ne conserverez que les variables Groupe, Sexe, Ordre (dans le
groupe).
Vous ordonnerez les individus par rapport la date danniversaire (du plus
proche au plus loign).
Indications pour le II) :

Vous pouvez crer, partir de la date de naissance (DATE) et de la


date daujourdhui (TODAY()), la date de lanniversaire de chaque
personne. (Voir en annexe les fonctions de date et heure : MDY, YEAR,
DAY, MONTH entre autres...)

Pour le reste, SAS peut calculer la diffrence entre deux dates. Vous
pourrez jouer sur cette diffrence pour rcuprer les individus concerns.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 138

C.

TABULATE
Elle permet deffectuer des statistiques lmentaires et de les afficher en
tableaux. Nous pouvons obtenir des tri-croiss trs sophistiqus ! ! !
58

Il est possible deffectuer des statistiques lmentaires et de les afficher sous


forme tabule..
Syntaxe simplifie
Proc TABULATE <options> ;
Class variables ;
variables de classe qui seront utilises dans Table (qualitatives ou quant.
Discrtes)

Var variables ;
variables analyser (quantitatives) Ne rien mettre pour un tri crois banal
Table description de la table effectuer ;
By variables ;
Format var1 format1 var2 format 2... ;
cf. format (annexe)
Label var1=tiquette1 etc. ;
Weight variable ; variable de poids affecter chaque individu.
Run ;
Les principales options tant :
Data=nom du fichier de donnes SAS
Depth=niveau maxi de profondeur de la table ;
Format=format de chaque cellule du tableau
Missing Les manquants constituent modalit part entire. Si cette option nest pas utilise
les manquants ne sont pas inclus dans les modalits des variables de classement.
limine les sparateurs horizontaux

Noseps
Order=
Data

Les modalits des variables de classement sont classes par ordre dapparition
dans le fichier original
Freq Les modalits sont classes par ordre dcroissant deffectifs

Internal

(cest loption par dfaut)Les modalits sont classes par ordre croissant

(alphanumrique)

VARDEF=

Vous indiquez ici le diviseur utilis pour le calcul de la variance:

DF
N
WDF
WEIGHT

(n-1) (Choisi par dfaut)


(n)
(somme des poids moins 1)
(somme des poids)

Vous allez comprendre la syntaxe de commande table laide des


exemples ci-dessous.

58 La syntaxe nest pas toujours simple ! Loutil Enterprise Guide peut alors se rvler utile si lon est compltement rfractaire au langage
SAS
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 139

Exemples de tri croiss simples :


Le programme suivant permet de dresser un tri crois Sexe*Groupe.
proc tabulate data=sasuser.stid193;
class groupe sexe;
car nous allons effectuer un tri crois avec les variables groupe
et sexe

table groupe, sexe;


run;
-------------------------------------------|
|
SEXE
|
|
|-------------------------|
|
|
1
|
2
|
|
|------------+------------|
|
|
N
|
N
|
|----------------+------------+------------|
|GROUPE
|
|
|
|----------------|
|
|
|A
|
10.00|
14.00|
|----------------+------------+------------|
|B
|
13.00|
15.00|
|----------------+------------+------------|
|C
|
12.00|
15.00|
|----------------+------------+------------|
|D
|
11.00|
16.00|
--------------------------------------------

Le N laffichage indique que SAS a calcul, pour chaque cellule, leffectif de


non manquants.
Comparez avec le programme suivant :
proc tabulate data=moi.stid193;
class groupe sexe;
car nous allons effectuer un tri crois avec les variables groupe
et sexe

table groupe*sexe / condense;

le /condense demande SAS de


condenser laffichage au maximum pour limiter le nombre de pages afficher.

run;

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 140

On a laffichage :
-----------------------------------------------------------------|
GROUPE
|
|----------------------------------------------------------------|
|
A
|
B
|
C
|
|-------------------------+-------------------------+------------|
|
SEXE
|
SEXE
|
SEXE
|
|-------------------------+-------------------------+------------|
|
1
|
2
|
1
|
2
|
1
|
|------------+------------+------------+------------+------------|
|
N
|
N
|
N
|
N
|
N
|
|------------+------------+------------+------------+------------|
|
10.00|
14.00|
13.00|
15.00|
12.00|
-----------------------------------------------------------------(CONTINUED)
---------------------------------------|
GROUPE
|
|--------------------------------------|
|
C
|
D
|
|------------+-------------------------|
|
SEXE
|
SEXE
|
|------------+-------------------------|
|
2
|
1
|
2
|
|------------+------------+------------|
|
N
|
N
|
N
|
|------------+------------+------------|
|
15.00|
11.00|
16.00|
----------------------------------------

Le N laffichage indique que SAS a calcul, pour chaque cellule, leffectif


de non manquants.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 141

Syntaxe simplifie de la commande table


Elle est obligatoire dans la procdure Tabulate. Elle contient des
expressions de une trois dimensions (var1*var2*var3) spares par des
virgules et ventuellement termine par un / suivi des options.
Les variables indiques dans table sont soient dclares dans var soit
dans class mais pas dans les deux.
Les expressions peuvent tre du type :
element*element (crois)
element element (concatnation=cellules adjacentes)
(element element) (agrgation)
Les lments sont des variables statistiques ou des statistiques
MEAN, SUM, N, NMISS, VAR etc. (voir plus loin)t
Exemple
proc tabulate data=sasuser.stid193;
class groupe;
var mat;
table groupe,mean*mat / condense;
run;
va donner :
------------------------------|
|
MEAN
|
|
|------------|
|
|
MAT
|
|----------------+------------|
|GROUPE
|
|
|----------------|
|
|A
|
12.96|
|----------------+------------|
|B
|
11.46|
|----------------+------------|
|C
|
12.37|
|----------------+------------|
|D
|
13.37|
-------------------------------

Nous avons la moyenne des notes de maths selon les groupes.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 142

Statistiques disponibles
Symbole SAS

N:
SUMWGT:
SUM:
MEAN:
VAR:
STD:
STDERR:
Range:
PCTN
PCTSUM
USS:
CSS:
CV:
T:
PRT:

signification
effectif
la somme des poids (var WEIGHT)
la somme.
la moyenne
la variance
la dviation standard
erreur standard sur la moyenne
Ltendue (max-min)
Pourcentage
Pourcentage (somme)
somme des carrs des xi
somme des carrs des carts la moyenne (cf annexe I)
coefficient de variation (cf annexe I)
statistique de Student pour tester =0
c'est le P correspondant au test prcdent (bilatral)

Exercices
Ecrire des programmes SAS donnant les affichages suivants :
a)
-------------------------------------------|
|
MEAN
|
STD
|
|
|------------+------------|
|
|
MAT
|
MAT
|
|----------------+------------+------------|
|GROUPE
|
|
|
|----------------|
|
|
|A
|
12.96|
2.54|
|----------------+------------+------------|
|B
|
11.46|
3.24|
|----------------+------------+------------|
|C
|
12.37|
3.04|
|----------------+------------+------------|
|D
|
13.37|
3.71|
--------------------------------------------

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 143

b)
---------------------------------------------------------------------|
|
MAX
|
MIN
|
|
|-------------------------+-------------------------|
|
|
MAT
|
FRA
|
MAT
|
FRA
|
|----------------+------------+------------+------------+------------|
|GROUPE
|
|
|
|
|
|----------------|
|
|
|
|
|A
|
18.00|
14.00|
9.00|
5.00|
|----------------+------------+------------+------------+------------|
|B
|
17.00|
14.00|
6.00|
4.00|
|----------------+------------+------------+------------+------------|
|C
|
18.00|
14.00|
7.00|
5.00|
|----------------+------------+------------+------------+------------|
|D
|
19.00|
12.00|
5.00|
5.00|
----------------------------------------------------------------------

c)
---------------------------------------------------------------------|
|
MAX
|
MIN
|
|
|-------------------------+-------------------------|
|
|
MAT
|
FRA
|
MAT
|
FRA
|
|----------------+------------+------------+------------+------------|
|GROUPE
|
|
|
|
|
|----------------|
|
|
|
|
|A
|
18.00|
14.00|
9.00|
5.00|
|----------------+------------+------------+------------+------------|
|B
|
17.00|
14.00|
6.00|
4.00|
|----------------+------------+------------+------------+------------|
|C
|
18.00|
14.00|
7.00|
5.00|
|----------------+------------+------------+------------+------------|
|D
|
19.00|
12.00|
5.00|
5.00|
|----------------+------------+------------+------------+------------|
|SEXE
|
|
|
|
|
|----------------|
|
|
|
|
|1
|
18.00|
14.00|
6.00|
5.00|
|----------------+------------+------------+------------+------------|
|2
|
19.00|
14.00|
5.00|
4.00|
----------------------------------------------------------------------

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 144

d)
-------------------------------------------|
|
MEAN
|
|
|-------------------------|
|
|
MAT
|
FRA
|
|----------------+------------+------------|
|GROUPE |SEXE
|
|
|
|-------+--------|
|
|
|A
|1
|
13.28|
9.89|
|
|--------+------------+------------|
|
|2
|
12.75|
8.29|
|-------+--------+------------+------------|
|B
|1
|
11.62|
8.85|
|
|--------+------------+------------|
|
|2
|
11.33|
9.27|
|-------+--------+------------+------------|
|C
|1
|
12.25|
9.67|
|
|--------+------------+------------|
|
|2
|
12.46|
8.20|
|-------+--------+------------+------------|
|D
|1
|
14.09|
8.73|
|
|--------+------------+------------|
|
|2
|
12.88|
8.31|
--------------------------------------------

Complment : Quelques options de la commande table :


Condense
Pour limiter le nombre de pages afficher
Misstext=...
Pour indiquer le texte afficher dans les cellules
contenant les valeurs manquantes.
Printmiss
Par dfaut SAS naffiche pas les cellules vides, loption
en question permet de les afficher quand mme.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 145

D.

RANK (Calculs de rangs)


Comme son nom lindique, elle permet de calculer les rangs de variables
quantitative.
Elle peut aussi dcouper en classes de mmes effectifs une srie de donnes.
Syntaxe:
PROC RANK (options);
VAR variables; (Les variables dont nous voulons le calcul des rangs. (sinon toutes !)
RANKS nouvelle liste de variables (variables ou seront stocks les rangs)
BY variables; (Permet la cration de sous-groupes... le fichier devra avoir t tri avant)
RUN ;
Les options principales tant:
DATA=
OUT=

Nom du fichier de donnes (si ce n'est pas le fichier courant)

DESCENDING
GROUPS = n

Pour calculer les rangs dans lordre dcroissant (croissant par dfaut)

FRACTION

Les rangs sont diviss par leffectif. On obtient donc la fonction de rpartition des donnes en
question.

Fichier de donnes contenant les rangs.

Permet dobtenir un dcoupage en n classes de mme effectif autant que faire se peut.
Pour n=4 on obtient les quartiles, n=100 les centiles etc.

TIES=MEAN/HIGH/LOW
Pour spcifier la procdure suivre en cas dex aequo. MEAN (par dfaut sauf si FRACTION
est utilis, cest alors HIGH) attribue la moyenne des rangs, HIGH le plus grand et LOW le plus
petit.

NORMAL=BLOM

Pour btenir les scores normaux qui sont une fonction linaire des valeurs initiales si la
distribution initiale est normale. Ce sont les valeurs que lon calcule construire une de Henry. On
les obtient en calculant

r 3 / 8
yi = 1 i
o n est leffectif, r le rang et
n + 1/ 4
i

de rpartition dune N(0,1).

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 146

la fonction

Exemple:
DATA COPY;
KEEP GROUPE SEXE TAILLE;
SET PUB.STID193;
RUN;
PROC RANK DATA=COPY;
VAR TAILLE;
RANKS RANGTAIL;
RUN;
PROC PRINT;
RUN;

Nous faisons une copie du fichier original...

Nous calculons les rangs de la variable taille en


stockant le rsultat dans rangtail.

ce qui donne :
OBS
1
2
3
4

GROUPE
A
A
A
A

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

SEXE
1
1
1
1

TAILLE
180.00
168.00
178.00
186.00

Page 147

RANGTAIL
90.5
43.5
85.0
104.0

E.

UNIVARIATE (Analyse univarie)


Pour l'tude (univarie) de variables quantitatives. Elle est beaucoup plus
complte que la procdure MEANS cite prcdemment.
59

1.

Syntaxe:
PROC UNIVARIATE (options);
VAR variables; (Les variables dont nous voulons l'tude)
BY variables; (Permet la cration de sous-groupes... le fichier devra avoir t tri avant)
WEIGHT variable;(variable contenant les "poids" de chaque individu. Il vaut 1 par dfaut)
OUTPUT OUT=FICH.SAS (fichier contenant autant d'individus que de modalits de BY et
comme variables, les statistiques donnes par UNIVARIATE) cf. ex

RUN;
Les options principales tant:
DATA=
NOPRINT
NORMAL
ROUND=
FREQ
PLOT
VARDEF=

Nom du fichier de donnes (si ce n'est pas le fichier courant)


Effectue un test de normalit (Shapiro-Wilk si n<2000, Kolmogorov si n>2000)
Spcifie la faon d'arrondir les variables.
(Edition d'une table avec les valeurs des variables, les %, les % cumuls...)
Produit des "graphiques" (Box plot, Stem and leaf...)
Vous indiquez ici le diviseur utilis pour le calcul de la variance:

DF
N
WDF
WEIGHT

(n-1) (Choisi par dfaut)


(n)
(somme des poids moins 1)
(somme des poids)

Exemple:
PROC UNIVARIATE DATA=MONLIB.STID193 NORMAL FREQ;
VAR TAILLE;
BY BAC;
OUTPUT OUT=WORK.SORTIE MEAN=MOY ;
RUN;
Ce programme va sortir des statistiques (incluant la normalit et un tableau de
frquence) sur la variable taille en distinguant selon le bac.
Un fichier SAS (WORK.SORTIE) sera constitu, il contiendra la variable bac et
les moyennes des tailles dans les diffrents bacs.
Il suppose le fichier tri compte tenu de la remarque suivante:

59 Pour des analyses simples de dbrousaillage des donnes, le module SAS/INSIGHT peut tre trs intressant utiliser. Cf. paragraphe
SAS/INSIGHT.
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 148

Application: Tapez le programme SAS suivant.


PROC UNIVARIATE DATA=MONLIB.STID193 NORMAL PLOT FREQ;
VAR TAILLE;
RUN;
Examinez tout l'output et comprenez sa signification en vous aidant du tableau
suivant:
SORTIE SAS
(exemple)

N
Sum Wgts
Sum
Mean
Variance
Std Dev
Skewness
Kurtosis
USS
CSS
CV
Std Mean
T:Mean=0
Pr>|T|
Num ^= 0
Num > 0
M(Sign)
Pr>=|M|
Sgn Rank
Pr>=|S|
W:Normal
Pr<W

106
106
18094
170.6981
61.45085
7.839059
0.480848
-0.05708
3095064
6452.34
4.592353
0.761397
224.1908
0.0001
106
106
53
0.0001
2835.5
0.0001
0.967964
0.0865

signification

Symbole SAS
utilis dans l'output

N:
effectif
SUMWGT: la somme des poids (var WEIGHT)
SUM:
la somme.
MEAN:
la moyenne
VAR:
la variance
STD:
la dviation standard (en 1/n-1)
Skewness:coefficient mesurant l'asymtrie (cf annexe)
Kurtosis:coefficient mesurant laplatissement (cf annexe)
USS:
somme des carrs des xi
CSS:
somme des carrs des carts la moyenne (cf annexe I)
CV:
coefficient de variation (cf annexe I)
STDMEAN: erreur standard sur la moyenne
T:
statistique de Student pour tester =0
PROBT:
c'est le P correspondant au test prcdent (bilatral)
Nombre d'observations non nulles
Nombre d'observations strictement positives
MSIGN:
Statistique. utilise pour tester la nullit de la mdiane
PROBM:
c'est le P correspondant
Signrank:statistique du test des rangs (Wilcoxon) cf ci-dessous
PROBS:
c'est le P correspondant.
NORMAL: c'est la stat. utilise pour tester la normalit (cf ci dessous)
PROBN:
et le P correspondant

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 149

2.

Dtails

a)

Test de Normalit
NORMAL : statistique testant la normalit de la distribution.
Nous voulons vrifier, partir des donnes de lchantillon, si la distribution
observe est compatible avec lhypothse dune distribution Gaussienne (H0).
La statistique employe est celle de Shapiro-Wilk si n<2000 et celle de
Kolmogorov-Smirnov pour les valeurs de n suprieures. Vous avez galement le
P correspondant (PROBN). Ici P>0.05, nous acceptons l'hypothse de normalit.

b)

Test de comparaison dune moyenne une valeur fixe (0)


T: C'est la statistique du test de Student
H0 : = 0 contre H1: 0 (bilatral) avec pour SAS ici 0 = 0
(1 Sample t de Minitab) H0:moyenne=0 contre H1: moyenne 0. Elle suppose la
population normale et l'chantillon alatoire.
Mthode de calcul: Pour le test, SAS calcule la statistiqueT=

s=

x 0
s/

avec

1
( xi x ) 2 et 0 = 0 la valeur P correspondante. (Si P>0.05, on ne peut rejeter
n 1 i

H0 au niveau de signification de 5%, on rejette sinon...)

Vous devez toujours vous ramener la nullit de la moyenne tester ou utiliser la


PROC TTEST avec loption H0. Voir page 152
c)

Test de Wilcoxon (comparaison dune mdiane une valeur fixe)


SIGNRANK (Sign rank test, Wilcoxon) c'est la statistique de test calcule par
ri + n(n + 1) / 4 o ri + est le rang de xi obtenu aprs avoir enlev les xi=0.
Il permet de tester la nullit de la mdiane ou de la moyenne (H0: mediane=0)
Nous avons le P correspondant (PROBS).(Ici, nous rejetons H0 car p<0.05). Ce
test suppose la distribution symtrique. Si tel n'est pas le cas, il faut utiliser le
test suivant:
MSIGN (sign-test) c'est la statistique de test calcule par M=p-n/2 o n est le
nombre de valeurs non nulles et p le nombre de valeurs strictement positives.
Cette statistique est utilise pour tester la nullit de la mdiane (H0: mediane=0).
Nous avons le P correspondant (PROBM). Dans le cas prsent P<0.05, nous
rejetons l'hypothse nulle.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 150

3.

Exercices
Testez la normalit des tailles des STID193 (pour l'ensemble puis en
distinguant selon les sexes, il sera ncessaire d'utiliser BY et donc de trier le
fichier avant !).
Editez un Stem and Leaf des poids pour les femmes(option Plot).
En supposant l'chantillon des Stid grenoblois comme un chantillon alatoire
(extrait de la population des Stid de France). Testez l'hypothse H0: Moyenne
taille femme Stid france=165 contre H1 (diffrent)(Il sera ncessaire de crer une

variable Taille - 165 via les instructions DATA et SET pour utiliser UNIVARIATE)

Comment trouver la P value du test unilatral obtenu avec H1 :Moy>165 ?


Que fait le programme suivant ?
PROC SORT DATA=MONLIB.STID193 OUT=WORK.TATES;
BY BAC SEXE;
RUN;
PROC UNIVARIATE NORMAL FREQ DATA=WORK.TATES;
VAR TAILLE;
OUTPUT OUT=WORK.ESSAI N=EFF MEAN=MOY NORMAL=TESNORM
PROBN=PNORM;
BY BAC SEXE;
RUN;
PROC PRINT DATA=WORK.ESSAI NOOBS;
SUM EFF;
RUN;

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 151

F.

TTEST (Tests de Student un ou deux chantillons, apparis ou non)


Cette procdure effectue des tests de Student de comparaison dune moyenne
une valeur fixe ou comparaison de deux moyennes - dans le cas appari ou non
-ainsi . Dans le cas de comparaison de deux moyennes, SAS effectue aussi un test
de Fisherd'galit de variances. Les deux chantillons figurent dans une colonne
(variable) et se distingue par une autre variable spcifie dans CLASS.
60

1.

Syntaxe simplifie
PROC TTEST (options);
CLASS variable; (C'est la variable qui permet de distinguer les deux chantillons pour un TTEST deux chantillons)
PAIRED variable1*variable2 (pour identifier les variables apparies Var1-Var2 va tre calcul)
VAR variable(s); (variable tester, il peut y en avoir plusieurs)
BY variable(s); (donne des tests spars selon les populations dfinies par ces variables)
RUN;
(options)
DATA= nom du fichier de donnes SAS
H0= nombre cest la valeur de la moyenne tester.
Exemples
Comparaison dune moyenne une valeur fixe
PROC TTEST DATA=MOI.STID193 H0=170 ;
VAR TAILLE ;
RUN ;
Compare la moyenne de la taille des STID 170.
Comparaison de deux moyennes (chantillons apparis)
PROC TTEST DATA=MOI.CHOLES;
PAIRED AVANT APRES;
RUN;
Compare les moyennes de AVANT et de APRES en testant la nullit de leur
diffrence.
Comparaison de deux moyennes (chantillons indpendants)
PROC TTEST DATA=MONLIB.STID193;
CLASS SEXE;
VAR TAILLE;
RUN;
(Effectue un test de comparaisons des moyennes des tailles des hommes et des
femmes).
60 (Si vos deux chantillons figurent dans deux colonnes distinctes, il faut vous dbrouiller pour les mettre dans une seule et crer une
variable qui les distinguera)
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 152

2.

Rappels thoriques

a)

Test de comparaison dune moyenne une valeur fixe ( 0)


T: C'est la statistique du test de Student
H0 : = 0 contre H1: 0 (bilatral)
(1 Sample t de Minitab) H0:moyenne= 0 contre H1: moyenne 0. Elle suppose
la population normale et l'chantillon alatoire.
Mthode de calcul: Pour le test, SAS calcule la statistiqueT=

s=

x 0
s/

avec

1
( xi x ) 2 et 0 = 0 la valeur P correspondante. (Si P>0.05, on ne peut rejeter

n 1 i

H0 au niveau de signification de 5%, on rejette sinon...)

b)

Test de comparaison de deux moyennes (chantillons apparis)


On se ramene au cas prcdent en calculant la diffrence entre les deux variables
et en testant la nullit de cette diffrence.

c)

Test de comparaison de deux moyennes (chantillons indpendants)


Hypothses: Les populations sont supposes normales et les chantillons qui en
sont issus sont supposs alatoires et indpendants. De plus, il faut s'assurer de
l'galit ou de l'ingalit des variances pour bien interprter ce test.
s12 s22
x

x
est
estim
par
s
=
+
Pour des variances ingales, l'cart type de 1 2
n1 n2
x x
Le test est bas sur la statistique T = 1 2 avec un nombre de degrs de liberts
s
(V 1 + V 2) 2
donn par
(arrondi l'entier le plus proche) avec
(V 12 / ( n1 1)) + (V 2 2 / ( n2 1))
s2
s2
V 1 = 1 et V 2 = 2 .
n1
n2

Pour des variances gales, la variance commune est estime par


( n 1) s12 + ( n2 1) s22
1 1
s2 = 1
+
et l'cart type de x1 x2 est estim par s
Le
n1 + n2 2
n1 n2
x x
test est bas sur la statistique T = 1 2 avec n1 + n2 2 degrs de liberts.
s
Test de Fisher F': SAS effectue un test d'galit de variances pour vous aider
ne pas vous tromper dans l'interprtation du test de Student. H0: 12 = 22 contre
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 153

H1: 12 22 . Parmi les deux rapports de variances possibles, on calcule celui qui
est suprieur l'unit. Par exemple si Stdev 12 > Stdev 2 2 on calcule
Stdev 12
et on rejette l'hypothse nulle lorsque Fobs > F1 / 2 o F1 / 2 est de
Fobs =
Stdev 2 2
fractile d'ordre 1- /2 d'une loi de Fischer k1 et k2 d.d.l. o k1 est le nombre de
degrs de liberts associs au numrateur et k2 le nombre de ddl associs au
dnominateur. SAS indique le P correspondant.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 154

3.

Exercices:

a)

TTEST un chantillon
Le fichier COLA (rpertoire Public) contient les rponses un sondage effectu
sur 40 personnes prises au hasard la sortie d'un grand magasin de la banlieue
parisienne. 4 questions furent poses:
Q1 Marque prfre de Cola ? 0: Coca 1: Pepsi (dans Colonne n1)
Q2 Avez-vous dj achet Coca-cola ? 0: Non 1: Oui (dans Colonne n2)
Q3 Aimez-vous les boissons sucres ? 1: Oui 2: Indiffrent 3: Non (dans Colonne
n3)
Q4 Combien de litres de boissons au Cola votre famille a-t-elle consomms le
mois dernier ? (dans la colonne n4)
Les rsultats de cette enqute sont-ils compatibles avec une hypothse de
consommation moyenne de 5 litres par mois au niveau de la population tudie
(on pensera d'abord vrifier la normalit de la VA en question)

b)

Deux Echantillons indpendants


Voici un relev de la teneur en K2O sur 20 chantillons de type 1 et 10
chantillons de type 2 . Peut-on dire (au seuil de 5%) que la moyenne des
chantillons de type 1 est gale celle des chantillons de type 2 ? On dtaillera le
raisonnement ainsi que les valeurs donnes par SAS.

0.80
0.84
0.88
0.88
0.92

c)

Echantillons

de type 1

(20 valeurs)

Echantillons

0.92
1.00
1.04
1.20
1.24

1.28
1.40
1.48
1.48
1.48

1.52
1.56
1.88
1.92
2.20

0.96
1.00
1.04
1.04
1.08

de type 2 (10
val)
1.08
1.08
1.16
1.20
1.28

Cas dchantillons apparis

Dans une fort on choisit 12 arbres au hasard que l'on mesure debout. Ensuite, on
les abats, puis on les mesure nouveau. Chaque arbre a donc t mesur 2 fois.
On veut tester l'galit des moyennes de ces deux sries pour comparer les deux
mthodes de mesure. Y a-t-il une diffrence significative au seuil de 5% ?
debout
abattus

20.4
21.7

25.4
26.3

25.6
26.8

25.6
28.1

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

26.6
26.2

28.6
27.3

28.7
29.5

Page 155

29
32

29.8
30.9

30.5
32.3

30.9
32.3

31.1
31.7

G.

FREQ (tris plat, tris croiss, test dindpendance du chi2)


Elle produit des tableaux croiss une ou plusieurs dimensions. Pour les tableaux
deux dimensions, PROC FREQ calcule des coefficients de liaison et effectue
des Tests (du Chi 2 entre autres).
Nous n'allons tudier ici qu'une syntaxe simplifie. Pour plus de dtails, reportez
vous au SAS Procdures Guide (Bibliographie)

1.

Syntaxe simplifie
PROC FREQ (data=...);
TABLES 'voir syntaxe plus bas' / option (2);
BY variables;
(pour distinguer selon les sous-populations...)
WEIGHT variable;
(pour ajouter un poids chaque individu, =1 par dfaut)
RUN;

2.

Exemples
PROC FREQ DATA=MONLIB.STID193;
TABLES NBFS SEXE*GROUPE ;
RUN;
Cette commande effectue un tri plat de nbfs et un tri crois des variables sexe et
groupe :
On obtient la sortie suivante:
Variable

Effectifs

Effectifs et pourcentages cumuls.

Cum
Cum
NBFS
Frequency
Percent
Frequency
Percent
-------------------------------------------------0
11
10.4
11
10.4
1
35
33.0
46
43.4
2
36
34.0
82
77.4
3
13
12.3
95
89.6
4
6
5.7
101
95.3
5
2
1.9
103
97.2
6
2
1.9
105
99.1
7
1
0.9
106
100.0

Ainsi 36 tudiants ont deux frres et soeurs (34% de la population) .


Et 82 tudiants ont au plus deux frres et soeurs (77.4% de la population).

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 156

TABLE OF SEXE BY GROUPE


SEXE
Lgende des
cellules du
tableau.

GROUPE

Frequency|
Percent |
Row Pct |
Col Pct |A
|B
|C
|D
| Total
---------+--------+--------+--------+--------+
1 |
10 |
13 |
12 |
11 |
46
|
9.43 | 12.26 | 11.32 | 10.38 | 43.40
| 21.74 | 28.26 | 26.09 | 23.91 |
| 41.67 | 46.43 | 44.44 | 40.74 |
---------+--------+--------+--------+--------+
Total
24
28
27
27
106
22.64
26.42
25.47
25.47
100.00
Frequency|
Percent |
Row Pct |
Col Pct |A
|B
|C
|D
| Total
---------+--------+--------+--------+--------+
2 |
14 |
15 |
15 |
16 |
60
| 13.21 | 14.15 | 14.15 | 15.09 | 56.60
| 23.33 | 25.00 | 25.00 | 26.67 |
| 58.33 | 53.57 | 55.56 | 59.26 |
---------+--------+--------+--------+--------+
Total
24
28
27
27
106
22.64
26.42
25.47
25.47
100.00

Dans chaque cellule figure l'effectif, le pourcentage et les frquences


conditionnelles (23.33% des femmes sont dans le groupe A, et 53.57% des lves
du groupe B sont des femmes)
Autre exemple
PROC FREQ;
tables sexe*(bac groupe);
run;
Cette commande effectue deux tri croiss: un sexe*bac et un sexe*groupe, elle est
quivalente sexe*bac sexe*groupe.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 157

3.

Quelques options de la commande TABLES


pour enlever certaines informations des cellules de la table:
NOCOL: pour enlever l'affichage des % en colonne (Col Percent) des cellules
NOROW: idem avec les lignes
NOPERCENT: pour enlever le pourcentage (percent) de chaque cellule.
NOFREQ: idem avec les effectifs.
NOPRINT: n'affiche pas de table du tout (utile si vous n'avez besoin que du Chi2)
pour ajouter des informations dans les cases de la table:
CUMCOL: affiche les % cumuls en colonne.
EXPECTED: affiche la valeur espre de la cellule dans le cas d'indpendance
entre les variables lignes et colonne.(cf. calcul du chi2).
DEVIATION: affiche l'cart entre EXPECTED et l'effectif observ.
CELLCHI2: affiche la contribution au chi2 de la cellule.
pour effectuer des analyses statistiques
CHISQ: effectue divers tests du chi2 dont celui de Pearson (celui que vous
connaissez). l'hypothse H0 tant l'indpendance des deux critres de
classification. Le chi2 (de Pearson) est celui qui affich en premier.
Pour sauvegarder les rsultats dans un fichier
OUT=nom de fichier SAS ; SAS va alors crer un fichier de donnes contenant
les variables de la dernire instruction de TABLE ainsi que les variables COUNT
et PERCENT.
Exemple 1
PROC FREQ DATA=MONLIB.STID193;
TABLES SEXE*GROUPE / NOROW NOCOL OUT=SORTIE;
RUN;

Ce programme effectue un tri crois sexe groupe. Chaque cellule ne contient que
l'effectif et le pourcentage des modalits associes. Les rsultats sont stocks dans
le fichier WORK.SORTIE. Il est ensuite possible dexporter ce fichier sous
Excel pour effectuer des graphiques illustrant le tableau crois.
61

62

Exemple 2
PROC FREQ DATA=MONLIB.DONNEE;
TABLES MARPREF*AIMCOLA /EXPECTED DEVIATION CHISQ NOROW NOCOL
NOPERCENT;
RUN;

Ce programme effectue un tri crois entre marpref et aimcola avec dans chaque
cellule leffectif observ, leffectif attendu (expected), lcart entre les deux
(deviation). Un test du chi2 est effectu (chisq) comme le montre lextrait de la
61 Quel que soit le contenu des cellules, ce fichier ne contiendra que leffectif et la frequence pour tous les couples de modalits considres.
62 Il faut alors lancer la commande tableau crois dynamique dExcel pour retrouver un tri crois partir du fichier export.
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 158

sortie ci-dessous. Notons que le chi2 vaut 0.714. La signification P du test vaut
0.700>0.05, on accepte H0: indpendance entre les deux critres.
Statistic
DF
Value
Prob
-----------------------------------------------------Chi-Square
2
0.714
0.700
Likelihood Ratio Chi-Square
2
0.726
0.695
Mantel-Haenszel Chi-Square
1
0.024
0.877

Remarque : Si les effectifs thoriques sont insuffisants pour le test du chi deux, on
procde souvent des regroupements. Il suffit, pour SAS, de changer le format
daffichage des variables pour effectuer ces regroupements. Ceci vite de
modifier les donnes originales.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 159

4.

Exercice
Chargez le fichier cola (rpertoire Public) qui contient les rponses un sondage
effectu sur 40 personnes prises au hasard la sortie d'un grand magasin de la
banlieue parisienne. 4 questions furent poses:
Q1 Marque prfre de Cola ? 0: Coca 1: Pepsi (dans C1)
Q2 Avez-vous dj achet Coca-cola ? 0: Non 1: Oui (dans C2)
Q3 Aimez-vous les boissons sucres ? 1: Oui 2: Indiffrent 3: Non (dans C3)
Q4 Combien de litres de boissons au Cola votre famille a-t-elle consomms le
mois dernier ? (dans C4)
Existe-t-il une liaison entre Q1 et Q3 ? (Vous donnerez un tableau crois avec un
contenu de cellule appropri et la valeur du chi 2)
Idem entre Q1 et Q2 ? Acheter Coca est-ce l'adopter ?

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 160

5.

Cas Particulier important, TEST du chi2 sur un tri crois existant


Ceci est trs intressant lorsque vous n'avez pas les donnes brutes mais
seulement un tri crois se rapportant ces donnes:
Des bouquets floraux de Golden Delicious ont t soumis en nombre sensiblement
gaux quatre traitements donns, et on a compt le nombre de fruits produits
dans chaque cas afin de vrifier s'il existe ou non une relation entre les diffrents
traitements et le nombre de fruits produits (la fructification).
Nombre de fruits produits
Traitements
0
1
plus
A
203
150
6
B
266
112
1
C
258
126
2
D
196
168
17
(exemple de lecture: 203 bouquets ayant subi le trait. A n'ont produit aucun fruit)

En utilisant un test du d'indpendance, nous voulons vrifier si une relation


existe entre les deux critres de classification.
Nous n'avons pas le fichier des donnes originales ici. Nous allons en construire 1
dont le tableau ci dessus serait le tri-crois associ.
L'ide est simple, nous mettons un individu dans chaque couple possible de
modalit et nous affectons comme poids (Weight) chacun de ces individus
l'effectif correspondant. Ainsi, nous mettons un individu ayant subi le traitement
A et ayant port 0 fruit et nous lui donnons un poids de 203 (il sera compt 203
fois !)
data golden;
do trait=1 to 4;
do nbfruit=0 to 2;
input wt @@;

C'est le nom du fichier


Nous notons les traitements 1 2 3 et 4. (au lieu de A,B,C et D)
La double @ (ALTGR 0) permet de mettre chaque valeur dans le
fichier avant de continuer la boucle
Idem

output;
end;
end;
cards;
203 150 6
266 112 1
(Vous crivez votre tableau ligne par ligne)
258 126 2
196 168 17
;
run;
proc freq;
weight wt;
(Etape importante, nous disons SAS que chaque individu compte wt fois)
tables trait*nbfruit /chisq noprint;(Nous ne voulons pas l'affichage de la table)
run;

Ce programme vous permet d'obtenir un chi2 de 53.72. Tapez ce programme pour


vrifier et concluez.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 161

6.

Rappels thoriques sur le test d'indpendance du 2


Considrons deux variables qualitatives X et Y prenant respectivement p et q modalits (notes
1,2,3...,p et 1,2,3...,q) et observes sur une mme population. On dit que ces deux variables sont
indpendantes en probabilit si: P(X=i et Y=j)=P(X=i)P(X=j) pour tout couple de modalit (i,j).
Si l'on note nij le nombre d'individus dont le caractre X vaut i et Y vaut j, ni. le nombre
d'individus dont le caractre X vaut i et n.j le nombre d'individu dont le caractre Y vaut j on
doit avoir en cas d'indpendance: nij/n=ni./n * n.j/n o encore nij=(ni.*n.j)/n
Nous allons tester cette hypothse d'indpendance (H0) entre X et Y partir d'un tableau crois
construit sur un chantillon de taille n.
Tableau des effectifs observs
1
... j
... q
total
n11
n1j
n1q
n1.

X\Y
1
...
i
...
p
Total

ni1

...
... nij

...
... niq

np1
n.1

...
... npj
... n.j

...
... npq
... n.q

X\Y
1

ni.

...
i

np.
n

...
n
Total

Tableau des effectifs thoriques (si H0 vraie)


1
... j
... q
total
n1. n. j
n1. n.q n1.
n1. n.1

n.1

n
...
...
...
...
...

ni . n. j
n
n.j

n
...
...
...
...
...

ni.

n.q

np.
n

T=

ni . n. j

nij

ni .n. j
i, j
n

nij2
=
n
ni . n. j
i, j

La statistique utilise mesure "l'cart" entre la


distribution observe et la distribution thorique
attendue (en cas d'indpendance des deux critres:
H0 vraie)

n
Si les effectifs thoriques de chacune des cases sont suprieurs ou gaux 5 alors T suit
approximativement une loi du 2 (p-1)(q-1) degrs de libert.
2
On rejette H0 lorsque la statistique T est trop grande: T> (1 ) ( p 1)( q 1) o

2(1 ) ( p 1)( q 1) est le fractile d'ordre 1- d'une loi du 2 (p-1)(q-1) degrs de libert.
ATTENTION: Les effectifs thoriques des cases doivent tre 5 pour appliquer
cette mthode. (Dans le cas contraire, il faut oprer des regroupements)

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 162

H.

ANOVA et GLM, Analyse de la variance

1.

Un exemple
Le fichier ARBRES donne la distribution des hauteurs d'arbres
observes pour une mme catgorie d'arbres dans 3 types de forts (nots 1,2 et
3).
Nous voulons savoir si la hauteur des arbres dpend du type de fort
dans laquelle on les a trouvs. Autrement dit, on veut savoir si la hauteur
moyenne dpend du type de fort. Lanalyse de la variance un critre est
typiquement adapte ce genre de problme.
63

2.

ANOVA un critre
Elle a pour but de mesurer la liaison entre une variable qualitative (le type
darbre) et une variable quantitative (la hauteur). Cela revient comparer les
moyennes de k populations qui son supposes normales et de mme variance ,
partir d'chantillons alatoires et indpendants les uns des autres.
64

a)

65

Principe de lANOVA
Soit Y une variable quantitative et une variable qualitative X prenant k modalits (1,2,...k). Nous
supposons que Y suit une loi normale N ( i , ) sur chaque sous-population Pi dfinie par X=i.
La variance totale se dcompose de la faon suivante:

1 k ni
1 k
1 k ni
(
y

y
)
=
n
(
y

y
)
+
ij
i i
( yij yi )
n i =1 j =1
n i =1
n i =1 j =1
Variance totale

Variance inter

Variance intra

o ni dsigne le nombre d'individus de la sous population Pi, n le nombre total d'individus,


moyenne de y dans Pi et y la moyenne gnrale de Y.

yi la

Plus la liaison entre X et Y est forte, plus la part de la variance inter est importante et plus la
variance intra est faible. La variance intra comptabilise la partie de la variation de Y non
explique par X.
On dfinit le rapport de corrlation R par Variance inter / Variance totale. Ce nombre,
compris entre 0 et 1 mesure l'intensit de la liaison entre X et Y. S'il vaut zro il n'y a aucune
liaison entre X et Y. Inversement, s'il vaut 1, la liaison est parfaite.
Test d'galit des moyennes

63 On dit alors que la variable hauteur est discriminante par rapport au type darbre.
64 Bien que la normalit des sous-populations fasse partie des hypothses d'application du test prcdent, il faut reconnatre que l'analyse de
la variance est peu sensible, dans l'ensemble, la non-normalit des des populations considres. Il suffit en pratique d'viter d'employer
l'analyse lorsque les populations-parents sont trs diffrentes des distributions normales, et lorsque ces distributions sont de forme trs
diffrentes d'une sous-population une autre (dissymtries de sens opposs par exemple), surtout pour de petits chantillons. (Dagnlie TMS
2)
65 De mme, l'hypothse d'galit des variances est d'importance relativement secondaire lorsque les effectifs des chantillons sont
d'effectifs tous gaux (ni=nj) (cf le 2 Sample T TEST) Par contre dans le cas d'chantillons d'effectifs ingaux on doit s'assurer de la validit
de cette hypothse (cf T.Test) surtout lorsque les chantillons d'effectifs les plus rduits correspondent aux populations de variance
maximum. (Dagnlie TMS 2)

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 163

H0:

1 = 2 =... = k contre H1: au moins un i est diffrent des autres.

1 k
n ( y y )
k 1 i =1 i i
Statistique utilise: F =
1 k ni
( yij yi )
n k i =1 j =1
Lorsque H0 est vraie F suit une loi de Fisher (k-1, n-k) degrs de libert. On rejette H0
lorsque Fobs est suprieur au fractile d'ordre 1- de la loi de Fisher correspondante.

Tableau d'analyse de la variance


La plupart des logiciels prsente leurs sorties de la faon suivante:
Source de
variation
Interclasses

Degrs
de
libert
(DF)
k-1

Somme des carrs


(sum of squares)
k

ni ( yi y )
i =1

Intraclasses
Total

n-k

ni

(y

yi )

(y

y )

ij

n-1

i =1 j =1
k ni

ij

Carrs moyens
(mean square)

1 k
ni ( yi y )
k 1 i =1

1 k
ni ( yi y )
k 1 i =1
F=
1 k ni
( yij yi )
n k i =1 j =1

1
nk

ni

(y

ij

yi )

i =1 j =1

i =1 j =1

Les logiciels reproduisent la table prcdente et donne galement la p-valeur


correspondante.
Rgle de dcision :
Si F est suprieur la valeur critique (ou si p est infrieur la valeur de rfrence
(0.05 en gnral)), on rejette H0. Les moyennes entre diffrentes classes sont
significativement diffrentes, la variable X a donc une influence sur Y ou encore,
le pouvoir discriminant de X est significatif.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 164

b)

Test dgalit de variances (BARTLETT)


Ajoutons que SAS peut effectuer un TEST de comparaison de variances pour
sassurer que lANOVA est applicable raisonnablement.
Un test propos par SAS est le test de Bartlett.
Comme le F-test, le test de Bartlett est trs sensible la non-normalit des
populations parents quels que soient les effectifs des chantillons. De plus il
s'agit d'une mthode approximative qui n'est satisfaisante que lorsque les effectifs
des p chantillons (alatoires, indpendants) n1,...,np sont suffisamment grands (
ni 4 ) et que p n'est pas trop lev par rapport aux ni.
Notations : Nous disposons de p chantillons alatoires, simples et indpendants,
d'effectifs n1, n2,... np:
x11,x12,...,x1p pour le premier chantillon puis x21,x22,..., x2p pour le deuxime puis...
xp1,xp2,...,xpp pour le dernier chantillon.
ni

SCE i = xij2
j =1

p
1 ni
SCE i
SCE
( xij ) 2 et i2 =
; SCE = SCE i et 2 =
(n:
ni j =1
ni 1
n p
i =1

effectif total)
2
2
2
Nous testons H 0: 1 = 2 =... = p contre H1: une des variances est diffrentes des
autres.
2
2
2
Si l'hypothse nulle H 0: 1 = 2 =... = p est vraie
2 est une estimation non biaise de
la variance commune.
p

La statistique de test est:

T=

(n p) Ln( 2 ) (ni 1) Ln(i2 )


i =1

1
1
1
1+

3( p 1) i =1 ni 1 n p
p

2 p-1 degrs de liberts.


12 avec p-1 degrs de libert.

approximativement une loi du


On rejette H0 lorsque

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

t obs

Page 165

qui suit

3.

Mise en pratique sous SAS


SAS peut effectuer avec une mme procdure une Anova et un test dgalit de
variances.
66

PROC ANOVA ou PROC GLM ?


Les procdures ANOVA et GLM traitent en particulier les analyses de variance
un critre. ANOVA suppose que vos donnes sont quilibres, c'est dire que les
sous-populations sont de mme effectif (ce qui fait gagner du temps et de la
mmoire), GLM s'utilise dans tous les cas mais elle sera beaucoup moins rapide
qu' ANOVA dans le cas de donnes quilibres.
67

a)

Syntaxe simplifie.
Appelons Y la variable rponse (quantitative) et X la variable qualitative
(Facteur) servant dfinir les sous populations.
PROC ANOVA ou GLM;
(cela dpend si vos donnes sont quilibres ou non)
CLASS X
variables (qualitatives en gn.) qui dfinissent vos sous-populations
MODEL Y= X ;
(modle d'tude)
MEANS X / options ;

Pour calculer des moyennes de la variable rponse selon les catgories de la


variable qualitative spcifie. Cette dernire doit figurer dans le modle. Means
permet galement de faire un test dgalit de variances.68

Options de Means : HOVTEST= BARTLETT ou BF ou LEVENE


ou OBRIEN

Pour effectuer un test dgalit de variance de Bartlett ou de Brown-Forsythe


(plus puissant) ou Levene ou Obrien (Levene modifi)

RUN;
QUIT ;
69

66 Pour les heureux possesseurs de la V 6.12. Pour les autres, il faut utiliser un programme part pour tester lgalit des variances. A la fin
de ce paragraphe, vous trouverez le code du programme effectuant un test de Bartlett.
67 ANOVA fonctionne pour des donnes non quilibres seulement s'il n'y a qu'un facteur (ce qui est le cas ici), mais autant prendre de
bonnes habitudes ds maintenant...
68 Nous savons en effet que pour lhypothse dgalit des variances est ncessaire lANOVA.
69 Le Quit est ncessaire car la procdure ANOVA (ou GLM) est intractive. C'est dire que vous pouvez, mme aprs l'excution de
l'instruction (RUN compris) ajouter des commandes supplmentaires (tests etc...) Cela l'avantage d'viter de refaire tous les calculs, qui
peuvent tre trs long, juste pour une sous-commande que l'on aimerait ajouter.
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 166

b)

Pour notre exemple...


Le programme suivant effectue une ANOVA sur le fichier Moi.ARBRES.
Nous allons tester lgalit des moyennes des hauteurs (Y=HAUT) en fonction du
type de fort (X=TYPE) . Nous effectuerons galement un test de Bartlett dgalit de
variances.
proc anova data=moi.arbres;
class type;
model haut=type;
means type/ hovtest=bartlett;
run;
quit;

Choix du modle.
Effectue un test dgalit de variances en prime.

Ce qui donne :
Analysis of Variance Procedure
Dependent Variable: HAUT
Source

DF

Sum of Squares

Model

48.88143511

34

116.64883516

Error
Corrected Total

36

R-Square
0.295302

F Value
7.12

P valeur du test
ANOVA. Si P<5%, on
rejette lgalit des
moyennes au risque de
5%.

Pr > F
0.0026

165.53027027
C.V.

HAUT Mean

7.413828

24.9837838

Interprtation
Nous retrouvons la table d'analyse de la variance avec la variable HAUT qui
correspond la variable quantitative Y prcdente. (Dependent variable) et
quelques informations supplmentaires:
Pr > F:
R-Square:

C'est la signification du test prcdent.(<0.05 on rejette H0)


C'est le rapport de corrlation. (X,Y) =Somme des carrs inter
classe/ Somme des carrs totale)

C.V.:
Root MSE:
Mean:

C'est le coefficient de variation (100*Root MSE/Mean)


Ecart-type estim de Y
Moyenne de la variable HAUT.

Dans l'exemple ci-dessus, nous rejetons donc l'hypothse d'galit des moyennes
condition que les hypothses d'application de ce test soient remplies. Ci-dessous,
nous pourrons vrifier une de ces hypothses : lgalit des variances
Remarque :

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 167

Le module SAS/INSIGHT peut vous permettre dobtenir un graphique illustrant


cette diffrence. Allez Dans Global/Analyse/Interactive Data Analysis puis
Boxplot
70

Test dgalit de variances :


Bartlett's Test for Equality
of HAUT Variance
Source

Chisq
DF
Value

Prob>Chisq

TYPE

0.1768

3.4657

Cette sortie nous permet de voir que lgalit des variances semble vrifie au
seuil de 5%. (P=0.1768 > 0.05).
71

SAS termine en calculant les moyennes et les cart types des hauteurs des arbres
dans les trois types de forts :
Analysis of Variance Procedure
Level of
-------------HAUT-----------TYPE
N
Mean
SD
1
2
3

13
14
10

25.9692308
25.3857143
23.1400000

1.35854372
1.77324437
2.44094699

Nous voyons clairement que les arbres des forts de type 3 semblent moins hauts
que les autres.

70 Vous pouvez galement retrouver lanalyse de la variance, mais la variable type doit tre dclare Nominale avant de faire Analyse/Fit
XY
71 Il faut rester prudent quand mme. Le test de Bartlett nest pas trs puissant. (cf. TESTS sous Minitab) Le test de Brown Forsythe est
meilleur. (Cf. doc SAS)
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 168

4.

Exercices
I) La socit FRED&NUCCI frres spcialiste vinicole rput de la rgion
bordelaise effectue une tude pour relier la qualit de leur vins en fonction des
caractristiques mtorologiques.
Les donnes sont dans les fichiers Minitab et SAS BORDEAUX.MTW,
BORDEAUX (rpertoire Public)
C1 : Somme des t moyennes journalires (en C)
C2 : Dure dinsolation (en h)
C3 : Nombre de jour de grande chaleur
C4 : Hauteur des pluies.
C5 : Qualit du vin : 1 Bon, 2 Moyen 3 : Mdiocre.
La qualit du vin est-elle lie aux variables C1, C2 et C3 ? Vous illustrerez votre
raisonnement par des graphiques et des Analyses de variance. On supposera la
normalit vrifie.
II) Une usine fabrique des billes d'acier selon 3 procds diffrents. Nous avons
prlev alatoirement 3 chantillons de pices (1 par mthode) et nous avons
mesur leur longueur. Les rsultats sont dans le fichier: EXANOVA2.TXT.
Peut-on considrer que les moyennes des pices fabriques selon ces trois
mthodes sont les mmes ? Une ANOVA est-elle indique pour rsoudre ce
problme ?
On dtaillera le raisonnement.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 169

APPENDICE : Test de Bartlett sous SAS (version antrieure 6.12)


Mise en uvre sous SAS
Voici ci-dessous un programme extrait de la documentation SAS qui vous
permet deffectuer un test de Bartlett fort utile pour sassurer de lgalit des
variances.
Ce programme est en gnral fourni avec SAS en SAS/STAT sous le nom
Bartlett.sas .
Le voici ci-aprs pour le fichier moi.arbres :
PROC SUMMARY NWAY
data=moi.arbres ; /* calcule et stocke la variance et le */
CLASS type;
/* nombre d'observations pour chaque niveau*/
VAR haut;
/* Les lignes ci-dessous ne doivent pas tre modifies */
OUTPUT OUT=WEARVAR VAR=VARIANCE N=NUM;
RUN;
DATA _NULL_;
SET WEARVAR END=EOF;
LOGVARI=LOG(VARIANCE);
N=NUM-1;
/* degrs de liberts pour chaque niveau */
SLOGVAR+LOGVARI*N;
TOTN+N;
NVAR=N*VARIANCE;
SNVAR+NVAR;
A+1;
/* nombre de niveaux
*/
SFRACT+1/N;
IF EOF THEN DO;
M=TOTN*LOG(SNVAR/TOTN)-SLOGVAR;
C=1+(1/(3*(A-1)))*(SFRACT-1/TOTN);
CHISQ=M/C;
PROBCHI=PROBCHI(CHISQ,(A-1));
ALPHA=1-PROBCHI;
FILE PRINT;
PUT 'TEST DE BARTLETT: CHI-SQUARE=' CHISQ ' ALPHA=' ALPHA '.';
END;
RUN;

Il donne
TEST DE BARTLETT: CHI-SQUARE=3.4657438688

ALPHA=0.1767759912 .

Nous acceptons donc lgalit des variances au niveau 0.05.


Vous pouvez aisment le modifier en changeant les lignes 2, 3 et 4 de ce
programme. (Ligne 2 : nom du fichier, Ligne 3 : Variable qualitative dfinissant les sous
populations, Ligne 4 : Varaible quantitative )

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 170

5.

ANOVA deux critres de classification (modle fixe)


Nous avons vu que l'analyse de la variance un critre permet de diviser la
variation totale en deux composantes: l'une factorielle, l'autre rsiduelle. Nous
gnralisons ceci pour deux critres de classification. Notons A et B les deux
facteurs en question.

a)

Tableau d'analyse de la variance


La plupart des logiciels prsentent leur sortie sous cette forme:
Source de variation
Facteur A
Facteur B
Interaction A*B
Variation rsiduelle
Total

Degrs de
libert
p-1
q-1
(p-1)(q-1)
pq(n-1)
pqn-1

Sommes des carrs


(sum of squares)
SSA
SSB
SSAB
SSE
SST

Carrs moyens
(mean square)
MSA=SSA/(p-1)
MSB
MSAB
MSE
MST

Fa=MSA/MSE
Fb
Fab

p:nombre de modalits de A
q: nombre de modalits de B
n: nombre d'observations par case (suppos le mme)
Nous vous renvoyons la fiche de cours pour plus de renseignements.
b)

Hypothses gnrales
Les conditions d'application de l'analyse de la variance deux critres sont
semblables celles exposes pour la variance un critre. Il faut tre tout aussi
vigilant !

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 171

c)

Mise en oeuvre sous Minitab et sous SAS


Chargez le fichier OPER.MTW (sous Minitab) qui contient les donnes de
l'exercice II de la fiche 4C de statistique.
Nous allons analyser l'influence des facteurs machines et oprateurs sur le temps
de ralisation d'un certain travail.
Chaque cellule contenant le mme nombre de donnes (on dit alors que les
donnes sont quilibres, balanced en anglais) nous pouvons utiliser la commande
STAT/ ANOVA /BALANCED ANOVA de Minitab, ou la commande PROC
ANOVA de SAS.
Si les donnes ne sont pas quilibres, il faut utiliser STAT/ANOVA/GLM pour
Minitab et PROC GLM pour SAS.
Il n'y a aucune diffrence entre GLM et ANOVA dans le cas de donnes
quilibres si ce n'est le temps de calcul !
Sous Minitab, allez dans STAT/ANOVA/BALANCED ANOVA. Choisissez la
variable de rponse.
Ensuite, Minitab vous demande le modle de l'tude.

Comment spcifier un modle ? (sous SAS ou sous Minitab)


Le modle est introduit de la mme faon sous Minitab et sous SAS.
Exemples:
2 facteurs nots A et B
A B A*B :
A|B
A A*B
A B

modle complet.
modle complet (revient au mme que le prcedent)
on nglige priori l'effet additif de B.
on nglige l'interaction.

3 facteur A,B et C cela donne


A|B|C
modle complet
A|B|C - A*B*C
modle A B C A*B A*C B*C (minitab)

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 172

d)

Syntaxe sous SAS.


PROC ANOVA ou GLM;
(cela dpend si vos donnes sont quilibres ou non)
CLASSES variables;
(variables dfinissant vos sous-populations)
MODEL variable rponse= modle; (modle d'tude, ici ce serait Y=X)
BY variables

(pour distinguer des sous populations selon les variables indiques, le fichier est
suppos tri par rapport aux variables indiques...)

RUN;
QUIT;

(pour lancer la procdure)


(pour quitter dfinitivement la procdure)

PUBLIC contient le fichier OPER.TXT. Importez le sous SAS et crivez la


procdure ANOVA correspondante.
Quels sont les renseignements supplmentaires apports par SAS ?
Vous devez obtenir la sortie suivante:
Analysis of Variance Procedure
Dependent Variable: TEMPS
Source

DF

Sum of
Squares

Mean
Square

F Value

Pr > F

Model

11

888.000000

80.727273

2.16

0.0554

Error

24

896.000000

37.333333

Corrected Total

35

1784.000000

R-Square

C.V.

Root MSE

TEMPS Mean

0.497758

11.98059

6.11010

51.0000

DF

Anova SS

Mean Square

F Value

Pr > F

3
2
6

756.000000
96.000000
36.000000

252.000000
48.000000
6.000000

6.75
1.29
0.16

0.0018
0.2948
0.9848

Dependent Variable: TEMPS


Source
MACH
OPER
MACH*OPER

Dans un premier temps SAS fait un test permettant de vrifier globalement la


validit du modle (ce que ne fait pas Minitab)
Dans la deuxime partie, SAS effectue trois tests pour vrifier l'influence des
facteurs et de l'interaction sur le modle.
Le modle vous parat-il adapt ici ? Quels sont les facteurs influents ?

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 173

I.

NPAR1WAY :Quelques mthodes non paramtriques

1.

Prliminaires
On qualifie de non paramtriques les mthodes statistiques qui sont
applicables dans des conditions gnrales, quant aux distributions des
populations parents Dagnlie TMS p377. En anglais on traduit non
parametric ou distribution free ce qui est plus parlant.
Elles sont utilises lorsque les populations parents ne suivent pas une loi normale
par exemple. Par contre, dautres conditions peuvent tre exiges (indpendance
des chantillons, distributions continues...) Ces tests sont aussi en gnral moins
puissants que leurs confrres paramtriques.

2.

Test de Kolmogorov-Smirnov
(comparaison de distributions)

a)

But
Ce test a pour but de comparer 2 distributions entre elles. Il est plus complet
que le T test qui ne compare que la position de deux distributions (nous
testons alors lgalit des moyennes).

b)

Principe
Hypothses dapplication: Nous considrons une variable quantitative
observe sur deux populations. Nous avons deux chantillons (de taille n1 et
n2) constitus dobservations indpendantes respectivement dune loi G1 et
dune loi G2 . Les distributions Gi sont supposes continues.
H0 : G1=G2 H1 : G1 G2
Nous comparons les fonctions de rpartitions(F1 et F2) des deux
chantillons. Dune manire plus prcise, on calcule lcart maximum entre
F1 et F2 :
D= sup F ( x ) F ( x )
et lon compare cette valeur des valeurs critiques particulires.
Si D>c on rejette H0 au risque
1

Remarque : Le test prsent ici est bilatral. Il existe aussi une version unilatrale (cf.
vos fiches de Stat)

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 174

c)

Mise en pratique sur SAS (Proc NPAR1WAY).

Note importante :
SAS calcule en fait plusieurs statistiques dont celle de Kolmogorov prsente
ci-dessus. Nous navons prsent que la comparaison de deux chantillons.
SAS peut comparer n chantillons. Il calcule alors la fonction de rpartition
moyenne F de tout lchantillon et calcule des diffrences entre les Fi et F.

Calculs pour Kolmogorov-Smirnov


On a : F =

1
n F KS = max i
n i i i

ni

n (F (x
i

En fait, dans le cas de deux chantillons, on a : KS=

) F ( x j )) et KSa = KS n .

n1n2
D . Et KSa = KS n . SAS
n2

calcule ensuite le P correspondant Ksa. (pour 2 chantillons)

Calculs pour Kuiper


Les hypothses sont analogues celles du test prcdent.
Dans le cas de deux chantillons, SAS donne la statistique de Kuiper calcule par :
K = max j ( F1 ( x j ) F2 ( x j )) min j ( F1 ( x j ) F2 ( x j )) et la valeur asymptotique
Ka= K

n1n2
. Si Ka>c, on rejette H0 (lidentit des distributions). SAS calcul le P relatif
n

Ka.

Comparaison des tests de Kuiper et de Kolmogorov :


Des tudes par simulation ont montr que le test de Kuiper tait plus
puissant que celui de Kolmogorov-Smirnov (Statistique non paramtrique et
robustesse, Lecoutre-Tassi P328)

Syntaxe de la procdure PROC NPAR1WAY


PROC NPAR1WAY <options> ;
CLASS variables ;
On indique ici la variable de classification (qualitative en gnral)
BY variables ;
Pour effectuer si ncessaire plusieurs analyse dun coup selon les modalits
des variables indiques ici.

VAR variables ;

On indique ici la variable de rponse utiliser dans les tests.


Par dfaut SAS utilisera toutes les variables quantitatives.

RUN ;

Les principales options tant :


IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 175

DATA= Le nom du fichier de donnes SAS utiliser


EDF

Pour indiquer SAS deffectuer des tests utilisant les fonctions de


rpartitions : Kolmogorov, Cramer Von Mises, Kuiper.

WILCOXON Pour obtenir des mthodes sur les rangs (Wilcoxon Mann et
Whitney, Kruskal-Wallis)

d)

Exemple
Nous allons tester lgalit des distributions des tailles des hommes et des
femmes de STID de France dont un chantillon (suppos alatoire) est
contenu dans le fichier STID193.
Libname moi Z :\TOTO ;
Libname moi Z :\TOTO ;
proc npar1way data=moi.stid193 edf;
class sexe;
var taille;
run;
On obtient alors :
Kolmogorov-Smirnov Test for Variable TAILLE
Fonction de
Classified by Variable SEXE
rpartition.
Deviation
EDF
from Mean
SEXE
N
at maximum
at maximum
1
46
0.239130435
-2.28117743
2
60
0.833333333
1.99738764
--------------------106
0.575471698
Maximum Deviation occurred at Observation
59
Value of TAILLE
at maximum 171.000000
P valeur
Kolmogorov-Smirnov 2-Sample Test (Asymptotic)
KS = 0.294499
D = 0.594203
Stat de test.
KSa = 3.03205
Prob > KSa =
0.0001

Comme nous le voyons sur le graphique ci-dessous, lcart maximum entre les
deux fonctions de rpartition est obtenu pour T=171cm. On a alors Pour les
homme F(171)=0.239 et pour les femmes F(171)=0.833.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 176

Fonction de rpartition des tailles


100
90
80

0.83

% cumul

70
60
50

Ecart maximum

40
30
20

Valeur pour laquelle


lcart maximum est
atteint.

0.24

10
0

171

150

160

170

180

190

200

Taille (cm)
On obtient D=0.5942. et KS=0.294499. Le calcul de la signification du test est
effectu sur Ksa.
La signification du test montre que lon rejette H0 (identit des distributions) au
risque 0.0001.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 177

Le test de Kuiper confirme-t-il ce rsultat ?

SEXE
1
2

Kuiper Test for Variable TAILLE


Classified by Variable SEXE
Deviation
N
from Mean
46
0.000000000
60
0.594202899
Kuiper 2-Sample Test (Asymptotic)
Ka = 3.03205
Prob > Ka =

K = 0.594203

e)

0.0001

Exercice
On fabrique des pices mtalliques selon deux procds diffrents. On tire deux
chantillons alatoirement, on mesure les pices obtenues. Les rsultats figurent
dans le fichier NPAR (format SAS). Il contient les deux chantillons alatoires
indpendants de longueurs (LONG) de pices mtalliques fabriques selon deux
mthodes diffrentes (numrotes 1 et 3).
Peut-on considrer que les deux mthodes donnent des rsultats identiques quant
la distribution des pices ? (Vous effectuerez les tests de Kolmogorov et de
Kuiper)
Une tude complmentaire a montr que les deux distributions peuvent tre
considres comme normales. Quel test pouvez-vous effectuer ? Que concluezvous ?
Complment : Aurait-on pu effectuer un Test de Mann et Whitney ici ?

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 178

3.

Test de Mann et Whitney (ou Wilcoxon ou White)


(Comparaison de 2 distributions quant leur position)

a)

But
Ce test a essentiellement pour objet de comparer deux populations en ce qui
concerne plus particulirement leur position et est donc comparable au T
test de comparaison de moyennes vu dans un chapitre prcdent.
Contrairement au T Test, il ne suppose pas la normalit des populations
parents mais il suppose des distributions de mme forme . Il est un tout
petit peu moins puissant que le Ttest dans les conditions dapplication de ce
dernier.

b)

Mise en oeuvre
Hypothses dapplication (cf. fiche de cours): Nous considrons une
variable numrique ordinale observe sur deux populations indpendantes.
Nous avons deux chantillons (de taille n1 et n2 , on suppose n1 n2)
constitus dobservations indpendantes respectivement dune loi G1 et
dune loi G2 . Les distributions Gi sont supposes continues et leurs
fonctions de rpartitions ne doivent pas se chevaucher (Minitab suppose
quelles ont la mme forme donc des variances gales)
H0 : G1=G2 H1 : G1 G2
Ralisation:

La ralisation de ce test est base sur le classement de lensemble des observations par
ordre croissant, la dtermination du rang de chacune delles, et le calcul de la somme des
rangs (Y1 et Y2) pour chaque chantillon. (en fait seul le calcul de Y1 est ncessaire)
Le principe du test consiste rejeter lhypothse didentit des deux distributions lorsque
la valeur observe par Y1 scarte trop de la valeur attendue correspondante.
Pour des effectifs suffisamment levs (n1+n2>30) la distribution de Y1 est
approximativement normale de moyenne n1(n1+n2+1)/2 et de variance n1n2(n1+n2+1)/12.
Y1 n1 (n1 + n2 + 1) / 2
La quantit uobs =
suit approximativement, en valeur
n1n2 ( n1 + n2 + 1) / 12
absolue une N(0,1).

Correction en cas exaequo : La prsence de valeurs identiques dans les deux


chantillons diminue en fait la variabilit de la somme des rangs : la variance de ces
sommes doit donc tre corrige en consquence. Limportance de cette correction est en
gnral secondaire. Dagnlie TMS2 p 384.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 179

c)

Exemple sous SAS


Voici un exemple de sortie sous SAS. (Il ne faut pas oublier de mettre
loption WILCOXON dans la procdure NPAR1WAY)
N P A R 1 W A Y

P R O C E D U R E

Wilcoxon Scores (Rank Sums) for Variable HAUT


Classified by Variable TYPE
TYPE
1
2

Sum of
Scores

Expected
Under H0

Std Dev
Under H0

Mean
Score

13
14

204.500000
182.0
20.5948573
15.7307692
173.500000
196.0
20.5948573
12.3928571
Average Scores were used for Ties
Wilcoxon 2-Sample Test (Normal Approximation)
(with Continuity Correction of .5)
S= 204.500
Z= 1.06823
Prob > |Z| =
0.2854

SAS calcule bien sr la somme des rangs (sum of scores), les sommes
attendues si H0 est vraie (expected under H0).
Average Scores were used for Ties signifie que des
rangs affects aux exaequo correspondent la moyenne des rangs
correspondants.
S
Z
P

Correspond au Y1 prcdent (somme des rangs du plus petit chantillon)


Statistique de Test.
Le P correspondant.

Ici, on accepte lhypothse H0 didentit des distributions.


Remarque importante : SAS effectue aussi un test de Kruskal et Wallis. Ce test,
que nous verrons plus loin, gnralise Mann et Whitney k chantillons. Cela dit,
il sapplique lorsque k=2 et est alors quivalent au test de Mann et Whitney.
Minitab donne quant lui:
Mann-Whitney Confidence Interval and Test
type1
N = 13
Median =
26.300
type2
N = 14
Median =
25.650
Point estimate for ETA1-ETA2 is
0.600
95.1 Percent C.I. for ETA1-ETA2 is (-0.700,2.000)
W = 204.5
Test of ETA1 = ETA2 vs. ETA1 ~= ETA2 is significant at
0.2857
The test is significant at 0.2854 (adjusted for ties)
Cannot reject at alpha = 0.05
Note : Minitab interprte ce test comme un test dgalit de mdianes.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 180

d)

Exercice
1) Nous avons calcul les dures de vie de composants lectroniques
fabriqus selon deux mthodes diffrentes.
Nous avons extrait deux chantillons indpendants. Ils sont consigns dans
le fichier NONPARA (au format SAS). (NONPARA.MTW Minitab)
On veut savoir si les deux mthodes donnent des rsultats analogues.
Peut-on effectuer un test paramtrique ici ?
Que donne Mann et Whitney ici ? (Vous vrifierez les hypothses
dapplication sous Minitab)
(Pourrait-on effectuer un test T ? Que donne-t-il ici ?)
2) Pourrait-on appliquer Mann et Whitney NPAR.MTW
prcdemment ? Que donne-t-il ?

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 181

vu

4.

Le test de Kruskal et Wallis


(comparaison de k distributions quant leurs positions)

a)

But
Il gnralise Mann et Whitney pour k chantillons. Il est, comme le test
prcdent, bas sur le classement des observations, la dtermination de leur
rang et les calcul des sommes Yi associes.

b)

Mise en uvre
Hypothses : Nous considrons une variable numrique ordinale observe
sur k populations indpendantes. Nous avons k chantillons (de tailles ni)
constitus dobservations indpendantes de loi Gi. Les distributions Gi sont
supposes continues et de mme forme (cf. Mann et Whitney).
H0 : G1=...=Gk H1 : H0 c
On calcule

2
obs
=

k
Yi 2
12
3(n + 1) avec n = ni
n(n + 1) i =1 ni

Cette quantit suit un chi2 (k-1) pour n suffisamment grand (15).


On rejette H0 lorsque cette valeur est trop grande .

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 182

N P A R 1 W A Y P R O C E D U R E
Wilcoxon Scores (Rank Sums) for Variable DUREE
Classified by Variable TYPE
TYPE
1
2

Sum of
Expected
Std Dev
Mean
Scores
Under H0
Under H0
Score
1050.50000
915.0
67.6359272
35.0166667
779.50000
915.0
67.6359272
25.9833333
Average Scores were used for Ties
Wilcoxon 2-Sample Test (Normal Approximation)
(with Continuity Correction of .5)
S= 1050.50
Z= 1.99598
Prob > |Z| =
0.0459
T-Test approx. Significance =
0.0506
N
30
30

Kruskal-Wallis Test (Chi-Square Approximation)


CHISQ= 4.0135
DF= 1
Prob > CHISQ=
0.0451

Voici un exemple de sortie avec le fichier prcdent. Nous pouvons remarquer que les
conclusions sont analogues celles du test de Mann et Whitney. Ceci qui est logique (ces
tests sont quivalents pour k=2)

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 183

J.

CORR , calcul des coefficients de corrlations

Objet
Proc CORR est utilise pour calculer les coefficients de corrlations entre des
variables. Par dfaut le coefficient de corrlation linaire de Pearson donn par
72

rxy =

1.

cov( X , Y )
est calcul pour chaque couple de variables73.
var( X ) var( Y )

Syntaxe simplifie
PROC CORR options1;
VAR variables;
BY variables;
FREQ variables;
WITH variables;
RUN;

Liste des variables sur lesquelles se feront les calculs des coefficients
Pour effectuer un calcul pour chaque sous-population dfinie par BY
Chaque observation est compte n fois o n est la valeur de la variable pour
l'observation correspondante
Pour calculer les corrlations entre ces variables et celles de VAR. cf exemple

Exemples
PROC CORR DATA=moi.stid193 NOPROB;
VAR taille poids;
RUN;

(NOPROB: pour ne pas afficher le test)

Ce petit programme effectuera le calcul du coefficient de corrlation linaire


cov( X , Y )
(de Pearson donn par rxy =
) entre les variables Taille et Poids
var( X ) var(Y )
du fichier Stid193. Le rsultat est donn ci-dessous sous forme matricielle. Il
est prcd par des statistiques lmentaires:
Simple Statistics
Variable
TAILLE
POIDS

Mean

Std Dev

Sum

Minimum

Maximum

46
46

176.3043
68.5217

6.9694
10.0504

8110
3152

160.0000
53.0000

196.0000
110.0000

Pearson Correlation Coefficients


TAILLE
POIDS

2.

TAILLE
1.00000
0.63779

/ N = 106
POIDS
0.63779
1.00000

Test de nullit
PROC CORR DATA=moi.stid193 ;
72 Ce nombre, calcul pour des variables quantitatives en gnral, est compris entre -1 et 1, caractrise l'intensit de la liaison linaire entre
deux variables. Plus il est proche de 1 (ou proche de -1) plus la liaison linaire est forte.
73 Le module SAS/INSIGHT vous permet de faire ce calcul. Cf. ce document paragraphe SAS/INSIGHT, option Multivariate (Ys).
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 184

VAR taille poids;


RUN;
SAS effectue en plus un test sur le coefficient de corrlation.
Soit les coefficient de corrlation entre deux variables X et Y sur une
population P.
Test: H 0: = 0 (il n' y a pas de correlation) contre H1: 0 .
Hypothses:
' D'une part, on peut considrer la premire variable dite dpendante, exprime en fonction
d'une autre variable dite indpendante. Dans ce cas, on suppose que la variable dpendante est
normale et de variance constante et que la rgression est linaire.
D'autre part, on peut considrer deux variables interdpendantes, dont on suppose que la
distribution commune est une distribution normale deux dimensions. C'est en gnral le
deuxime cas qui est retenu.' Dagnlie TMS2
La statistique de test est T=

R n2
qui sous H0 suit une loi de Student n-2 degrs de
1 R

liberts. (n dsigne l'effectif de l'chantillon et R la variable alatoire associe au coefficient de


corrlation)

En pratique
On calcule t obs =

rxy n 2
1 rxy

et on rejette H0 lorsque cette valeur est trop leve,

c'est dire suprieure t1 / 2 pour un niveau de signification avec n-2 degrs


de liberts.
Dans la pratique SAS donne le P correspondant. On rejette H0 lorsque P est
suprieur =0.05 (en gnral)
Correlation Analysis
Pearson Correlation Coefficients / Prob > |R| under Ho: Rho=0 / N = 106
TAILLE
POIDS

TAILLE
1.00000
0.0
0.63779
0.0001

POIDS
0.63779
0.0001
1.00000
0.0

Ici P=0.0001, on accepte donc H1: 0 . On rejette l'hypothse de nullit du


coefficient de corrlation entre la taille et le poids de la population des STID de
France.
74

74 En considrant les STID grenoblois comme un chantillon alatoire reprsentatif de la population des STID de france et en supposant les
hypothses cites plus haut remplies.
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 185

Exercice et exemple
PROC SORT DATA=moi.stid193 out=stidtri;
BY sexe;
RUN;

(Pour utiliser le BY dans PROC CORR)

PROC CORR data=stidtri;


VAR taille poids;
BY sexe;
RUN;

Que fait le programme prcdent. Quels sont les tests effectus ? Que
concluent-ils ?
Utilisation de WITH
PROC CORR;
VAR a b;
WITH x y z;
RUN;
Calculera les corrlations X A, Y A, Z A, X B, Y B, Z B.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 186

Quelques options de PROC CORR


Fichier de donnes
DATA=nom du fichier de donnes SAS
Fichier de donnes SAS sur lequel s'effectuera le calcul.
Sauvegarde des rsultats
OUTP=nom de fichier SAS
Cre un fichier SAS contenant les coefficients de correlation de Pearson.
OUTS=nom de fichier SAS
Cre un fichier SAS contenant les coefficients de correlation de Spearman.
OUTK=nom de fichier SAS
Cre un fichier SAS contenant les coefficients de correlation de Kendall.
Affichage des rsultats
BEST=nombre n
Affiche les n correlations les plus leves (en valeur absolue) pour chaque
variable.
RANK
Affiche les coefficients de corrlation du plus grand au plus petit (en valeur
absolue). Si cette option n'est pas choisie, ils s'affichent sous forme d'une
matrice.
NOPRINT
Aucun affichage des rsultats.
NOSIMPLE
Pas d'affichage des statistiques descriptives effectues sur les variables.
NOPROB
Pas d'affichage de la signification P du test H0: = 0 contre H1: 0 .
Statistiques particulires
PEARSON
Affiche le coefficient de corrlation linaire. (option valide par dfaut)
SPEARMAN
Affiche les coefficients de Spearman.
( Ri R )( Si S )
=
( Ri R ) ( Si S )
o Ri est le rang de la ime valeur observe de X
et Si le rang de la ime valeur observe de Y.
(cela revient substituer chaque valeur par son rang).
Notes: en cas d'ex aequo c'est la moyenne qui est prise

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 187

Dans la pratique, on utilise aussi la formule

6 di2

n(n 1)

di est la diffrence de rangs

relative aux diffrents individus.

COV
Affiche les covariances.
Diviseur utilis pour le calcul de la variance
VARDEF=
DF Degrs de liberts (n-1) C'est l'option par dfaut.
N Nombre d'observations (n)
WEIGHT Somme des poids
WDF
Somme des poids -1.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 188

K.

PRINCOMP, Analyse en Composantes Principales

1.

Syntaxe simplifie
PROC PRINCOMP options;
VAR variables;
variables (actives) sur lesquelles seffectue l'ACP
BY variables;
FREQ variables;

dcompose la population en sous populations identifies par les modalits de BY


Chaque observation est compte n fois o n est la valeur de la variable pour
l'observation correspondante

RUN;
Certaines options de PRINCOMP
Fichier de donnes
DATA=nom du fichier de donnes SAS
Fichier de donnes SAS sur lequel s'effectuera le calcul.
Sauvegarde des rsultats
OUT=nom de fichier SAS
Cre un fichier SAS contenant toutes les donnes originales ainsi que les
coordonnes des projections des individus sur les diffrentes composantes
principales.
OUTSTAT=nom de fichier SAS
Cre un fichier SAS contenant les moyennes, cart-types, valeurs propres,
vecteurs propres.
Paramtrage de l'analyse
N=nombre entier
Spcifie le nombre de composantes principales calculer.
COVARIANCE ou COV
Effectue le calcul des composantes principales partir de la matrice de
variance covariance et non plus partir de la matrice des corrlations. "Cette

option ne doit pas tre utilise moins que les units dans lesquelles sont exprimes les
variables soient comparables ou moins que les variables soient centres rduites ".
SAS/STAT User Guide p.1244.

NOPRINT
Pas d'affichage des rsultats
NOINT
La matrice des corrlations (ou de covariance) ne sera pas corrige par
rapport la moyenne
Diviseur utilis pour le calcul de la variance
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 189

VARDEF=
DF Degrs de liberts (n-1) C'est l'option par dfaut. (N si NOINT est spcifie)
N Nombre d'observations (n)
WEIGHT Somme des poids
WDF
Somme des poids -1.(Somme des poids si NOINT est spcifie)
Divers
PREFIX=nom
spcifie un prefixe pour nommer les composantes principales. Par dfaut
elles sont notes PRIN1, PRIN2 etc... Si PREFIX = Y est spcifi, les
composantes principales seront notes Y1, Y2,... etc

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 190

2.

Exercice
Prenez le fichier SAS ACP qui se trouve dans les rpertoires habituels. Il
donne les moyennes mensuelles des tempratures de 15 villes de France calcules
sur 30 ans de 1930 1961. Sont indiques galement dans le fichier la latitude,
la longitude, la moyenne annuelle et l'amplitude thermique de ces 15 villes.
Tapez le programme suivant:
PROC PRINCOMP DATA=PUB.ACP ;
(dclarez Pub correctement)
VAR JAN FEV MAR AVR MAI JUN JUI AOU SEP OCT NOV DEC;
RUN;
Et vrifiez que vous obtenez bien entre autres:

PRIN1
PRIN2
PRIN3
PRIN4
PRIN5
PRIN6
PRIN7
PRIN8
PRIN9
PRIN10
PRIN11
PRIN12

Principal Component Analysis


Eigenvalues of the Correlation Matrix
Eigenvalue
Difference
Proportion
9.58178
7.30536
0.798482
2.27642
2.20640
0.189702
0.07001
0.03034
0.005835
0.03967
0.02563
0.003306
0.01405
0.00606
0.001170
0.00798
0.00193
0.000665
0.00605
0.00430
0.000504
0.00175
0.00025
0.000146
0.00149
0.00100
0.000124
0.00049
0.00021
0.000041
0.00029
0.00027
0.000024
0.00002
.
0.000002

Cumulative
0.79848
0.98818
0.99402
0.99732
0.99849
0.99916
0.99966
0.99981
0.99993
0.99997
1.00000
1.00000

Que contient ce tableau ? Quels sont les lments donns par SAS dans
l'OUTPUT ?
Quelle est linertie explique par le premier axe ? le deuxime ?
Que pensez-vous de la qualit globale du premier plan principal ?
Combien de composantes allez-vous retenir ?

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 191

a)

Calcul des coordonnes des individus sur les axes principaux


Modifiez le programme prcdent comme suit:
PROC PRINCOMP DATA=MOI.ACP OUT=WORK.ESSAI;
VAR JAN FEV MAR AVR MAI JUN JUI AOU SEP OCT NOV DEC;
RUN;
Que fait de plus ce programme par rapport au prcdent ? Quels sont les donnes
supplmentaires figurant dans le fichier SAS work.essai?
Excutez ensuite:
PROC PRINT DATA=WORK.ESSAI;
VAR NOM PRIN1 PRIN2 ;
NOTE: la variable nom contient le nom de chaque ville
RUN;
Vous devez obtenir:
OBS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

NOM
bordeaux
brest
clermont
grenoble
lille
lyon
marseille
montpellier
nantes
nice
paris
rennes
strasbourg
toulouse
vichy

PRIN1

PRIN2

3.01489
-2.19110
-1.66741
-1.47740
-4.07384
-0.80663
4.66885
4.00667
-0.27175
5.80335
-1.19983
-1.38987
-3.96639
1.67730
-2.12684

0.10559
3.95451
-0.57244
-1.63071
0.57502
-1.72759
-0.80070
-0.42059
1.07677
0.76254
-0.15104
1.61446
-2.09860
-0.13151
-0.55571

Donnez la signification des nombres en face de chaque ville .

75

75 SAS a la fcheuse manie de donner le nom de PRIN1 au premier axe principal et la premire composante principale. Attention aux
confusions.
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 192

b)

Reprsentation du premier plan principal


Vous pouvez obtenir une reprsentation graphique basse rsolution avec les instructions
qui suivent :
PROC PLOT DATA=WORK.ESSAI;
PLOT PRIN2*PRIN1='*' $ NOM;
RUN;

PRIN2

4
* brest

* rennes

1
* nantes

nice *

* lille

* bordeaux
0

* paris
* toulouse

vichy * * clermont
* montpellier

* marseille
-1

grenoble * * lyon

-2

* strasbourg

-3

-6
-4
-2
0
2
4
6
PRIN1

Il est possible dobtenir une reprsentation en haute rsolution en utilisant


GPLOT.
76

Il va falloir crer un fichier Work.annoter qui nous permettra dafficher les noms
des villes sur le graphique :
DATA WORK.ANNOTER;
SET WORK.ESSAI;
X=PRIN1;
Y=PRIN2;
TEXT=NOM;
SIZE=1;

On part du fichier ESSAI


On appelle x et y Prin1 et Prin2.
Le texte afficher est le nom de la ville
Taille du texte.

76 On peut se demander pourquoi prsenter la fois un graphique en haute et en basse rsolution. Les graphiques en basse rsolution, sils
sont moins beaux, ont le mrite dtre disponible sur toutes les plateformes de SAS ce qui nest pas le cas pour les graphiques en haute
rsolution. De plus, ces derniers occupent beaucoup despace mmoire. Signalons enfin que le copier-coller de SAS vers Word des
graphiques en haute rsolution ne fonctionne pas (pour limpression). Il faut passer par un logiciel de dessin (Paint ou Paintbrush) et sous
Word choisir Insert/Image.
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 193

XSYS='2';
Pour mettre les noms des villes (Text) en (x,y)
YSYS='2';
LABEL Y='AXE 2'
Etiquette des axes
X='AXE 1';
KEEP X Y XSYS YSYS TEXT SIZE;
On ne conserve que les variables utiles
RUN;
TITLE 'PREMIER PLAN PRINCIPAL'; TITRE DU GRAPHIQUE.
PROC GPLOT DATA=WORK.ANNOTER;
PLOT Y*X=1 / ANNOTATE=WORK.ANNOTER HREF=0 VREF=0;
RUN;
Pour tracer les axes
QUIT;
passant par O

Si le graphique prcdent ne vous plait pas, vous pouvez galement transfrer les
donnes sous Excel (File/Export ou liaison DDE) et effectuer le graphique sous
Excel.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 194

c)

Interprtation des composantes principales - Cercle des corrlations


Pour interprter les composantes principales, il peut tre intressant de calculer
le coefficient de corrlation entre chaque composante et les variables du fichier.
Nous distinguerons deux types de variables, les variables utilises dans les calculs
et les autres appeles variables supplmentaires.
Nous allons ensuite reprsenter graphiquement chaque variable par un point dont
les coordonnes sont les coefficients de corrlation avec la premire puis la
deuxime composante principale. 1
Composante 2

JAN

-1

0.644=r(c 2,Jan)

-0.761=r(c 1,Jan)

Composante 1

Ainsi Cor(Composante1,Jan)= -0.761 et Cor(Composante2,Jan)=0.644 donc la


variable Janvier aura pour coordonnes (-0.761,0.644).
Remarque fondamentale :
On peut montrer aisment que, dans le cas de lACP norme, le cercle des
corrlations prcdent nest pas quune simple reprsentation graphique mais
galement la projection de lensemble des variables centres rduites dans le
plan engendr par les deux composantes principales.
Une variable sera bien reprsente par cette projection lorsque son point variable
sera proche de la circonfrence.
77

Nous allons calculer les corrlations (PROC CORR) entre les composantes
principales (PRIN1 et PRIN2) et les variables statistiques dont nous disposons.

77 Soit Li la longueur de Vi le ieme vecteur variable projet. Alors Li=r2(C1,Vi)+ r2(C2,Vi) or C1 et C2 ne sont pas corrles donc Li=r2(Vi ; C1,
C2) le coefficient de dtermination entre Vi et (C1, C2). Lorsque Vi est combinaison linaire de (C1, C2) alors Li=r2(Vi ; C1, C2)=1 donc le point
variable est sur le cercle et rciproquement. Dans la pratique il faut de mfier de linterprtation de la proximit entre des points variables si
ceux-ci ne sont pas proches de la circonfrence.
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 195

Vous pourrez utiliser le programme suivant, en le compltant, pour calculer de


nouvelles variables utiles pour l'interprtation.
PROC PRINCOMP DATA=PUB.ACP OUT=ESSAI NOPRINT;
VAR JAN FEV MAR AVR MAI JUN JUI AOU SEP OCT NOV DEC;
RUN;
DATA FINAL;
SET ESSAI;
MOY=MEAN(JAN,FEV,MAR,...,DEC);
AMPLI=MAX(JAN,FEV,MAR,...,DEC)-MIN(JAN,FEV,MAR,...,DEC);
RUN;
PROC CORR DATA=FINAL OUTP=ESSAI2 ;
VAR PRIN1 PRIN2;
WITH JAN FEV MAR AVR MAI JUN JUI AOU SEP OCT NOV DEC MOY AMPLI;
RUN;
PROC PRINT DATA=ESSAI2 ; RUN ;
/* la procdure prcdente affiche les coefficients de corr.*/
/* entre les composantes principales et les variables de
tempratures ainsi que la p valeur du test de nullit */
/* Cration dun fichier de donnes en vue de dessiner un cercle*/
/* des corrlations*/
DATA MOI.CERCLE;
SET ESSAI2 (WHERE=(_TYPE_='CORR'));
DROP _TYPE_;
RUN;
PROC PLOT DATA=MOI.CERCLE;
PLOT PRIN2*PRIN1= '*' $ _NAME_;
RUN;

Le fichier ESSAI2 contient entre autres les coefficients de corrlation entre les
composantes principales et les variables du fichier :

JAN
FEV
MAR
AVR
MAI
JUN
JUI
AOU
SEP
OCT
NOV
DEC
MOY
AMPLI

PRIN1

PRIN2

0.76124
0.88046
0.96877
0.96934
0.87276
0.86357
0.84153
0.89861
0.97403
0.98016
0.90375
0.77433
0.99972
0.10106

0.64434
0.46908
0.15601
-0.20367
-0.47471
-0.49935
-0.53142
-0.42994
-0.20810
0.17046
0.41393
0.62430
0.02135
-0.98568

Variables
supplmentaires

Nous pouvons reprsenter cela graphiquement ce qui donne :

0.8

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 196

JAN ** DEC
0.6

* FEV

0.4
* NOV

0.2
OCT

MAR **
PRIN2

MOY *
0.0

-0.2
SEP * AVR

-0.4

* AOU

JUN ** MAI

* JUI

-0.6

-0.8

-1.0
* AMPLI

0.0
0.2
0.4
0.6
0.8
1.0
PRIN1

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 197

et pour la haute rsolution , nous devons modifier le fichier Moi.cercle.


...
78

PROC CORR DATA=FINAL OUTP=ESSAI2 NOPRINT;


VAR PRIN1 PRIN2;
WITH JAN FEV MAR AVR MAI JUN JUI AOU SEP OCT NOV DEC MOY AMPLI;
RUN;
DATA MOI.CERCLE;
SET ESSAI2 (WHERE=(_TYPE_='CORR'));
X=PRIN1;
Y=PRIN2;
TEXT=_NAME_;
XSYS='2';
YSYS='2';
LABEL X='AXE 1'
Y='AXE 2';
KEEP X Y XSYS YSYS TEXT;
RUN;
TITLE "CERCLE DES CORRELATIONS";
PROC GPLOT DATA=MOI.CERCLE;
PLOT Y*X=1 / ANNOTATE=MOI.CERCLE HREF=0 VREF=0
HAXIS=-1 TO 1 BY .5 VAXIS=-1 TO 1 BY .5;
RUN;
Nous spcifions des axes horizontaux et
QUIT;
verticaux sur [-1 ;1]

Variables
supplmentaires

Les variables supplmentaires choisies nous permettent dinterprter facilement


les axes principaux.

78 Pour transfrer ce graphique en haute rsolution de SAS vers Word, il faut passer par Paint (Edition/Copier vers puis sous Word
Insere/Image) sinon, limpression nous rserve quelques surprises...
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 198

d)

Calcul des contributions des individus


Il est ncessaire de sassurer que la direction des axes principaux na pas t fixe
par un petit nombre dindividus atypiques. Pour cela, on calcule les contributions
des individus pour chaque axe principal.
Calcul
On a vu que linertie du nuage projet sur un axe est gal la valeur propre
associe cet axe. Cette inertie est aussi gale la moyenne des carrs des
coordonnes des individus sur cet axe. (voir la remarque ci-dessous pour
certains logiciels)

Ainsi chaque individu contribue linertie de laxe en question. Plus il est


loign de lorigine plus il contribue, et plus il est proche de O moins il
contribue.
On a donc la contribution de lindividu j laxe i :
Contributi on de l'indiv idu j l' axe i =

x 2j ,i
( n 1)i

o i est la valeur

propre associe laxe i, xj,i la coordonne de lindividu j sur laxe i et n le


nombre dindividus.
La somme de ces contributions tant gale 1 pour chaque axe.
(Rq :On peut multiplier ce nombre par 100 pour obtenir des %)

Remarque : Pour certains logiciels (comme SAS et Minitab) on a

2
j ,i

n 1

= i

, il se

peut donc que les coordonnes sur les axes fournies par dautres logiciels (Statlab) ne
correspondent pas avec celles fournies par SAS et Minitab. Par contre les qualits, les
contributions sont rigoureusement identiques !

Ce calcul permet de reprer les individus contribuant fortement des axes...


remettant ainsi fortement an cause leur interprtation.
Mise en pratique
Effectuez le calcul sous SAS en ajoutant 2 lignes au programme prcdent
(contri1=... contri2=...) et vrifiez que lon obtient bien pour les deux
premires villes :
contribution laxe 1 (en %)

Bordeaux
Brest

6.7759
3.5789

contribution laxe 2 (en %)

0.0350
49.0692

La ville de Bordeaux contribue 6.8% de linertie du premier axe.


Ceci montre aussi que la ville de Brest contribue 49% de linertie du
deuxime axe principal ce qui est beaucoup.
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 199

Il serait intressant de placer cette ville en individu supplmentaire et de


regarder si nous conservons linterprtation prcdente.
e)

Individu supplmentaire
Comme nous lavons dit, nous allons mettre Brest en individu
supplmentaire. Brest ne sera donc plus utilis dans les calculs, mais nous
lafficherons dans le premier plan principal.
Pour cela, il suffit de lui affecter un poids ngatif.

LACP
seffectuera en
tenant compte
du poids de
chaque individu.

DATA WORK.ACPBREST;
SET MOI.ACP;
W=1;
IF NOM='BREST' THEN W=-1;
RUN;

Nous affectons
Brest dun poids
ngatif

PROC PRINCOMP DATA=WORK.ACPBREST OUT=WORK.ESSAI;


WEIGHT W;
VAR JAN FEV MAR AVR MAI JUN JUI AOU SEP OCT NOV DEC;
RUN;
DATA WORK.ANNOTER;
SET WORK.ESSAI;
X=PRIN1;
Y=PRIN2;
TEXT=NOM;
SIZE=1;
XSYS='2';
Lindividu supplmentaire
YSYS='2';
sera affich en rouge (les
COLOR='BLUE';
autres en bleu)
IF W=-1 THEN COLOR='RED';
LABEL Y='AXE 2'
X='AXE 1';
KEEP X Y XSYS YSYS TEXT SIZE COLOR;
RUN;
TITLE 'PREMIER PLAN PRINCIPAL';
PROC GPLOT DATA=WORK.ANNOTER;
PLOT Y*X=1 / ANNOTATE=WORK.ANNOTER HREF=0 VREF=0;
RUN;
QUIT;

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 200

Nous obtenons :

PRIN1
PRIN2
PRIN3
PRIN4

Eigenvalue

Difference

Proportion

Cumulative

10.6035
1.2444
0.0761
0.0454

9.35905
1.16837
0.03066
0.02987

0.883625
0.103704
0.006340
0.003785

0.88362
0.98733
0.99367
0.99745

La reprsentation graphique est la suivante :

Les interprtations ne sont pas modifies. Nous allons maintenant calculer


les qualits de reprsentation des individus.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 201

f)

Qualit de reprsentation des individus sur le premier plan principal


Nous avons dj vu que la qualit globale tait excellente, nous allons maintenant
regarder pour chaque individu ce qu'il en est. Un point sera bien reprsent
lorsqu'il sera "proche" du plan en question. Cette qualit se mesure l'aide de
2
OPi
Y1 (i ) 2 + Y2 (i ) 2
=
. o M*i est le ime individu (centr rduit) et Pi sa
2
2
OM i*
OM i*
projection sur le premier plan principal. (Pi a pour coordonnes (Y1(i), Y2(i)) dans le
premier plan principal)

Que reprsente ce nombre ? (Vous pourrez vous aider du graphique qui suit)
M*i
Premier plan
principal

Pi
O

Plus ce nombre est proche de 1, et plus M*i est proche de Pi, et meilleure est
la qualit de reprsentation de l'individu en question.
Pour calculer ce nombre, il faut centrer et rduire les variables , c'est ce que fait
la procdure suivante: (PROC STANDARD)
79

79 En effet, comme nous avons pris la matrice des corrlations, cela revient dire que nous avons centrs rduits nos variables de dpart
avant deffectuer les calculs. Le plan principal retenu est donc le plan donnant une image dformant le moins le nuage des individus (centrs
rduits) initial. Pour obtenir plus dinformations sur le choix entre la matrice de corrlation et la matrice de covariance, nous vous renvoyons
la bibliographie: (Escoffier et Pages notamment.)
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 202

L.

STANDARD , normalisation de variables


(pour obtenir entre autres, des variables centres rduites...)
Syntaxe simplifie
PROC STANDARD options;
VAR variables;
BY variables;
FREQ variable
RUN;

DATA, OUT, STD et MEAN sont les options les plus fondamentales
Variables transformer
Sens habituel
Idem

Quelques options de la procdure Standard


Fichier de donnes
DATA=nom du fichier de donnes SAS
Fichier de donnes SAS sur lequel s'effectuera le calcul.
Sauvegarde des rsultats
OUT=nom de fichier SAS
Cre un fichier SAS contenant toutes les donnes originales ainsi que les
variables centres rduites. Si cette option n'est pas spcifie, SAS va
crer de lui-mme un fichier de donnes rsultat.
Paramtrisation
MEAN= moyenne des nouvelles variables. (par dfaut la moyenne de la variable initiale)
STD= ecart-type des nouvelles variables; (par dfaut l'cart-type de la variable initiale)
NOTE: Si MEAN et STD ne sont pas prcises, les nouvelles variables seront
rigoureusement identiques aux prcdentes.
REPLACE les valeur manquantes seront remplace par la valeur MEAN
Affichage des rsultats
PRINT
Affiche les moyennes, cart-types pour les variables transformes.
Diviseur utilis pour le calcul de la variance
VARDEF=
DF Degrs de liberts (n-1) C'est l'option par dfaut.
N Nombre d'observations (n)
WEIGHT Somme des poids
WDF
Somme des poids -1.
Exemple
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 203

PROC STANDARD data=moi.essai out=moi.essai mean=0 std=1;


VAR JAN FEV;
RUN;

Ce programme va centrer rduire les variables jan et fev du fichier moi.essai.


Note: En choisissant OUT=MOI.ESSAI, j'impose SAS de remplacer les
variables initiales de ce fichier par les variables centres rduites.
80

Application, qualit de reprsentation des individus sur le premier plan principal


Nous allons centrer rduire les variables Janvier dcembre puis nous allons crer
un nouveau fichier contenant la somme des carrs de chaque ligne. Nous aurons
ainsi le dnominateur de la quantit calculer.
Comprenez ce que fait le programme suivant:
PROC PRINCOMP DATA=PUB.ACP OUT=WORK.ESSAI;
VAR JAN FEV MAR AVR MAI JUN JUI AOU SEP OCT NOV DEC;
RUN;
PROC STANDARD DATA=WORK.ESSAI OUT=WORK.ESSAI MEAN=0 STD=1;
VAR JAN FEV MAR AVR MAI JUN JUI AOU SEP OCT NOV DEC;
RUN;
DATA WORK.ESSAI2;
SET WORK.ESSAI;
DENOM= USS(JAN,FEV,MAR,AVR,MAI,JUN,JUI,AOU,SEP,OCT,NOV,DEC);
NUMER=USS(PRIN1,PRIN2);
QUAL=NUMER/DENOM;
KEEP NUMER DENOM QUAL NOM;
RUN;

Compltez votre programme pour obtenir la qualit de reprsentation des


individus dans le premier plan principal.

80 Si je ne souhaite pas perdre les donnes initiales, je change de nom du fichier, si je ne mets rien, SAS va crer un nouveau fichier pour y
stocker les rsultats.
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 204

Vous vrifierez avec le tableau ci-dessous.


OBS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

NOM
bordeaux
brest
clermont
grenoble
lille
lyon
marseille
montpellier
nantes
nice
paris
rennes
strasbourg
toulouse
vichy

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

DENOM
9.6014
20.4850
3.1598
5.0886
17.0827
3.6525
22.6076
16.2854
1.3081
34.3644
1.6187
4.6010
20.2825
2.9534
4.9088

Page 205

NUMER
9.1007
20.4391
3.1080
4.8419
16.9268
3.6352
22.4393
16.2303
1.2333
34.2603
1.4624
4.5382
20.1363
2.8306
4.8323

QUAL
0.94785
0.99776
0.98359
0.95152
0.99088
0.99526
0.99255
0.99662
0.94278
0.99697
0.90345
0.98636
0.99279
0.95841
0.98442

M.

CLUSTER : Classification dindividus


Cest une mthode complmentaire lACP cest pourquoi nous allons la
prsenter ici.
Dans le paragraphe prcdent (Proc Princomp), vous avez tabli une typologie
des villes partir des donnes de tempratures. Nous allons essayer de retrouver
cette typologie en utilisant lalgorithme de classification ascendante hirarchique.

1.

But
Le but de la mthode est de construire une partition de lensemble des
individus de telle sorte que les individus dune mme classe soient proches et
ceux issus classes distinctes soient loigns .

2.

Choix de la distance
Pour savoir si des individus sont proches ou loigns, il faut mesurer la
distance qui les spare. Nous devons donc choisir une distance. Pour nos donnes
quantitatives, nous choisirons la distance euclidienne qui est celle que vous
connaissez bien.
81

3.

Qualit de la typologie
Considrons notre population initiale Q dcompose en p classes Q1,Q2,...,Qp.
Nous supposons que la sous-population Qi deffectif ni a pour barycentre le point
Gi. Enfin, notons G le barycentre du nuage complet.
Q
Q1

Q3

+ +
+ + +G1 + +
+ +
+

G
Q2

++
+ +G
+ +
2
+ + + + +
+ +

+
+ + +
+ + G3 + +
++ + +
+ +

Pour mesurer la qualit dun dcoupage en classe, nous allons utiliser une
dcomposition de linertie totale dun nuage de point qui ressemble beaucoup la
dcomposition de la variance :

81 Pour des donnes qualitatives ayant plus de deux modalits, la distance du chi deux semble plus indique. Cf. Saporta P257
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 206

I tot

1 p
1 p
2
=
ni Inertie (Qi )
n d (Gi , G ) + n 1
n 1 i =1 i
i =1
Inertie inter-classes
Inertie intra-classes

Lorsquil ny a quune seule classe, linertie inter-classes est nulle, linertie


totale est gale linertie intra-classes. Inversement lorsque chaque classe ne
contient quun individu, linertie intra-classes est nulle et linertie inter-classes est
gale linertie totale. Linertie intra-classe mesure lhomognit des classes.
Plus elle est faible, plus les individus sont proches les uns des autres dans les
classes donc plus les classes sont homognes.
On mesure la qualit dune partition par le rapport

Inertie in ter - classes


Inertie to tale

qui

doit tre le plus lev possible .

4.

Algorithme
Nous allons partir du dcoupage maximum (un individu par classe), linertie
intra-classes est donc nulle, les classes ont une homognit parfaite !
Nous allons chaque tape regrouper les classes les plus proches de faon
augmenter le moins possible linertie intra-classes.
82

A la dernire tape, nous naurons quune seule classe. Il est vident que le
meilleur dcoupage en classe se trouve entre ces deux tapes extrmes. Dans
la pratique, nous nous arrtons lorsque nous voyons une augmentation brutale
du critre.
Lorsque les classes Qi et Qj sont regroupes la diminution dinertie interclasses est gale d (Qi , Q j ) =

ni n j
(n 1)( ni + n j )

d (Gi , G j ) 2 . A chaque tape de

lalgorithme, nous allons chercher a regrouper les classes qui minimisent cette
quantit cest ce quon appelle le critre de Ward.

82 Ou, ce qui revient au mme, diminuer le moins possible linertie inter-classes.


IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 207

5.

Mise en uvre (Proc CLUSTER)

a)

Syntaxe simplifie
PROC CLUSTER METHOD=nom de mthode options ;
VAR variables ;
BY variable ;
RUN ;
Choix de la mthode
SAS connat 11 mthodes diffrentes pour effectuer la classification.
AVERAGE, CENTROID, COMPLETE, DENSITY, EML, FLEXIBLE,
MCQUITTY, MEDIAN, SINGLE, TWOSTAGE, WARD.
Dans lexemple qui nous intresse, nous allons utiliser le critre de Ward.
Les principales options tant
DATA= Nom de fichier de donnes SAS
Pour spcifier un nom de fichier de donnes traiter.
OUTTREE=Nom de fichier de donnes SAS
Pour indiquer un fichier de donnes o SAS mettra les rsultats des calculs
de la procdure CLUSTER. Ces rsultats pourront tre rcuprs par la
procdure PROC TREE qui permet deffectuer un dcoupage en classes des
donnes, de tracer un pseudo dendrogramme etc.
STANDARD
Pour demander SAS de travailler sur les donnes centres rduites.
83

NOTIE
Pour demander SAS de ne pas vrifier lexistence d exaequos.

84

RSQUARE
Pour afficher le R qui est lindice mesurant la qualit de la classification
dont nous parlions plus haut (Inertie inter classes/Inertie totale). Cette
option est automatiquement active pour METHOD=WARD. SAS affiche
galement un R partiel qui est en fait la perte de R chaque tape.
85

NOPRINT
Supprime laffichage.
SIMPLE
Affiche des statistiques de base sur les variables initiales.
83 Pseudo car il faut vraiment beaucoup dimagination pour le reconnatre !
84 Par dfaut, SAS vrifie sil y a des exaequos dans les distances entre classes ce qui ralentit lexcution de lalgorithme. Cette option
supprime cette vrification.
85 Ce R partiel est trs pratique pour dtecter les sauts importants de lindicateur et donc le nombre de classes conserver en final.
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 208

b)

Le programme
Nous allons donc taper le programme suivant :
proc cluster data=pub.acp method=ward standard;
var jan fev mar avr mai jun jui aou sep oct nov dec;
run;

Les deux mots WARD et STANDARD sont fondamentaux ici bien entendu.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 209

c)

Rsultats
SAS donne alors la diagonalisation de la matrice des corrlations.

86

Ward's Minimum Variance Cluster Analysis


Eigenvalues of the Correlation Matrix
Eigenvalue
9.58178
2.27642
0.07001
0.03967
0.01405
0.00798
0.00605
0.00175
0.00149
0.00049
0.00029
0.00002

1
2
3
4
5
6
7
8
9
10
11
12

Difference
7.30536
2.20640
0.03034
0.02563
0.00606
0.00193
0.00430
0.00025
0.00100
0.00021
0.00027
.

Proportion
0.798482
0.189702
0.005835
0.003306
0.001170
0.000665
0.000504
0.000146
0.000124
0.000041
0.000024
0.000002

Cumulative
0.79848
0.98818
0.99402
0.99732
0.99849
0.99916
0.99966
0.99981
0.99993
0.99997
1.00000
1.00000

The data have been standardized to mean 0 and variance 1

Etapes de lalgorithme

Number
of
Clusters

Diminution de
R chaque
tape

Effectif de la
nouvelle classe

Nombre de classes
Classes runies

--Clusters Joined--

Frequency
of New
Cluster

Inertie inter-cl/
Inertie totate.

Semipartial
R-Squared

R-

Squared
14

OB3

OB15

0.000812

13

OB7

OB8

0.002052

12

OB4

OB6

0.002141

11

CL14

OB11

0.003951

10

OB9

OB12

0.004746

OB1

OB14

0.007447

CL11

CL12

0.013823

CL13

OB10

0.016475

OB5

OB13

0.022101

OB2

CL10

0.035062

CL9

CL7

0.046949

CL8

CL6

0.057419

CL5

CL3

10

0.130226

CL4

CL2

15

0.656796

0.999188
0.997137
0.994996
0.991044
0.986298
0.978851
0.965028
0.948552
0.926452
0.891390
0.844440
0.787021
0.656796
0.000000

Nous partons avec un R 100%. Linertie inter classe est en effet gale
linertie totale.
86 Nous avons dj interprt ce type de sortie en ACP.
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 210

Lisons ltape 1 de lalgorithme : Les individus les plus proches sont le 3 et le


15. Les classes 3 et 15 sont donc runies pour former une nouvelle classe : CL14
dans laquelle il y a deux individus. Il ny a donc plus que 14 classes. Cette
runion diminue le R de 0.000812 pour le placer 0.999188.
87

A ltape 2, ce sont les individus 7 et 8 qui sont runis pour former CL13 etc.
Nous voyons clairement un saut brutal de R ltape 13. Le semi partial R
passe de 0.05 0.13. Ceci nous confirme dans une partition 3 classes (tape
12) que nous avions cru discerner lors de lACP.

87 Rappel : A ltape 0, il y a 15 classes, un seul individu par classe.


IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 211

d)

Partition en classes utilisation de PROC TREE


Pour obtenir une variable contenant les affectations des individus dans les
classes, il va falloir demander SAS de crer un fichier de rsultats dans PROC
CLUSTER et le rcuprer pour tre traiter par la procdure TREE qui elle mme
donnera un fichier avec la classe de chaque individu !
88

/*Nous effectuons le decoupage en classes par la methode de Ward*/


PROC CLUSTER DATA=PUB.ACP METHOD=WARD STANDARD OUTTREE=RESULT2;
VAR JAN FEV MAR AVR MAI JUN JUI AOU SEP OCT NOV DEC ;
RUN;
/*On rcupre les resultats prcdents pour construire*/
/* le dcoupage en classes (nclusters=3 prcise que */
/* nous voulons trois classes ici)*/
/* Le COPY effectue la copie des variables jan fev etc.*/
/* dans le fichier de rsultats*/
PROC TREE DATA=RESULT2 OUT=RESULT3 NCLUSTERS=3 NOPRINT;
COPY JAN FEV MAR AVR MAI JUN JUI AOU SEP OCT NOV DEC;
RUN;
/*Nous recalculons les composantes principales pour pouvoir */
/*faire dessiner le premier plan principal en visualisant les 3*/
/*classes calculees ci-dessus*/
PROC PRINCOMP DATA=RESULT3 OUT=RESULT4;
VAR JAN FEV MAR AVR MAI JUN JUI AOU SEP OCT NOV DEC;
RUN;
/*Nous creons le fichier temporaire annoter qui va nous permettre*/
/* de personnaliser notre graphique */

DATA WORK.ANNOTER;
SET RESULT4;
X=PRIN1;
Y=PRIN2;
TEXT=_NAME_; /*CONTIENT LE N D'OBSERVATION*/
SIZE=1;
XSYS='2';
YSYS='2';
IF CLUSTER=1 THEN COLOR='BLUE'; /*couleurs differentes
IF CLUSTER=2 THEN COLOR='RED';
IF CLUSTER=3 THEN COLOR='CYAN';
LABEL Y='AXE 2'
X='AXE 1';
KEEP X Y XSYS YSYS TEXT SIZE CLUSTER COLOR ;
RUN;

selon

le groupe*/

TITLE 'PREMIER PLAN PRINCIPAL';


PROC GPLOT DATA=WORK.ANNOTER;
PLOT Y*X=CLUSTER / ANNOTATE=WORK.ANNOTER HREF=0 VREF=0;
RUN;
QUIT;

Le fichier RESULT4 contient entre autres :


Composantes
principales

88 La simplicit lgendaire de SAS...


IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 212

O
B
S
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

_
N
A
M
E
_
OB3
OB15
OB7
OB8
OB4
OB6
OB11
OB9
OB12
OB1
OB14
OB10
OB5
OB13
OB2

N de classe

N dobservation (par rapport


au fichier initial)

J
A
N
2.6
2.4
5.5
5.6
1.5
2.1
3.4
5.0
4.8
5.6
4.7
7.5
2.4
0.4
6.1

F
E
V

M
A
R

A
V
R

M
A
I

J
U
N

J
U
I

A
O
U

S
E
P

O
C
T

N
O
V

D
E
C

C
L
U
S
T
E
R

P
R
I
N
1

3.7 7.5 10.3 13.8 17.3 19.4 19.1 16.2 11.2 6.6 3.6 1 -1.66741
3.4 7.1 9.9 13.6 17.1 19.3 18.8 16.0 11.0 6.6 3.4 1 -2.12684
6.6 10.0 13.0 16.8 20.8 23.3 22.8 19.9 15.0 10.2 6.9 2 4.66885
6.7 9.9 12.8 16.2 20.1 22.7 22.3 19.3 14.6 10.0 6.5 2 4.00667
3.2 7.7 10.6 14.5 17.8 20.1 19.5 16.7 11.4 6.5 2.3 1 -1.47740
3.3 7.7 10.9 14.9 18.5 20.7 20.1 16.9 11.4 6.7 3.1 1 -0.80663
4.1 7.6 10.7 14.3 17.5 19.1 18.7 16.0 11.4 7.1 4.3 1 -1.19983
5.3 8.4 10.8 13.9 17.2 18.8 18.6 16.4 12.2 8.2 5.5 3 -0.27175
5.3 7.9 10.1 13.1 16.2 17.9 17.8 15.7 11.6 7.8 5.4 3 -1.38987
6.6 10.3 12.8 15.8 19.3 20.9 21.0 18.6 13.8 9.1 6.2 2 3.01489
5.6 9.2 11.6 14.9 18.7 20.9 20.9 18.3 13.3 8.6 5.5 2 1.67730
8.5 10.8 13.3 16.7 20.1 22.7 22.5 20.3 16.0 11.5 8.2 2 5.80335
2.9 6.0 8.9 12.4 15.3 17.1 17.1 14.7 10.4 6.1 3.5 1 -4.07384
1.5 5.6 9.8 14.0 17.2 19.0 18.3 15.1 9.5 4.9 1.3 1 -3.96639
5.8 7.8 9.2 11.6 14.4 15.6 16.0 14.7 12.0 9.0 7.0 3 -2.19110

P
R
I
N
2
-0.57244
-0.55571
-0.80070
-0.42059
-1.63071
-1.72759
-0.15104
1.07677
1.61446
0.10559
-0.13151
0.76254
0.57502
-2.09860
3.95451

P
R
I
N
3
-0.01846
0.19877
0.34449
0.17704
-0.13283
-0.02220
-0.21079
-0.22045
-0.14715
-0.69639
0.04190
0.19787
0.34381
0.03340
0.11099

ainsi que les autres composantes principales. Nous voyons ainsi que la premire
classe contient les individus 3,15,11,4,6,5 et 13 etc.
Nous pouvons maintenant visualiser le dcoupage en classes sur le premier plan
principal.

Ce qui correspond bien ce que nous avions trouv en ACP.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 213

6.

Exercice
Le fichier Banque (rpertoire PUBLIC) contient les informations suivantes
concernant 50 clients de la banque SGCM.
SOLD: Solde moyen du compte courant (en F)
CHEQ: Montant moyen des chques tirs lors du dernier semestre (en F.)
NDEC: Nombre de mois avec dcouvert sur le compte courant lors de l'anne
prcdente.
MDEC: Montant cumul des dcouverts sur le compte courant lors de l'anne
prcdente(en KF)
NBPR: Nombre de produits de la banque utiliss en plus du compte courant.
NEMP: Nombre d'emprunts divers effectus lors des cinq dernires annes.
MEMP: Montant total des emprunts effectus lors des cinq dernires annes (en
KF)
VADD Pourcentage de variation des dpts d'pargne (pour les douze derniers
mois)
DEPO: Montant total des dpts effectus l'anne prcdente sur les comptes
d'pargne (en KF)
RETR: Montant total des retraits effectus sur les comptes d'pargne l'anne
prcdente (en KF)
VARR: Pourcentage de variation des retraits sur les comptes d'pargne (pour les
12 derniers mois)
TAIL: Taille du mnage du titulaire du compte courant
AGEC: Age du client titulaire du compte courant.
Problme :
La banque souhaite dfinir des types homognes de clients afin de pouvoir
laborer des politiques diffrencies pour chacun d'eux.
A vous...
1) Effectuez une ACP norme sur les variables bancaires (les 11 premires).
Combien de composantes allez-vous retenir a priori ?
2) Calculer les corrlations entre les composantes principales retenues et les
variables du fichier, en dduire une interprtation bancaire de ces
composantes principales.
3) Calculez les contributions des individus aux axes. Pourquoi ne peut-on pas
utiliser le 4eme axe pour une interprtation globale ?
4) Avec les lments que vous avez, identifiez les grands types de clients de cette
banque.
5) Confirmez votre typologie par une classification ascendante hirarchique.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 214

N.

CORRESP Analyse des correspondances simples


Cest une mthode permettant danalyser la liaison entre deux variables qualitatives A
et B avec respectivement p et q modalits. Elle permet daffiner le test du chi2
dindpendance que vous connaissez bien. On note n le nb total dindividus.
Exemple : Tableau de la rpartition de 10000 (=n) tudiants en fonction de la CSP de leur
pre en 1975-1976.
Droit
Exploitant
Salari ag.
Patron
Cadre sup.
Ca. Moy.
Employ
Ouvrier
Pers. serv.
Autres
Total

Eco

80
6
168
470
236
145
166
16
305
1592

36
2
74
191
99
52
64
6
115
639

Lettres Sciences Mdecine Pharma Pluri


IUT
Total
134
99
65
28
11
58
511
15
6
4
1
1
4
39
312
137
208
53
21
62
1035
806
400
876
164
45
79
3031
493
264
281
56
36
87
1552
281
133
135
30
20
54
850
401
193
127
23
28
129
1131
27
11
8
2
2
8
80
624
247
301
47
42
90
1771
3093
1490
2005
404
206
571 10000

Nous tudions donc ici une population de 10000 personnes sur lesquelles agissent
deux variables qualitatives : A : CSP Pre et B : Type dtude.
La variable A comporte 9 modalits (p=9) et B 8 modalits (q=8).
Plan dtude
Du tableau prcdent, nous pouvons tirer trois tableaux de frquences : Celui des
frquences totales, des frquences lignes et des frquences colonnes. Nous
pourrons ensuite, laide dune ACP sur les tableaux de frquences lignes et
dune autre sur les frquences colonnes, synthtiser la liaison entre nos variables.
Du tableau de contingence prcdent, nous pouvons dduire le tableau de
frquences en divisant les effectifs par 10000.
Exploitant
Salari ag.
Patron
Cadre sup.
Ca. Moy.
Employ
Ouvrier
Pers. serv.
Autres
Total

Droit
Eco
Lettres Sciences Mdecine Pharma Pluri
IUT
Total
0,0080 0,0036 0,0134
0,0099
0,0065 0,0028 0,0011 0,0058 0,0511
0,0006 0,0002 0,0015
0,0006
0,0004 0,0001 0,0001 0,0004 0,0039
0,0168 0,0074 0,0312
0,0137
0,0208 0,0053 0,0021 0,0062 0,1035
0,0470 0,0191 0,0806
0,0400
0,0876 0,0164 0,0045 0,0079 0,3031
0,0236 0,0099 0,0493
0,0264
0,0281 0,0056 0,0036 0,0087 0,1552
0,0145 0,0052 0,0281
0,0133
0,0135 0,0030 0,0020 0,0054 0,0850
0,0166 0,0064 0,0401
0,0193
0,0127 0,0023 0,0028 0,0129 0,1131
0,0016 0,0006 0,0027
0,0011
0,0008 0,0002 0,0002 0,0008 0,0080
0,0305 0,0115 0,0624
0,0247
0,0301 0,0047 0,0042 0,0090 0,1771
0,1592 0,0639 0,3093
0,1490
0,2005 0,0404 0,0206 0,0571
1

On peut voir que 5,11% des tudiants de lchantillon ont un pre exploitant et
que 20% font des tudes de mdecine. On peut galement lire que 1,64% des
individus ont un pre cadre sup. et font des tudes de mdecine.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 215

1.

tude des profils lignes

a)

Tableau des profils lignes


Nous pouvons diviser chaque ligne par le total correspondant pour obtenir des
frquences lignes 89:
Exploitant
Salari ag.
Patron
Cadre sup.
Ca. Moy.
Employ
Ouvrier
Pers. serv.
Autres

Droit
Eco
Lettres Sciences Mdecine Pharma Pluri
IUT
Total
0,1566 0,0705 0,2622
0,1937
0,1272 0,0548 0,0215 0,1135
0,1538 0,0513 0,3846
0,1538
0,1026 0,0256 0,0256 0,1026
0,1623 0,0715 0,3014
0,1324
0,2010 0,0512 0,0203 0,0599
0,1551 0,0630 0,2659
0,1320
0,2890 0,0541 0,0148 0,0261
0,1521 0,0638 0,3177
0,1701
0,1811 0,0361 0,0232 0,0561
0,1706 0,0612 0,3306
0,1565
0,1588 0,0353 0,0235 0,0635
0,1468 0,0566 0,3546
0,1706
0,1123 0,0203 0,0248 0,1141
0,2000 0,0750 0,3375
0,1375
0,1000 0,0250 0,0250 0,1000
0,1722 0,0649 0,3523
0,1395
0,1700 0,0265 0,0237 0,0508

Ces nombres correspondent en fait les probabilits conditionnelles sachant la


CSP. Par exemple, pour notre chantillon, la probabilit pour un tudiant de faire
des tudes de mdecine sachant que son pre est cadre sup. est de 28.9% , elle
nest que de 10% avec un pre ouvrier. Nous voyons donc apparatre une liaison
entre les deux variables.90
Nous pouvons donc analyser la liaison entre les deux variables qualitatives CSP et
ETUDE en tudiants les diffrences entre les profils lignes. Il y a indpendance
parfaite entre les deux si tous les profils lignes sont identiques.91
Sous SAS, nous pouvons obtenir les profils lignes en utilisant la procdure FREQ
ou en utilisant la procdure CORRESP avec loption RP (=Row Profile).
PROC CORRESP DATA=MOI.ETUD RP SHORT;
VAR DRO ECO LET SCI MED PHA PLU IUT;
ID CSP;
RUN;

qui nous donne entre autres :


The Correspondence Analysis Procedure
Row Profiles
DRO
ECO
LET
SCI
MED
PHA
PLU
IUT
Exploitant 0.156556 0.070450 0.262231 0.193738 0.127202 0.054795 0.021526 0.113503
Salari ag. 0.153846 0.051282 0.384615 0.153846 0.102564 0.025641 0.025641 0.102564
Patron
0.162319 0.071498 0.301449 0.132367 0.200966 0.051208 0.020290 0.059903
Cadre sup. 0.155064 0.063016 0.265919 0.131970 0.289014 0.054108 0.014847 0.026064
Cadre Moyen 0.152062 0.063789 0.317655 0.170103 0.181057 0.036082 0.023196 0.056057
Employ
0.170588 0.061176 0.330588 0.156471 0.158824 0.035294 0.023529 0.063529
Ouvrier
0.146773 0.056587 0.354553 0.170645 0.112290 0.020336 0.024757 0.114058
Pers. service 0.200000 0.075000 0.337500 0.137500 0.100000 0.025000 0.025000 0.100000
89 Tous les calculs suivants (Profils lignes, colonnes), effectifs observs, thoriques (si indpendance parfaite), chi2 peuvent tre obtenus en
dans la commande Stat/Table/Simple correspondance Analysis/ Indiquer les colonnes du tableau de contingence dans Column of
contingency table puis cliquez sur RESULT vous pouvez alors choisir Row Profile (profil ligne), Column profile, expected (effectifs
attendus...)
90 Nous pouvons quantifier cette liaison en calculant les contributions au chi2 (cf. Test du chi2 dindpendance)
91 Cest dire que toutes les lignes du tableau prcdent sont gales. Ainsi, pour notre chantillon, la probabilit de faire mdecine est la
mme pour toutes les CSP. Ici, ce nest visiblement pas le cas.
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 216

1
1
1
1
1
1
1
1
1

Autres

b)

0.172219 0.064935 0.352343 0.139469 0.169960 0.026539 0.023715 0.050819

ACP sur le tableau des profils lignes


Chaque ligne du tableau prcdent reprsente une CSP. Chaque CSP peut donc
tre considre comme un point de Rq. On peut montrer que linertie92 du nuage
de points ainsi form est gale /n o est gale la statistique du test du
chi2 dindpendance que vous connaissez bien.
Dans le cas dune indpendance parfaite entre les deux variables, le est nul,
tous les points reprsentant les profils lignes sont confondus. Linertie du nuage
est nulle, le nuage tant rduit un point.
Comme en ACP classique, nous allons chercher des axes principaux sur lesquels
nous allons projeter notre nuage en conservant le mieux possible linertie initiale.
Sous SAS, il suffit de taper le programme suivant :
PROC CORRESP DATA=MOI.ETUD RP;
VAR DRO ECO LET SCI MED PHA PLU IUT;
ID CSP;
RUN;

92 Cest la somme des carrs des distances des points du nuage au barycentre du nuage. La distance employe ici est la distance du chi2.

D(X,Y)= (xj-yj)/f.j

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 217

(1)

Nombre daxes retenir


SAS donne :
The Correspondence Analysis Procedure
Inertia and Chi-Square Decomposition
Singular Principal ChiValues Inertias Squares Percents 17 34 51 68 85
----+----+----+----+----+--0.19934 0.03974 397.372 83.72% *************************
0.07384 0.00545 54.517 11.49% ***
0.03361 0.00113 11.297 2.38% *
0.03099 0.00096 9.604 2.02% *
0.01154 0.00013 1.332 0.28%
0.00732 0.00005 0.536 0.11%
0.00103 0.00000 0.011 0.00%
------- ------0.04747 474.668 (Degrees of Freedom = 56)

Linertie totale est gale 0.0475=474668/10000 (=474668)


Nous voyons que 95% de linertie du nuage initial des Profil lignes est expliqu
par les deux premiers axes dont 83.7% pour le premier axe. Il est clair que le
premier axe est essentiel. Nous conserverons aussi le 2eme axe mais ne nous
faisons pas trop dillusions sur lui.
SAS donne ensuite les contributions des CSP la construction des axes et
dautres statistiques fort intressantes :

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 218

Row Coordinates93
Dim1
Dim2
Exploitant
0.232788
0.226391
Salari ag.
0.322778
-.032999
Patron
-.019711
0.029833
Cadre sup.
-.263519
0.023860
Cadre Moyen
0.049553
-.011446
Employ
0.103477
-.033166
Ouvrier
0.334848
0.029924
Pers. service
0.291183
-.021171
Autres
0.068162
-.115071

Summary Statistics for the Row Points


Quality
Mass
Inertia
Exploitant
0.967440
0.051100
0.117335
Salari ag.
0.941372
0.003900
0.009188
Patron
0.211148
0.103500
0.013203
Cadre sup.
0.995147
0.303100
0.449242
Cadre Moyen
0.415316
0.155200
0.020363
Employ
0.893202
0.085000
0.023672
Ouvrier
0.957777
0.113100
0.281163
Pers. service
0.809763
0.008000
0.017740
Autres
0.980096
0.177100
0.068094
Partial Contributions to Inertia for the Row Points
Dim1
Dim2
Exploitant
0.069686
0.480406
Salari ag.
0.010225
0.000779
Patron
0.001012
0.016897
Cadre sup.
0.529681
0.031651
Cadre Moyen
0.009590
0.003730
Employ
0.022904
0.017150
Ouvrier
0.319125
0.018577
Pers. service
0.017070
0.000658
Autres
0.020707
0.430153
Squared Cosines for the Row Points
Dim1
Dim2
Exploitant
0.497195
0.470245
Salari ag.
0.931634
0.009738
Patron
0.064163
0.146984
Cadre sup.
0.987055
0.008092
Cadre Moyen
0.394280
0.021036
Employ
0.809994
0.083208
Ouvrier
0.950188
0.007589
Pers. service
0.805505
0.004258
Autres
0.254570
0.725526

93 Remarquons quelles sont de signe oppos aux coordonnes de Minitab. Ceci vient du choix des vecteurs propres dans la diagonalisation
et cela ne change rien au rsultat final.
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 219

Lgende :

Minitab
Qual
Mass
Inert

SAS
Quality
Mass
Inertia

Interprtation
Qualit globale de reprsentation (somme des cos carrs)
% dindividus ayant choisi la modalit ( f i ,. )
Part dinertie totale explique par la modalit. (

coord (mod

)
2 / n
Coordonne de la modalit sur laxe.
Qualit de reprsentation de lindividu sur laxe. (Cosinus
carr de langle entre lindividu et laxe). Plus ce nombre est
proche de 1 meilleure est cette qualit.
Part dinertie de laxe explique par la modalit. Cest une
f i ,.

Coord
Corr

Coordinates
Squared
cosine

Contr

Partial
contribution
to inertia

i sur axe j) 2

quantit essentielle pour linterprtation des axes. (=

f i ,.
vp

coord(modalit i sur axe j) ) vpj=valeur propre axe j.


(2)

Etude de laxe 1 (Component 1)


Comme nous lavons dit, il conserve 83,7% de linertie initiale. Il est donc
essentiel.
Pour interprter laxe 1, on va chercher les individus ayant une forte
contribution laxe 1 et regarder le signe de leur coordonne sur laxe.
Individus forte contribution sur
Individus forte contribution sur
laxe 1 avec une coordonne ngative. laxe 1 avec une coordonne positive.
Ouvrier (31%)
Cadre sup.(53%)

Laxe 1 oppose donc la CSP Ouvrier la CSP Cadre Sup. Vous pouvez
linterprter facilement.94

94 (Au besoin aidez vous du graphique de la page suivante en utilisant uniquement les points ayant une bonne qualit de reprsentation
(Corr, ou squared cosines)).
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 220

(3)

Etude de laxe 2 (Component 2)


Quel pourcentage dinertie conserve-t-il ? Faites ltude prcdente pour laxe 2.
Individus forte contribution sur
Individus forte contribution sur
laxe 2 avec une coordonne ngative. laxe 2 avec une coordonne positive.

Peut-on trouver une interprtation ici ?95 Vous pourrez vous aider du graphique
suivant.
(4)

Projection du nuage dans le plan des deux premiers axes.


Pour SAS, il faut taper :
/*On relance lAFC en stockant les rsultats dans Work.corr*/
PROC CORRESP DATA=MOI.ETUD OUTC=CORR;
VAR DRO ECO LET SCI MED PHA PLU IUT;
ID CSP;
RUN;
/*Modification de work.corr pour annoter notre graphique*/
DATA CORR;
SET CORR;
IF _TYPE_='OBS'; /*Nous ne prenons que les CSP*/
Y=DIM2;
/*Axe 2 vertical, Axe 1 horizontal*/
X=DIM1;
XSYS='2';
YSYS='2';
TEXT=CSP;
/*CSP contient les noms des categories*/
SIZE=1;
LABEL Y='DIM 2'
X='DIM 1';
KEEP X Y TEXT XSYS YSYS SIZE;
RUN;
/*Nous lancons ensuite GPLOT pour avoir un graphique haute res*/
PROC GPLOT DATA=CORR;
SYMBOL1 V=NONE;
PLOT Y*X=1/ ANNOTATE=CORR FRAME HREF=0 VREF=0;
RUN;
QUIT;

95 La difficult vient du fait que linertie conserve par cet axe est faible.
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 221

Nous pouvons utiliser le graphique prcdent uniquement avec les points bien
reprsents. (QUAL(ou Squared cosine) important, QUAL=CORR axe1 +
CORR axe 2).96
Deux points (bien reprsents) et proches sur ce graphique signifie que les
modalits correspondantes ont des profils qui se ressemblent ou encore que les
barycentre des individus ayant choisis ces modalits sont proches.
Il est maintenant ais dinterprter les deux axes relativement aux CSP.
Nous allons maintenant analyser la liaison en privilgiant la variable Type
dtude.

96 Ici seuls Patron et Cadre Moyen sont mal reprsents. Il ne faut donc pas les inclure dans une interprtation.
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 222

2.

Etude des profils colonnes

a)

Tableau des profils colonnes


Nous pouvons diviser chaque ligne par le total correspondant pour obtenir des
frquences lignes :
Dans le tableau prcdent nous avons privilgi les CSP. Nous allons maintenant
nous intresser la variable ETUDE :
De la mme faon, nous pouvons construire le tableau des frquences colonnes en
divisant chaque lment par la somme de sa colonne.
Exploitant
Salari ag.
Patron
Cadre sup.
Ca. Moy.
Employ
Ouvrier
Pers. serv.
Autres
Total

Droit Eco.
Lettres Sciences Mdecine Pharma Pluri IUT
0,0503 0,0563 0,0433
0,0664
0,0324 0,0693 0,0534 0,1016
0,0038 0,0031 0,0048
0,0040
0,0020 0,0025 0,0049 0,0070
0,1055 0,1158 0,1009
0,0919
0,1037 0,1312 0,1019 0,1086
0,2952 0,2989 0,2606
0,2685
0,4369 0,4059 0,2184 0,1384
0,1482 0,1549 0,1594
0,1772
0,1401 0,1386 0,1748 0,1524
0,0911 0,0814 0,0909
0,0893
0,0673 0,0743 0,0971 0,0946
0,1043 0,1002 0,1296
0,1295
0,0633 0,0569 0,1359 0,2259
0,0101 0,0094 0,0087
0,0074
0,0040 0,0050 0,0097 0,0140
0,1916 0,1800 0,2017
0,1658
0,1501 0,1163 0,2039 0,1576
1,0000 1,0000 1,0000
1,0000
1,0000 1,0000 1,0000 1,0000

Sous SAS, il suffit de taper le programme suivant pour obtenir ce tableau.


(CP=column profile)
PROC CORRESP DATA=MOI.ETUD CP;
VAR DRO ECO LET SCI MED PHA PLU IUT;
ID CSP;
RUN;
Ainsi, les chiffres prcdents correspondent aux probabilits conditionnelles
sachant le type dtude. Par exemple, 9% des tudiants en Droit ont un pre
Employ.
Comme prcdemment, sil y a indpendance parfaite entre les deux variables, les
profils colonnes doivent tous tre gaux.97
Dans ce tableau ce sont les types dtudes qui sont mis en avant.

97 Dans ce cas, on montre que les profils lignes sont eux aussi gaux.
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 223

b)

ACP sur les tableaux de profils colonnes


Comme prcdemment, nous allons effectuer une ACP sur le tableau des profils
colonnes. Nous pouvons montrer le rsultat suivant : Les valeurs propres
obtenues sont les mmes, de plus, les axes principaux des deux ACP sont en
relation directe. Nous pourrons donc ensuite superposer les deux analyses.

(1)

Etude de laxe 1 (Component 1)


Column Coordinates
Dim1
Dim2
DRO
0.003548
-.032659
ECO
-.011480
0.011575
LET
0.090282
-.074258
SCI
0.095562
0.050293
MED
-.313387
0.020203
PHA
-.249015
0.181087
PLU
0.177417
-.062809
IUT
0.477149
0.172698
Summary Statistics for the Column Points
Quality
Mass
Inertia
DRO
0.316593
0.159200
0.011433
ECO
0.064286
0.063900
0.005566
LET
0.984721
0.309300
0.090425
SCI
0.713400
0.149000
0.051312
MED
0.986455
0.200500
0.422290
PHA
0.926296
0.040400
0.087107
PLU
0.952004
0.020600
0.016148
IUT
0.981101
0.057100
0.315720
Partial Contributions to Inertia for the Column Points
Dim1
Dim2
DRO
0.000050
0.031147
ECO
0.000212
0.001570
LET
0.063444
0.312846
SCI
0.034242
0.069130
MED
0.495541
0.015011
PHA
0.063043
0.243011
PLU
0.016318
0.014907
IUT
0.327150
0.312378
Squared Cosines for the Column Points
Dim1
Dim2
DRO
0.003694
0.312899
ECO
0.031876
0.032409
LET
0.587362
0.397359
SCI
0.558664
0.154736
MED
0.982373
0.004083
PHA
0.605882
0.320414
PLU
0.845978
0.106026
IUT
0.867464
0.113637

Pour interprter laxe 1, on va chercher les individus ayant une forte


contribution98 laxe 1 et regarder le signe de leur coordonne sur laxe.
Compltez le tableau suivant :
Individus forte contribution sur
Individus forte contribution sur
laxe 1 avec une coordonne ngative. laxe 1 avec une coordonne positive.
98 Lorsque certains individus ont une trop forte contribution, on recommence ltude en plaant ces individus en supplmentaires. Ils ne sont
plus utiliss dans les calculs mais peuvent tre visualiss sur le graphique et peuvent tre utilis pour linterprtation.
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 224

Interprtez laxe 1 99:


(2)

Etude de laxe 2 (Component 2)


De mme essayez dinterprter laxe 2 sans perdre de vue son faible pourcentage
dinertie explique.
Compltez le tableau suivant :
Individus forte contribution sur
Individus forte contribution sur
laxe 2 avec une coordonne ngative. laxe 2 avec une coordonne positive.

Interprtez laxe 2:

99 En vous servant aussi de la reprsentation graphique des pages suivantes pour les individus bien reprsents par cet axe (CORR
important)
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 225

(3)

Projection du nuage dans le plan des deux premiers axes.


Sous SAS, il suffit de modifier la ligne IF _TYPE_=OBS par IF
_TYPE_=VAR.
PROC CORRESP DATA=MOI.ETUD OUTC=CORR;
VAR DRO ECO LET SCI MED PHA PLU IUT;
ID CSP;
RUN;
DATA CORR;
SET CORR;
IF _TYPE_='VAR';
Y=DIM2;
X=DIM1;
XSYS='2';
YSYS='2';
TEXT=CSP;
SIZE=1;
LABEL Y='DIM 2'
X='DIM 1';
KEEP X Y TEXT XSYS YSYS SIZE;
RUN;
PROC GPLOT DATA=CORR;
SYMBOL1 V=NONE;
PLOT Y*X=1/ ANNOTATE=CORR FRAME HREF=0 VREF=0;
RUN;
QUIT;

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 226

3.

Lien entre les deux analyses


Les valeurs propres des deux ACP prcdentes sont les mmes comme nous
lavons dj dit. On peut montrer que les axes principaux de lune sont les
composantes principales de lautre un facteur multiplicatif prs.
Ceci nous autorise superposer les deux reprsentations graphiques prcdentes
mais en restant trs prudent dans linterprtation dun tel graphique.
Pour SAS, il suffit de supprimer la ligne IF _TYPE_= du programme prcdent.

ATTENTION
Dans le graphique prcdent, nous avons superpos des individus qui
nappartiennent pas au mme espace. En consquence, il est dangereux
dinterprter la proximit entre deux points (mme bien reprsents100) associs
deux variables distinctes101. Par contre, il est possible dinterprter la proximit
entre deux points (bien reprsents102) associs une mme variable
Exemple : Les profils Salari agricole et personnel de service sont
proches ce qui veut dire que les barycentres des tudiants dont le pre est salari
agricole est proche du barycentre des tudiants dont le pre est Personnel de
service . Par contre la proximit de Cadre et de Mdecine ne peut tre
utilise ; tout au moins directement103.
100 Avec un QUAL lev.
101 Tenenhauss utilise les reprsentations barycentriques pour interprter ces proximits. Ceci dpasse le cadre de ce cours.
102 Idem
103 En fait, on peut relier ces deux choses en passant par lintermdiaire de laxe principal (qui est directement li entre les deux ACP).
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 227

Par contre nous pouvons maintenant donner une interprtation complte de laxe
1 et de laxe 2.
Brve synthse des analyses des profils lignes et colonnes
Le premier axe oppose les tudes de mdecine, caractristiques des fils de
professions librales et cadres sup, aux tudes en IUT, caractristiques des fils
douvrier.
Le deuxime axe oppose les fils dexploitant agricole ceux de la CSP Autres
et les tudes de pharmacie et dIUT aux tudes de lettres.
(Saporta p208)

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 228

4.

Syntaxe de PROC CORRESP sous SAS

PROC CORRESP options ;


TABLES variables lignes variables colonnes (Donnes brutes)
ou
VAR Variables ;
(Donnes en tableau de contingence)
ID variable ;
(variable identificatrice avec VAR seulement)
SUPPLEMENTARY variables ;
(Variables supplmentaires.)
WEIGHT variable ;
Sert spcifier les poids des individus. Les poids ngatifs dsignent des
104

individus supplmentaires.

BY Variables ;
RUN ;

idem...

Les principales options tant :


Fichiers dentre sortie
DATA= nom de fichier
Nom du fichier de donnes contenant les donnes sous forme brute ou
tabulaire.
OUTC= nom de fichier
Nom du fichier o seront stocks les rsultats de lanalyse en plus du
fichier original. (Coordonnes des modalits etc.)
OUTF= nom de fichier
Nom du fichier o seront stocks les frquences etc.
Options de calcul
DIMENS=nombre
Nombre de dimensions ou axes calculer. 2 par dfaut.
MCA
Pour effectuer un analyse des correspondances multiples.
Options daffichage
ALL
quivalent OBSERVED, RP,CP, CELLCHI2, EXPECTED,
DEVIATION
CELLCHI2
Contribution au chi2 de chaque cellule.
CP
104 Permet de mettre des tiquettes aux lignes du tableau de donnes.
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 229

Profils colonnes
DEVIATION
Diffrence entre les valeurs prdites et observes.
EXPECTED
Valeurs prdites (en cas dindpendance totale entre les deux variables)
NOCOLUMN
Pas daffichage des coordonnes des colonnes.
NOPRINT
Pas daffichage
NOROW
Pas daffichage des lignes.
OBSERVED
Valeurs observes.
RP
Profils colonnes
SHORT
Supprime laffichage des statistiques sur les points et coordonnes.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 230

O.

CORRESP Analyse des Correspondance Multiples


Dans le chapitre prcdent, nous avons vu comment analyser la liaison
entre deux variables qualitatives en utilisant lanalyse des correspondances
simples. Lanalyse des correspondances multiples tend ltude prcdente
ltude de p variables qualitatives. 105 Une ACM est une analyse factorielle des
correspondance du tableau disjonctif complet.

1.

Tableau disjonctif complet


Ce tableau est un codage particulier qui permet de navoir dans chaque colonne
quune modalit et une seule des variables tudier. Il y a donc autant de
colonnes que de modalit. Chaque colonne nest compose que de 0 ou de 1.
Prenons les donnes suivantes :
Sexe
1
2
1
1
2

individu 1
individu 2
individu 3
individu 4
individu 5

Groupe
A
B
A
C
C

Profil
Bon
Bon
Mauvais
Moyen
Moyen

Nous avons 5 individus sur lesquels agissent 3 variables Sexe (2 modalits) ;


Groupe(3 modalits) et Profil (3 modalits).
Nous allons recoder le tableau prcdent de la faon suivante :
Individu

Sexe=1

Sexe=2

Groupe A

Groupe B

Groupe C

Bon profil

Profil moyen Mauvais


profil

1
2
3
4
5

1
0
1
1
0

0
1
0
0
1

1
0
1
0
0

0
1
0
0
0

0
0
0
1
1

1
1
0
0
0

0
0
0
1
1

0
0
1
0
0

Chaque variable a t dcompose en utilisant la fonction indicatrice de ses


modalits. Cest le tableau disjonctif complet (TDC en abrg)
Chaque colonne de notre tableau reprsente donc une modalit (ou catgorie) et
chaque ligne un individu.
Effectuer une ACM consiste effectuer une ACS sur le tableau disjonctif
complet.

2.

Exemple
Nous allons tudier une population de 27 chiens sur lesquels agissent 7 variables :
105 Mathmatiquement parlant, lACM rsume p variables qualitatives par des variables numriques de variance maximale et les plus
corrles possibles (au sens du rapport de corrlation) avec les variables initiales.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 231

Taille (-,+ ou ++)


Poids (-,+ ou ++) (1, 2 ou 3)
Vlocit (-,+ ou ++) (1, 2 ou 3)
Intelligence (-,+ ou ++) (1, 2 ou 3)
Affection (Oui (1)ou Non(0))
Agressivit (Oui(1) ou Non(0))
Fonction (Compagnie, Chasse, Utilit)
Nom

Taille

Poids

Agressivit

oui
oui
oui
oui
non
oui
non
non
oui
non
non
oui
oui
non
non
oui
oui
oui

Utilit

Poids2
Poids1
Poids2
Poids2
Poids1
Poids3
Poids1
Poids1
Poids1
Poids2
Poids2
Poids2
Poids3
Poids2
Poids2
Poids2
Poids1
Poids2

Vlocit Intelligence Affectio


n
vel3
int2
oui
vel1
int1
non
vel3
int3
oui
vel2
int2
oui
vel1
int2
oui
vel1
int3
non
vel2
int3
oui
vel1
int1
oui
vel1
int2
oui
vel3
int2
oui
vel2
int2
oui
vel3
int3
non
vel3
int1
non
vel2
int3
oui
vel2
int2
non
vel3
int1
non
vel2
int2
oui
vel2
int1
non

BEAUCERON
BASSET
BERGER_ALLEMAND
BOXER
BULL-DOG
BULL-MASTIFF
CANICHE
CHIHUAHUA
COKER
COLLEY
DALMATIEN
DOBERMANN
DOGUE_ALLEMAND
EPAGNEUL_BRETON
EPAGNEUL_FRANCAIS
FOX-HOUND
FOX-TERRIER
GRAND_BLEU_DE_GA
SCOG
LABRADOR
LEVRIER
MASTIFF
PEKINOIS
POINTER
SAINT-BERNARD
SETTER
TECKEL
TERRE-NEUVE

Taille3
Taille1
Taille3
Taille2
Taille1
Taille3
Taille1
Taille1
Taille2
Taille3
Taille2
Taille3
Taille3
Taille2
Taille3
Taille3
Taille1
Taille3
Taille2
Taille3
Taille3
Taille1
Taille3
Taille3
Taille3
Taille1
Taille3

Poids2
Poids2
Poids3
Poids1
Poids2
Poids3
Poids2
Poids1
Poids3

vel2
vel3
vel1
vel1
vel3
vel1
vel3
vel1
vel1

non
non
oui
non
non
oui
non
non
non

Chasse
Chasse
Utile
Compagnie
Chasse
Utile
Chasse
Compagnie
Utile

int2
int1
int1
int1
int3
int2
int2
int2
int2

oui
non
non
oui
non
non
non
oui
non

Utile
Chasse
Utile
Compagnie
Compagnie
Utile
Compagnie
Compagnie
Compagnie
Compagnie
Compagnie
Utile
Utile
Chasse
Chasse
Chasse
Compagnie
Chasse

Nous allons effectuer une ACM sur 6 variables actives (les 6 premires). Ceci
revient effectuer une ACP sur le tableau disjonctif complet.106
Pour SAS, on peut lancer la programme suivant :
proc corresp data=pub.chiens mca obs all;
tables taille -- agressiv;
106 La septime variable (illustrative) peut tre mise en variable supplmentaire . Cela permet de lutiliser dans linterprtation sans
quelle ne joue de rle dans la dtermination des axes.
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 232

run;

Nous obtenons les rsultats suivants :


The Correspondence Analysis Procedure
Inertia and Chi-Square Decomposition
Singular Principal ChiValues Inertias Squares Percents 6 12 18 24 30
----+----+----+----+----+--0.69398 0.48161 139.417 28.90% ************************
0.62027 0.38474 111.375 23.08% *******************
0.45930 0.21095 61.068 12.66% ***********
0.39693 0.15755 45.609 9.45% ********
0.38747 0.15013 43.461 9.01% ********
0.35113 0.12330 35.692 7.40% ******
0.28542 0.08146 23.582 4.89% ****
0.21370 0.04567 13.221 2.74% **
0.15343 0.02354 6.815 1.41% *
0.08782 0.00771 2.233 0.46%
------- ------1.66667 482.471 (Degrees of Freedom = 225)

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 233

a)

Nombre de composantes retenir


Diffrence essentielle entre lAFC simple et lACM :
Contrairement au cas prcdent (AFC), linertie totale du nuage nest plus lie
la structure de la liaison entre les variables. On peut montrer quelle est gale
a/b-1 o a est le nombre de modalit des variables actives et p le nombre de
variables actives. Ici, nous avons 6 variables actives dfinissant 3+3+3+3+2+2=16
modalits. Do I=16/6-1 1.667
Il en rsulte que les valeurs propres et les pourcentages dinertie expliqus par
les axes nont quun intrt relatif en ACM.
Pour dterminer le nombre de composantes retenir, nous pouvons utiliser la
rgle suivante :
La moyenne des valeurs propres vaut 1/p o p est le nombre de variables
actives. Comme en ACP, une mthode possible pour choisir le nombre de
composantes est de ne conserver que les valeurs propres suprieures 1/p.
Ici, nous nen retiendrions que trois au maximum (1/6 0.167).
Toutefois, nous remarquons une chute brutale de linertie aprs la deuxime, nous
nous contenterons donc de deux composantes.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 234

b)

Interprtation des axes


Column Coordinates107
Dim1
Dim2
ta+
0.85109
-1.23172
ta++
-0.83668
-0.02058
ta1.18496
0.92390
Poids+
-0.30541
-0.81888
Poids++
-1.01513
0.97390
Poids1.16892
0.82434
vel+
0.60369
-0.88781
vel++
-0.89210
-0.37183
vel0.31994
1.04490
int+
0.36944
-0.28550
int++
-0.33507
-0.45948
int-0.34905
0.80855
af+
0.77550
-0.26694
af-0.83515
0.28747
ag+
-0.43154
0.20920
ag0.40071
-0.19425

Summary Statistics for the Column Points


Quality
Mass
Inertia
ta+
0.509428
0.030864
0.081481
ta++
0.875561
0.092593
0.044444
ta0.790197
0.043210
0.074074
Poids+
0.822586
0.086420
0.048148
Poids++
0.449768
0.030864
0.081481
Poids0.861437
0.049383
0.070370
vel+
0.485327
0.049383
0.070370
vel++
0.467051
0.055556
0.066667
vel0.702458
0.061728
0.062963
int+
0.202428
0.080247
0.051852
int++
0.092398
0.037037
0.077778
int0.326566
0.049383
0.070370
af+
0.724392
0.086420
0.048148
af0.724392
0.080247
0.051852
ag+
0.213561
0.080247
0.051852
ag0.213561
0.086420
0.048148
Partial Contributions to Inertia for the Column Points
Dim1
Dim2
ta+
0.046421
0.121707
ta++
0.134585
0.000102
ta0.125978
0.095866
Poids+
0.016737
0.150621
Poids++
0.066040
0.076089
Poids0.140104
0.087222
vel+
0.037369
0.101171
vel++
0.091804
0.019964
vel0.013120
0.175174
int+
0.022742
0.017001
int++
0.008634
0.020324
int0.012492
0.083913
af+
0.107915
0.016005
af0.116216
0.017236
ag+
0.031030
0.009128
ag0.028813
0.008476
Squared Cosines for the Column Points
Dim1
Dim2
ta+
0.164625
0.344803
ta++
0.875032
0.000529
ta0.491442
0.298755
Poids+
0.100447
0.722139
Poids++
0.234204
0.215564
107 On remarque quelles sont de signes opposs celles de Minitab ce qui na aucune importance sur linterprtation finale. Ceci est du au
choix des vecteurs propres.
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 235

Poidsvel+
vel++
velint+
int++
intaf+
afag+
ag-

0.575313
0.153447
0.397921
0.060213
0.126739
0.032077
0.051298
0.647656
0.647656
0.172924
0.172924

Lgende :
Minitab SAS
Qual
Quality
Mass
Inert

Mass
Inertia

Interprtation
Qualit globale de reprsentation (somme des cos
carrs)
% dindividus ayant choisi la modalit ( f i ,. )108
Part dinertie totale explique par la modalit. (

coord (mod

f i ,.

Coord
Corr

Coordinates
Squared cosine

Contr

Partial
contribution to
inertia

0.286124
0.331879
0.069130
0.642245
0.075690
0.060321
0.275268
0.076736
0.076736
0.040637
0.040637

i sur axe j) 2

inertie to tale

Voir note109
Coordonne de la modalit sur laxe.
Qualit de reprsentation de lindividu sur laxe.
(Cosinus carr de langle entre lindividu et laxe).
Plus ce nombre est proche de 1 meilleure est cette
qualit.
Part dinertie de laxe explique par la modalit. Cest
une quantit essentielle pour linterprtation des axes.
(=

f i ,.
vp

coord(modalit i sur axe j) ) vpj=valeur propre

axe j.
Nous allons reprer les modalits ayant une forte contribution laxe 1 en
distinguant le signe des coordonnes sur laxe. Il faut aussi tre attentif aux
modalits trop rares (cf. note).
Compltez le tableau suivant :
Modalits forte contribution sur
Modalits forte contribution sur
laxe 1 avec une coordonne ngative. laxe 1 avec une coordonne positive.
Ta - (12.6%)
P -(14%)
Af + (10.8%)
...
108 Permet de dtecter, entre autres, les modalits rares. Ces dernires peuvent jouer un rle excessif dans la construction des axes. Voir
note suivante.
109 Linertie engendre par une modalit est dautant plus grande que cette modalit est rare (Mass petit). Il faut donc tre trs mfiant
envers les modalits rares qui risquent de jouer un rle excessif dans la construction des axes. Une solution consiste a donner le statut de
variable supplmentaires aux variables possdant des modalits trop rares ; il est aussi possible deffectuer des recodages.
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 236

Interprtez laxe1.

Faites de mme pour laxe 2.


Modalits forte contribution sur
Modalits forte contribution sur
laxe 2 avec une coordonne ngative. laxe 2 avec une coordonne positive.

...

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 237

c)

Reprsentation graphique.
Sous SAS :
proc corresp data=pub.chiens mca obs all outc=corr;
tables taille -- agressiv;
run;
data corr;
set corr;
if _type_='VAR';
y=dim2;
x=dim1;
XSYS='2';
Ysys='2';
text=_NAME_;
size=1;
LABEL Y='DIM 2' X='DIM 1';
keep x y text xsys ysys size;
run;
proc gplot data=corr;
symbol1 V=NONE;
PLOT Y*X=1 / ANNOTATE=corr frame href=0 vref=0;
run; quit;

DI M

2
2

V e -

P o ++

T a P o -

I n -

A f n o n
0

A g o u i

T a ++
V e ++

A g n o n
I n +

A f o u i

I n ++
P o +

V e +

- 1

T a +

- 2
- 2

- 1

0
D I M

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

1
1

Page 238

Comme en AFC simple, les points reprsentants les modalits sont les barycentres
des individus qui possdent cette modalit. Leur proximit doit donc tre
interprte avec prudence.
Intervention de variables supplmentaires pour linterprtation
Sous SAS, vous pouvez demander faire figurer la variable Utilit sur le
graphique pour facilit linterprtation des axes (sans que la variable
nintervienne dans les calculs).
proc corresp data=Pub.chiens mca obs all outc=corr;
tables taille--agressiv utilite;
supplementary utilite;
run;
data corr;
set corr;
if _type_='VAR' or _type_='SUPVAR';
if _type_='VAR' then color='BLUE' ;
if _type_='SUPVAR' then color='RED';
y=dim2;
x=dim1;
xsys='2';
ysys='2';
text=_name_;
size=1;
label y='Dim 2'
x='Dim 1';
keep x y text xsys ysys size color;
run;
proc gplot data=corr;
symbol1 v=none;
plot y*x=1/ annotate=corr frame href=0 vref=0;
run;
quit;

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 239

D i m

2
2

V e -

P o ++

T a P o -

I n -

U t i l e
A f n o n
0

A g o u i

C o mp a g n i e

T a ++
V e ++

A g n o n
I n +

A f o u i

C I h na +s +s e
P o +

V e +

- 1

T a +

- 2
- 2

- 1

0
D i m

Vous pouvez maintenant donner une interprtation complte des deux axes.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 240

Visualisation des individus.


Il faudrait maintenant complter cette tude par ltude des individus mais SAS
na pas prvu cela.
Nous allons donc ruser en effectuant une analyse des correspondances simples sur
le tableau disjonctif complet.
Le fichier CHIENSI contient les variables indicatrices des variables prcdentes :
Nom
BEAUCERON
BASSET
BERGER_ALLE
MAND
BOXER
BULL-DOG
BULL-MASTIFF
CANICHE
......

cat
ta1 ta2 ta3 po1 po2 po3 ve1 ve2 ve3 In1 In2 In3 Af0 Af1 Ag0 Ag1
Ta0
0
1
0
1
0
0
0
1
0
1
0
0
1
0
1
ta+
1
0
0
1
0
0
1
0
0
1
0
0
1
0
0
1
ta++
0
0
1
0
1
0
0
0
1
0
0
1
0
1
0
1
pp+
p++
v-

0
1
0
1

1
0
0
0

0
0
1
0

0
1
0
1

1
0
0
0

0
0
1
0

0
1
1
0

1
0
0
1

0
0
0
0

0
0
0
0

1
1
0
0

0
0
1
1

0
0
1
0

1
1
0
1

0
1
0
1

Nous allons donc effectuer une analyse des correspondances simples sur ces
donnes ce qui revient faire une analyse des correspondances multiples.
proc corresp data=moi.chiensi outc=corr;
var ta1 ta2 ta3 po1 po2 po3 ve1 ve2 ve3
in1 in2 in3 af0 af1 ag0 ag1 ut1 ut2 ut3;
id nom;
supplementary ut1 ut2 ut3 ;
run;

Nous obtenons :
Row Coordinates

Dim1
Dim2
BEAUCERON
-0.31720
-0.41770
BASSET
0.25411
1.10123
BERGER_ALLEMAND
-0.48640
-0.46445
BOXER
0.44736
-0.88178
BULL-DOG
1.01335
0.54988
BULL-MASTIFF
-0.75257
0.54691
CANICHE
0.91230
-0.01619
CHIHUAHUA
0.84080
0.84385
COKER
0.73330
0.07907
COLLEY
-0.11733
-0.52611
DALMATIEN
0.64724
-0.99018
DOBERMANN
-0.87321
-0.31548
DOGUE_ALLEMAND
-1.04702
0.50696
EPAGNEUL_BRETON
0.47804
-1.03693
EPAGNEUL_FRANCAI
-0.14491
-0.51578
FOX-HOUND
-0.87657
0.02524
FOX-TERRIER
0.88162
0.13897
GRAND_BLEU_DE_GA
-0.51734
-0.11340
LABRADOR
0.64724
-0.99018
LEVRIER
-0.67669
-0.08317
MASTIFF
-0.75593
0.88763
PEKINOIS
0.84080
0.84385
POINTER
-0.67334
-0.42389
SAINT-BERNARD
-0.58338
0.59366
SETTER
-0.50414
-0.37714

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 241

1
0
1
0

TECKEL
TERRE-NEUVE

1.01335
0.54988
-0.38350
0.48525

Partial Contributions to Inertia for the Row Points


Dim1

Dim2

BEAUCERON
0.007738
0.016796
BASSET
0.004966
0.116742
BERGER_ALLEMAND
0.018194
0.020766
BOXER
0.015391
0.074850
BULL-DOG
0.078971
0.029108
BULL-MASTIFF
0.043556
0.028794
CANICHE
0.064006
0.000025
CHIHUAHUA
0.054366
0.068550
COKER
0.041353
0.000602
COLLEY
0.001059
0.026645
DALMATIEN
0.032216
0.094385
DOBERMANN
0.058638
0.009581
DOGUE_ALLEMAND
0.084305
0.024741
EPAGNEUL_BRETON
0.017574
0.103508
EPAGNEUL_FRANCAI
0.001615
0.025610
FOX-HOUND
0.059090
0.000061
FOX-TERRIER
0.059774
0.001859
GRAND_BLEU_DE_GA
0.020582
0.001238
LABRADOR
0.032216
0.094385
LEVRIER
0.035215
0.000666
MASTIFF
0.043945
0.075847
PEKINOIS
0.054366
0.068550
POINTER
0.034866
0.017297
SAINT-BERNARD
0.026173
0.033927
SETTER
0.019545
0.013692
TECKEL
0.078971
0.029108
TERRE-NEUVE
0.011311
0.022668

Nous pouvons faire une reprsentation graphique :


PROC CORRESP DATA=MOI.CHIENSI OUTC=CORR;
VAR TA1 TA2 TA3 PO1 PO2 PO3 VE1 VE2 VE3
IN1 IN2 IN3 AF0 AF1 AG0 AG1 UT1 UT2
UT3;
ID NOM;
SUPPLEMENTARY UT1 UT2 UT3 ;
RUN;
DATA CORR;
SET CORR;
IF _TYPE_='OBS';
Y=DIM2;
X=DIM1;
XSYS='2';
YSYS='2';
TEXT=NOM;
COLOR='BLUE';
SIZE=1;
LABEL Y='DIM 2'
X='DIM 1';
KEEP X Y TEXT XSYS YSYS SIZE COLOR;
RUN;
PROC GPLOT DATA=CORR;
SYMBOL1 V=NONE;
PLOT Y*X=1/ ANNOTATE=CORR FRAME HREF=0
VREF=0; RUN; QUIT;

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 242

Pour obtenir individus et variables sur le graphique, il suffit de complter le


programme comme suit :
PROC CORRESP DATA=MOI.CHIENSI OUTC=CORR;
VAR TA1 TA2 TA3 PO1 PO2 PO3 VE1 VE2 VE3
IN1 IN2 IN3 AF0 AF1 AG0 AG1 UT1 UT2 UT3;
ID NOM;
SUPPLEMENTARY UT1 UT2 UT3 ;
RUN;
DATA CORR;
SET CORR;
Y=DIM2;
X=DIM1;
XSYS='2';
YSYS='2';
TEXT=NOM;
COLOR='BLUE';
IF _TYPE_='VAR' THEN COLOR='RED';
IF _TYPE_='SUPVAR' THEN COLOR='PINK';
SIZE=1;
LABEL Y='DIM 2'
X='DIM 1';
KEEP X Y TEXT XSYS YSYS SIZE COLOR;
RUN;
PROC GPLOT DATA=CORR;
SYMBOL1 V=NONE;
PLOT Y*X=1/ ANNOTATE=CORR FRAME HREF=0 VREF=0;
RUN;
QUIT;

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 243

Ici comme en AFC, il faut rester prudent quant aux distances entre chiens et
catgories .
Nanmoins, ce graphique permet de complter linterprtation prcdente.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 244

Complment : Individus supplmentaires


Lorsque nous voulons sortir des individus atypiques des calculs mais les faires
figurer sur les graphiques (on parle alors dindividus supplmentaires), il suffit de
leur appliquer un poids ngatif.
Exemple : Nous allons refaire les calculs en plaant le BASSET en individu
supplmentaire.
Cela donne :
DATA CHIENSI2;
SET MOI.CHIENSI;
W=1;
IF NOM='BASSET' THEN W=-1;
RUN;

Nous crons un nouveau fichier


contenant les donnes prcdentes et
une variable W valant 1 pour tous
sauf pour le Basset

PROC CORRESP DATA=CHIENSI2 OUTC=CORR;


WEIGHT W;
VAR TA1 TA2 TA3 PO1 PO2 PO3 VE1 VE2 VE3
IN1 IN2 IN3 AF0 AF1 AG0 AG1 UT1 UT2 UT3;
ID NOM;
SUPPLEMENTARY UT1 UT2 UT3 ;
RUN;
DATA CORR;
SET CORR;
Y=DIM2;
X=DIM1;
XSYS='2';
YSYS='2';
TEXT=NOM;
COLOR='BLUE';
IF _TYPE_='VAR' THEN COLOR='RED';
IF _TYPE_='SUPVAR' THEN COLOR='PINK';
IF _TYPE_='SUPOBS' THEN COLOR='GREEN';
SIZE=1;
LABEL Y='DIM 2'
X='DIM 1';
KEEP X Y TEXT XSYS YSYS SIZE COLOR;
RUN;

Choix des
couleurs :
SUPOBS pour
lobservation
supplmentaire.

PROC GPLOT DATA=CORR;


SYMBOL1 V=NONE;
PLOT Y*X=1/ ANNOTATE=CORR FRAME HREF=0 VREF=0;
RUN;
QUIT;

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 245

Cette instruction
demande SAS
daffecter le
poids W
chaque
observation.

LOUTPUT nous montre que SAS a bien enregistr cela :


Supplementary Row Coordinates
Dim1
BASSET

Dim2

0.27397

1.06732

Summary Statistics for the Row Points


Quality

Mass

Inertia

BEAUCERON
0.213291
0.038462
0.025012
BERGER_ALLEMAND
0.269393
0.038462
0.033987
BOXER
0.543157
0.038462
0.039734
......

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 246

P.

DISCRIM : LAnalyse discriminante


Nous allons prsenter ici une technique statistique trs accessible dont les applications
sont innombrables. On peut la voir comme une analyse en composante principale
particulire. (voir plus loin)
On considre une population P de n individus divise en k classes Pj laide dune
variable qualitative Y. Sur chaque individu agissent p variables numriques X1, X2,...
Xp. Notez bien que lon connat le dcoupage en classe de la population.110
On distingue 2 aspects en analyse discriminante :
Un aspect descriptif (gomtrique):
On va rechercher les combinaisons linaires des variables Xi qui permettent de
sparer le mieux possible les k classes. On peut montrer que cela revient
effectuer une ACP des k centres de gravit avec une mtrique particulire. Les
variables discriminantes ainsi construites sont donc non corrles entre elles.
On lappelle analyse factorielle discriminante en franais, et analyse discriminante
canonique en anglais. (PROC CANDISC de SAS)111
Un aspect aide la dcision (probabiliste): un nouvel individu se prsente pour
lequel on connat les valeurs des Xi. Dans quelle classe a-t-il le plus de chance
dappartenir ? Cest lanalyse discriminante bayesienne qui permet de rpondre
cette question. (Analyse discriminante pour les logiciels Amricains, PROC
DISCRIM (SAS) et Stat/Multivariate/Discriminant Analysis pour Minitab)

110 A ne pas confondre avec les mthodes de classification hirarchique qui servent tablir un dcoupage en classe dune population
donne.
111 Minitab neffectue pas cette analyse. Il se contente de lanalyse discriminante bayesienne.
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 247

1.

Lanalyse factorielle discriminante

a)

Prsentation sommaire
Elle consiste rechercher une premire variable V1, combinaison linaire des
Xi centrs rduits, ayant un pouvoir discriminant maximum puis, une
deuxime variable V2 non corrle avec V1 au pouvoir discriminant maximum
et ainsi de suite. Gomtriquement, effectuer une analyse discriminante canonique
revient trouver les axes sur lesquels la projection du nuage spare au mieux
les k groupes. Comme nous le disions prcdemment, elle revient effectuer une
ACP des k centres de gravit des classes avec une mtrique particulire.

(1)

Mesure du pouvoir discriminant


Dans la paragraphe sur lAnalyse de la variance un facteur (ANOVA), nous
avons vu comment mesurer linfluence dun facteur sur une variable. Il est naturel
de lutiliser pour mesurer le pouvoir discriminant.
La variance totale se dcompose de la faon suivante:
1 k ni
1 k
1 k ni
ni ( xi x ) + ( xij xi )
( x x ) = n
n i =1 j =1 ij
n i =1 j =1
i =1
Variance totale = Variance inter + Variance intra
(o ni dsigne le nombre d'individus de la sous population Pi, n le nombre total d'individus, xi
la moyenne de X dans Pi et x la moyenne gnrale de X)

Plus la liaison entre Y et X est forte, plus la part de la variance inter est
importante et plus la variance intra est faible. La variance intra comptabilise la
partie de la variation de X non explique par Y.

1 k
n ( x x )
k 1 i =1 i i
On dfinit galement F =
1 k ni
( x xi )
n k i =1 j =1 ij
Lorsque H0 est vraie (moyennes gales ou pouvoir discriminant nant de X
sur Y) F suit une loi de Fisher (k-1, n-k) degrs de libert. On rejette H0
lorsque Fobs est suprieur au fractile d'ordre 1- de la loi de Fisher
correspondante. La variable X a alors un pouvoir discriminant significatif.

On mesure le pouvoir discriminant dune variable V1 sur Y en utilisant le


rapport de corrlation :
(V1,Y) =Somme des carrs inter classe/ Somme des carrs totale

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 248

Plus ce nombre est grand (proche de 1) plus la variable X est discriminante, plus
il est faible (proche de 0) moins la variable X nest lie Y. On utilisera ce critre
pour trouver V1 et V2.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 249

(2)

Mise en pratique (sous SAS)

112

La socit FRED&NUCCI frres spcialiste vinicole rput de la rgion


bordelaise effectue une tude pour relier la qualit de leur vins en fonction des
caractristiques mtorologiques.
Les donnes sont dans les fichiers Minitab et SAS BORDEAUX.MTW,
BORDEAUX (rpertoire Public)
X1 : Somme des t moyennes journalires (en C)
X2 : Dure dinsolation (en h)
X3 : Nombre de jour de grande chaleur
X4 : Hauteur des pluies.
Y : Qualit du vin : 1 Bon, 2 Moyen 3 : Mdiocre.
Annee X1

X2

X3

X4

Qual

1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957

1201
1053
1133
970
1258
1386
966
1189
1103
1310
1362
1171
1102
1424
1230
1285
1329
1210
1331
1366
1289
1444
1175
1317
1248
1508
1361
1186
1399
1259
1164
1277
1195
1208

10
11
19
4
36
35
13
12
14
29
25
28
9
21
16
9
11
15
21
24
17
25
12
42
11
43
26
14
24
20
6
19
5
14

361
338
393
467
294
225
417
488
677
427
326
326
349
382
275
303
339
536
414
282
302
253
261
259
315
286
346
443
306
367
311
375
441
371

2
3
2
3
1
1
3
3
3
2
1
3
3
1
2
2
2
3
2
1
2
1
2
1
2
1
2
3
1
1
3
1
3
3

3064
3000
3155
3085
3245
3267
3080
2974
3038
3318
3317
3182
2998
3221
3019
3022
3094
3009
3227
3308
3212
3361
3061
3478
3126
3458
3252
3052
3270
3198
2904
3247
3083
3043

Nous supposerons la normalit vrifie.


Calculons le rapport de corrlation des variables du fichier BORDEAUX.MTW
en tapant le programme suivant :
proc candisc data=moi.bordeaux anova;
var x1 x2 x3 x4;
class qual;
run;

SAS calcule ces rapports de corrlation et teste leur signification (sous hypothse
de normalit)
112 Minitab ne sait pas effectuer directement lanalyse discriminante canonique.
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 250

Canonical Discriminant Analysis


Univariate Test Statistics
F Statistics,
Variable
X1
X2
X3
X4

Num DF= 2

Den DF= 31

Total
STD

Pooled
STD

Between
STD

R-Squared

RSQ/
(1-RSQ)

Pr > F

141.1843
126.6230
10.0166
91.4016

87.5697
80.7610
7.3273
75.8817

136.1337
120.0935
8.5231
65.4816

0.638605
0.617857
0.497312
0.352537

1.7671
1.6168
0.9893
0.5445

27.3893
25.0607
15.3342
8.4396

0.0001
0.0001
0.0001
0.0012

Average R-Squared:

Unweighted = 0.5265777

Weighted by Variance = 0.5769962

SAS donne les rapports de corrlation (R-Squared), le F correspondant et le P du


test prcdent. Si H0 est vraie, le pouvoir discriminant nest pas significatif.
Nous voyons que toutes les variables ont un pouvoir discriminant significatif sur
la qualit du vin Y. X1 a le plus fort.
(3)

Nombre de variables discriminantes prendre en compte


Nous allons maintenant chercher de nouvelles variables, combinaison linaires
des prcdentes, non corrles entre elles ayant un pouvoir discriminant
maximum. Comme nous avons 3 classes, il ny aura que deux variables :
Total-Sample Standardized Canonical Coefficients
CAN1
X1
X2
X3
X4

CAN2

1.209391427
0.857727422
-0.270993045
-0.536131215

-0.006529859
-0.674810955
1.278475787
0.564364371

X1
X2
X3
X4

On a donc CAN1=1.209*X1*+0.858*X2*-0.271*X3*-0.536*X4*
(Xi* dsigne Xi centr rduit.)
Sous hypothse de normalit et dgalit des matrices de variances covariance
entre les diffrents groupes, on peut effectuer un test pour nous aider.
Notons i=Racine((Vi,Y))
On teste H0 :la nullit des q derniers rapport de corrlation en utilisant la
statistique q =

p 1

(1

i = p q

2
i

) . Lorsque ce nombre est trop petit, on rejette H0.

p-1 sappelle le lambda de Wilks. Il mesure le pouvoir discriminant global des p


variables Xi
Multivariate Statistics and F Approximations
S=2
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

M=0.5

Page 251

N=13

Statistic

Value

Wilks' Lambda
Pillai's Trace
Hotelling-Lawley Trace
Roy's Greatest Root

0.20526297
0.88800132
3.41743451
3.27886049

Num DF

Den DF

Pr > F

8
8
8
4

56
58
54
29

0.0001
0.0001
0.0001
0.0001

8.4505
5.7896
11.5338
23.7717

NOTE: F Statistic for Roy's Greatest Root is an upper bound.


NOTE: F Statistic for Wilks' Lambda is exact.

Nous voyons que globalement les variables ont un pouvoir discriminant


significatif. (sous rserve que la multinormalit et lgalit des matrices de
variances covariances soient vrifies cf. POOL=TEST de PROC DISCRIM)
Canonical Discriminant Analysis
Canonical
Correlation
1
2

0.875382
0.348867

Adjusted
Canonical
Correlation
0.861944
0.280587

Approx
Standard
Error
0.040683
0.152891

Squared
Canonical
Correlation
0.766293
0.121708

Test of H0: The canonical correlations in the


current row and all that follow are zero

1
2

Likelihood
Ratio

Approx F

Num DF

Den DF

Pr > F

0.20526297
0.87829160

8.4505
1.3395

8
3

56
29

0.0001
0.2808

SAS donne 1=0.766. On voit que le pouvoir discriminant de V1 est meilleur que
celui de X1 (et que les autres Xi)
Les deux tests suivants montrent que nous ne devons pas aller au del de V1 dans
les composantes canoniques. Nous ne retiendrons donc quune variable
discriminante.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 252

(4)

Interprtation de la variable discriminante obtenue


Nous pouvons calculer cette nouvelle variable :
proc candisc data=moi.bordeaux all out=essai;
var x1 x2 x3 x4;
class qual;
run;

Le fichier ESSAI contient les nouvelles variables CAN1 et CAN2.


SAS calcule aussi les corrlations intra et inter avec cette nouvelle variable.

X1
X2
X3
X4

Total Canonical Structure (Corrlations CAN1,Xj)


CAN1
CAN2
0.900589
0.374779
X1
0.896744
-0.116190
X2
0.770513
0.590030
X3
-0.662815
0.361294
X4
Between Canonical Structure Corrlations

interclasses
X1
X2
X3
X4

CAN1
0.986524
0.998669
0.956452
-0.977208

CAN2
0.163614
-0.051569
0.291891
0.212284

X1
X2
X3
X4

Pooled Within Canonical Structure Corrlations intra


classes.
X1
X2
X3
X4

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

CAN1
0.724221
0.701280
0.525372
-0.398218

Page 253

CAN2
0.584256
-0.176148
0.779910
0.420797

X1
X2
X3
X4

Nous allons trier le fichier essai par rapport CAN1 puis, nous laffichons :
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
32
33
34

ANNEE
1932
1930
1927
1931
1941
1925
1954
1936
1951
1957
1956
1926
1924
1938
1946
1935
1939
1948
1940
1953
1928
1942
1955
1933
1944
1950
1937
1952
1934
1929
1943
1947
1945
1949

QUAL
3
3
3
3
3
3
3
3
3
3
3
2
2
2
2
3
2
2
2
1
1
2
1
2
2
2
1
1
1
1
1
1
1
1

CAN1
-3.73088
-2.74699
-2.72686
-2.53383
-2.45448
-2.32546
-2.10225
-2.02108
-1.67615
-1.18190
-1.09442
-0.99486
-0.88255
-0.72946
-0.55191
-0.35666
-0.30606
0.20968
0.34347
0.35244
0.74360
0.78584
0.87424
1.13041
1.13802
1.46680
1.55211
2.16713
2.17473
2.23089
2.40988
3.18211
3.53529
4.11917

Nous voyons que CAN1 peut tre vue comme une note mesurant la mauvaise
qualit du vin. (Plus CAN1 est petite, meilleur est le vin !)
Les vins dont la note est infrieure -1 sont mauvais, ceux dont la note est
suprieure 1.5 sont bons. Cette rgle ne donne pas de trop mauvais rsultats sur
cet exemple.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 254

Le programme suivant, nous permet de visualiser la variable CAN1


PROC PLOT DATA=ESSAI;
PLOT CAN1*CAN1=QUAL;
RUN;
Plot of CAN1*CAN1. Symbol is value of QUAL.
4
1

11
2

1
CAN1
2

12

22
0

222

3
-2
33

3
-4

-4
-2
0
2
4
6
CAN1

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 255

Utilisation : Exercice
Que prvoyez-vous pour les vins suivants ?
Temprature
Insolation
Chaleur
1958
3000
1050
10
1959
3200
1300
35
1960
3224
1211
18
Vous calculerez la valeur de CAN1 dans les 3 cas.

Pluie
300
225
301

Can1

Attention la formule donnant CAN1 utilise les variables centres rduites. PROC
MEANS peut vous donner les moyennes et cart types des Xi) :
Variable Label
N
Mean
Std Dev
-------------------------------------------------X1
X2
X3
X4

X1
X2
X3
X4

34
34
34
34

3157.88
1247.32
18.8235294
360.4411765

141.1843336
126.6229719
10.0165638
91.4016084

Remarque : Pour affecter de nouveaux individus dans des classes, il est


prfrable dutiliser lanalyse bayesienne (cf. paragraphe suivant) beaucoup plus
prcise.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 256

2.

Lanalyse discriminante Bayesienne

a)

Principe
Nous allons calculer les probabilits dappartenance aux diffrentes classes de
chaque individu :
pj(x)=Prob(Y=j/X1=x1,...,Xp=xp). Nous pourrons ensuite affecter lobservation
x=(x1,x2,...,xp) la classe la plus probable.
Hypothses 113: On suppose que le vecteur X=(X1,X2,...,Xp) suit une loi
multinormale N p ( j , j ) pour chaque classe Pj.
Nous nous limiterons au cas linaire, cest dire que nous supposerons de plus
que les matrices de variances j sont gales114 .
e

Sous ces hypothses, on a pj(x)=

f j ( x)

fi ( x )

1
2

avec f i ( x ) = i 1 t i + i 1 t x

i =1

Les fonctions fi(x) sappellent les fonctions discriminantes. En pratique, pour


estimer les fi ( x ) , on estime par la matrice S de variances covariances intraclasse et i par le vecteur des moyennes des observations dans la classe i.
On trouvera les formules de calcul pour les estimations dans Saporta.

On peut alors calculer la probabilit estime :

p j ( x ) =

e
p

f j ( x )

fi ( x )

i =1

b)

Mise en pratique
Reprenons lexemple de la socit FRED&NUCCI frres spcialiste vinicole
rput.

113 Nous allons nous limiter ici au cas gaussien. Il est possible deffectuer une analyse discriminante non paramtrique. Cf. Saporta p419 et
PROC DISCRIM de SAS.
114 Si ce nest pas le cas, il faut envisager la rgle quadratique en principe. Nous allons prsenter plus loin un test qui peut aider effectuer
le choix.
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 257

(1)

Sous SAS (PROC DISCRIM)


La procdure Discrim est trs complte et peut mener bien lanalyse
discriminante Bayesienne.

(a)

Analyse lmentaire

Tapons le programme suivant :


proc discrim data=moi.bordeaux ;
var x1 x2 x3 x4;
class qual;
run;

Variables concernes par ltude


Variable distinguant les groupes.

Nous supposerons lgalit des matrices de variance-covariance vrifie.


Nous donnerons des lments de rponse pour cette vrification dans le
paragraphe suivant.
SAS donne dans la fentre OUTPUT quelques statistiques de base puis les
fonctions discriminantes estimes
:
Discriminant Analysis

Linear Discriminant Function

_
-1 _
Constant = -.5 X' COV
X
j
j

-1 _
X

Coefficient Vector = COV

j
QUAL

CONSTANT
X1
X2
X3
X4

-1350
0.81768
0.15409
-7.00975
-0.04629

-1284
0.80079
0.14489
-7.05649
-0.03955

-1212
0.78169
0.12590
-6.90255
-0.02196

Label
X1
X2
X3
X4

On a donc entre autres :


f1 ( x ) = -1350+0.81768*X1+0.15409*X2-7.00975*X3-0.04629*X4.

Exprimez les autres fonctions discriminantes.


Nous pouvons nous servir de cela pour calculer la probabilit que le bordeaux
1958 (x1=3000 x2=1050 x3=10 x4=300) soit bon.
exp( f1 ( x))
= 0.0001
exp( f1 ( x)) + exp( f2 ( x)) + exp( f3 ( x))
(x=(3000,1050,10,300))
p 1 ( x) =

Il y a donc 1 chances sur 10000 pour que le bordeaux 58 soit bon !


IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 258

Vrifiez ce calcul et calculez la probabilit que le Bordeaux 58 soit moyen, puis


mdiocre. Dans quelle catgorie va-t-on le mettre ?
Nous pouvons demander SAS deffectuer les calculs prcdents (quand
mme !).
Il faut crer un fichier de donnes SAS contenant lobservation classer et
spcifier grce loption TESTDATA= le nom du fichier. Loption TESTLIST
demande SAS dafficher dans lOUTPUT les rsultats de classement pour ces
nouvelles observations.
DATA WORK.ACLASSER;
INPUT ANNEE X1 X2 X3 X4;
CARDS;
1958 3000 1100 20 300
;
RUN;
PROC DISCRIM DATA=MOI.BORDEAUX
TESTDATA=WORK.ACLASSER TESTLIST;
CLASS QUAL;
VAR X1 X2 X3 X4;
RUN;
Vrifiez vos calculs avec ceux de SAS. Que dire des vins suivants ?
1959
1960

Temprature
3200
3224

Insolation
1300
1211

Chaleur
35
18

Pluie
225
301

Vous venez de voir une utilisation essentielle de lanalyse discriminante : la


prvision pour de nouvelles observations.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 259

(b)

Mesures defficacit du classement : mthodes de resubstitution et de validation


croise

Nous venons de voir que nous pouvions classer une observation externe grce au
calcul des fonctions discriminantes.
Nous allons nous servir des rgles tablies pour reclasser les observations du
fichier original et vrifier quelles sont bien classes la o elles le devraient. Ceci
est un critre nous permettant de mesurer la qualit de lanalyse. Plus le nombre
de mal classs sera faible meilleure sera cette qualit.
Mthode de resubstitution
SAS fournit dans la fentre OUTPUT le rsultat de ce reclassement :
Resubstitution Summary using Linear Discriminant Function

Number of Observations and Percent Classified into QUAL:


From QUAL

Total

9
81.82

2
18.18

0
0.00

11
100.00

2
18.18

8
72.73

1
9.09

11
100.00

0
0.00

2
16.67

10
83.33

12
100.00

Total
Percent

11
32.35

12
35.29

11
32.35

34
100.00

Priors

0.3333

0.3333

0.3333

Error Count Estimates for QUAL:


1
0.1818
0.3333

Rate
Priors

2
0.2727
0.3333

3
0.1667
0.3333

Total
0.2071

SAS nous apprend ici que 2 vins de qualit 2 ont t classs en qualit 1, ce qui
est une erreur. Par contre 10 vins de qualit 3 ont bien t classs en qualit 3.
Globalement, le taux derreur apparent est de 20.7%.
Pour obtenir le classement des observations, il suffit dajouter loption LIST et
LISTERR pour obtenir uniquement les mal classes (misclassified observation)
par la mthode de resubstitution :
PROC DISCRIM DATA=MOI.BORDEAUX LIST ;
VAR X1 X2 X3 X4;
CLASS QUAL;
RUN;
On obtient alors :
Discriminant Analysis

Classification Results for Calibration Data: MOI.BORDEAUX

Resubstitution Results using Linear Discriminant Function


Posterior Probability of Membership in QUAL:
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 260

Obs

From
QUAL

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
32
33
34

2
3
2
3
1
1
3
3
3
2
1
3
3
1
2
2
2
3
2
1
2
1
2
1
2
1
2
3
1
1
3
1
3
3

Classified
into QUAL
2
3
3
3
1
1
3
3
3
1
1
2
3
1
2
2
2
3
2
1
2
1
2
1
2
1
1
3
1
2
3
2
2
3

*
*

*
*
*
*

0.0069
0.0000
0.0098
0.0000
0.6434
0.9334
0.0000
0.0000
0.0000
0.7564
0.8924
0.0866
0.0002
0.6222
0.0108
0.0143
0.0622
0.0000
0.3791
0.9048
0.3669
0.9838
0.0137
0.9966
0.0590
0.9990
0.7143
0.0007
0.8521
0.1957
0.0001
0.3833
0.0036
0.0036

0.6679
0.0447
0.3108
0.0147
0.3279
0.0665
0.0075
0.0226
0.0004
0.2368
0.1074
0.5131
0.1134
0.3768
0.7231
0.9228
0.9202
0.0179
0.6056
0.0952
0.6295
0.0162
0.8233
0.0034
0.9120
0.0010
0.2841
0.1355
0.1478
0.7553
0.1760
0.6059
0.5799
0.4143

0.3252
0.9553
0.6794
0.9853
0.0287
0.0001
0.9925
0.9774
0.9996
0.0068
0.0001
0.4003
0.8864
0.0010
0.2661
0.0629
0.0176
0.9821
0.0153
0.0000
0.0036
0.0000
0.1630
0.0000
0.0289
0.0000
0.0016
0.8638
0.0001
0.0490
0.8239
0.0108
0.4165
0.5821

* Misclassified observation

Nous voyons que les vins 10 et 27 ont t reclasss en qualit 1 alors quils taient
de qualit 2. SAS donne galement le calcul des probabilits pour chaque vin.
Au total, 20.7% des observations ont t mal classes par la mthode de
resubstitution.
Cela dit, cette mthode de calcul de lerreur possde le grave dfaut suivant :
elle se sert de mmes valeurs pour construire le modle et vrifier sa validit.
Lerreur est donc sous value.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 261

Validation croise
Pour viter ce pige dans la mesure de lerreur, nous utilisons la mthode dite de
validation croise.
En activant loption (CROSSVALIDATE), SAS va classer chaque observation en
effectuant au pralable une analyse discriminante sur le fichier des n-1
observations restantes. Ainsi, lobservation que lon classe nest jamais dans les
donnes servant construire les fonctions discriminantes. Le temps de calcul est
videmment plus long mais on vite le problme cit plus haut.
Nous pouvons ajouter loption CROSSLIST ou CROSSLISTERR pour lister les
observations mal classes.
PROC DISCRIM DATA=MOI.BORDEAUX CROSSVALIDATE CROSSLISTERR;
VAR X1 X2 X3 X4;
CLASS QUAL;
RUN;
Cross-validation Summary using Linear Discriminant Function
Number of Observations and Percent Classified into QUAL:
From QUAL

Total

7
63.64

4
36.36

0
0.00

11
100.00

2
18.18

8
72.73

1
9.09

11
100.00

0
0.00

2
16.67

10
83.33

12
100.00

Total
Percent

9
26.47

14
41.18

11
32.35

34
100.00

Priors

0.3333

0.3333

0.3333

Error Count Estimates for QUAL:


1

Total

Rate

0.3636

0.2727

0.1667

0.2677

Priors

0.3333

0.3333

0.3333

Nous voyons que le taux derreur apparent a augment ce qui est logique. Ce taux
est certainement plus proche de la ralit.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 262

Cross-validation Results using Linear Discriminant Function


Obs

From
QUAL

3
5
10
12
14
27
30
32
33

2
1
2
3
1
2
1
1
3

Classified
into QUAL
3
2
1
2
2
1
2
2
2

*
*
*
*
*
*
*
*
*

Posterior Probability of Membership in QUAL:


1

0.0081
0.2537
0.9086
0.1589
0.4726
0.7873
0.1255
0.2728
0.0061

0.1822
0.6212
0.0869
0.7044
0.5256
0.2114
0.8323
0.7140
0.7874

0.8096
0.1251
0.0045
0.1367
0.0018
0.0014
0.0422
0.0132
0.2065

* Misclassified observation

Voici la liste des observations mal classes selon la mthode de validation croise.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 263

Les rsultats prcdents supposent lhypothse dgalit des matrices de variances


covariances (fonctions discriminantes linaires).
Nous pouvons tester cette hypothse grce une option de SAS.
(c)

Test dgalit des matrices

SAS propose un test115 pour valider lhypothse dgalit des matrices j. Il est
activ grce loption POOL=TEST.
Entrons simplement les instructions suivantes :
PROC DISCRIM DATA=MOI.BORDEAUX
POOL=TEST;
VAR X1 X2 X3 X4;
CLASS QUAL;
RUN;

Cette option demande SAS de tester lgalit des


matrice de variances covariances entre les diffrents
groupes.
Variables concernes par ltude
Variable distinguant les groupes.

SAS prcise dans la sortie, la statistique utilise et le rsultat du test.


Test
Notation: K
P
N
N(i)

of Homogeneity of Within Covariance Matrices


= Number of Groups
= Number of Variables
= Total Number of Observations - Number of Groups
= Number of Observations in the i'th Group - 1
__
N(i)/2
|| |Within SS Matrix(i)|
= ----------------------------------N/2
|Pooled SS Matrix|

_
_
2
|
1
1
| 2P + 3P - 1
RHO = 1.0 - | SUM ----- - --- | ------------|_
N(i)
N _| 6(P+1)(K-1)
DF
= .5(K-1)P(P+1)
_
_
|
PN/2
|
|
N
V
|
Under null hypothesis: -2 RHO ln | ------------------ |
|
__
PN(i)/2 |
|_ || N(i)
_|
is distributed approximately as chi-square(DF)
Test Chi-Square Value =
24.909800
with
20 DF
Prob > Chi-Sq = 0.2049
Since the chi-square value is not significant at the
a pooled covariance matrix will be used in the
function.

0.1 level,
discriminant

Reference: Morrison, D.F. (1976) Multivariate Statistical Methods p252.

115 Si on rejette lhypothse dgalit doit-on pour autant utiliser les rgles quadratiques ?. Cela nest pas sr dans tous les cas. Le test
prcdent nest pas parfaitement fiable, ensuite lusage de rgles quadratiques implique lestimation de bien plus de paramtres que la rgle
linaire... Lorsque les chantillons sont de petite taille, les fonctions obtenues sont trs peu robustes et il vaut mieux utiliser une rgle linaire
malgr tout. Saporta P423
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 264

On remarque ici que lon accepte lgalit. SAS nous prvient quil utilisera la
matrice adquate.116
(d)

Syntaxe simplifie de PROC DISCRIM

PROC DISCRIM options ;


CLASS variable ;

Variable servant dfinir les classes (Qualit du vin dans lexemple


prcdent)

VAR variable ;
PRIORS probabilits ;

Variables numriques sur lesquelles on effectuera lanalyse discriminante.

WEIGHT variable ;

Variable contenant le poids de chaque individu.

Pour spcifier les probabilits dappartenance aux diffrentes classes.


EQUAL, PROPORTIONAL, modalit1=proba modalit2=proba etc.)

RUN ;
Les principales options tant :
Corrlations
BCORR
Affiche les corrlations inter classes pour les variables. Un test de
signification est galement effectu.
PCORR
Affiche les corrlations intra-classe pour chaque variable. Un test de
signification est galement effectu.
WCORR
Affiche les corrlations intra-classe pour chaque variable et pour chaque
classe. Un test de signification est galement effectu.
Analyse factorielle discriminante
CANONICAL
Effectue une analyse factorielle discriminante (canonical discriminant
analysis en anglais). Nous en reparlerons plus loin.
NCAN=nombre
Nombre de variables canoniques (cf. analyse factorielle discriminante
calculer.

Mthode de resubstitution ou de validation croise.


CROSSLIST
116 Si lon rejette H0, la rgle quadratique est utilise, sinon cest la rgle linaire.
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 265

Affiche la classification des observations du fichier en utilisant la mthode


de validation croise.
CROSSLISTERR
Idem mais en affichant uniquement les individus mal classs.
CROSSVALIDATE
Active la validation croise.
OUTCROSS=fichier de donnes
Permet de crer un fichier de donnes SAS contenant le fichier original, les
probabilits calcules par lanalyse discriminante et le reclassement de
chaque observation par la mthode de validation croise. Si loption
CANONICAL est active, SAS inclut galement les variables canoniques
dans ce fichier.
LIST
Affiche la classification des observations du fichier en utilisant la mthode
de resubstitution.
LISTERR
Idem mais en affichant uniquement les individus mal classs.
NOCLASSIFY
Pas de classification.
Homognit des matrices de variance-covariance
POOL=NO ou TEST ou YES
Permet dindiquer SAS lgalit des matrices de covariances (YES par
dfaut), lingalit (NO) ou encore deffectuer un test pour pouvoir statuer.
Rappelons que si ces matrices sont gales, les fonctions discriminantes
linaires sont values, sinon, ce sont les fonctions discriminantes
quadratiques.
SLPOOL=p
Spcifie le niveau de signification pour le test prcdent (POOL=TEST).
Par dfaut p=0.1
Classement de nouvelles observations
TESTDATA=fichier de donnes SAS
Lorsque lon veut prvoir le classement de nouvelles observations, il est
possible de les mettre dans un fichier de donnes SAS et dindiquer son
nom aprs un TESTDATA=
TESTLIST

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 266

Affiche le classement des nouvelles observations avec le probabilit


associes.
TESTOUT=fichier de donnes SAS
Permet de crer un fichier de donnes SAS contenant le fichier
TESTDATA= ainsi que le classement et les probabilits dappartenance aux
diffrentes classes. Si loption CANONICAL est active, SAS affiche les
valeurs pour chaque variable canonique calcule.
Divers
DATA= fichier de donnes SAS servant effectuer lanalyse discriminante.
OUT= fichier de donnes SAS
Permet de crer un fichier de donnes SAS contenant le fichier original, les
probabilits calcules par lanalyse discriminante et le reclassement de
chaque observation par la mthode de resubstitution. Si loption
CANONICAL est active, SAS inclut galement les variables canoniques
dans ce fichier.
ALL
Active toutes les options daffichage.
NOPRINT
Pas daffichage.
ANOVA
Effectue une analyse de variance testant la signification des rapports de
corrlations (entre les Xi et Y). Ceci permet de mesurer le pouvoir
discriminant des variables du fichier. De faon quivalente, ceci permet
aussi de voir si les moyennes des Xi diffrent significativement selon les
classes.
MANOVA
Affiche des statistiques testant lgalit des moyennes i. Ceci permet de
mesurer le pouvoir discriminant global des variables du fichier (lambda de
Wilk).
METHOD =NORMAL ou NPAR
Spcifie la mthode utilise : paramtrique (NORMAL) si lhypothse de
normalit est vrifie (on aura alors la rgle quadratique ou linaire selon
lingalit ou lgalit des matrices de variances covariances). Non
paramtrique (NPAR) si cette normalit nest pas vrifie.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 267

(2)

Exercice
Voici un excellent exemple tir de Saporta.
101 victimes dinfarctus du myocarde (51 dcderont (Prono=0), 50 survivront
(prono=1)) sur lesquels ont t mesures leur admission 7 variables (frquence
cardiaque, index cardiaque, index systolique, pression diastolique, pression
artrielle pulmonaire, pression ventriculaire, rsistance pulmonaire)
Les donnes sont dans le fichier PUB.INFARCTU
On supposera la multinormalit et lgalit des matrices de variances covariances
vrifies.
Mesurez le pouvoir discriminant de chacune des variables. Effectuez une analyse
discriminante canonique sur les donnes prcdentes.
Effectuez une analyse discriminante bayesienne. Que donne la mthode de
validation croise ? (% de bien classs, observations mal classes)
Que dire des malades suivants :
X1
110
125

(3)

X2
1.5
3.37

X3
15
26.7

X4
24
17

X5
30
29

X6
5.5
6

X7
1490
800

Complments
Nous navons fait queffleurer lanalyse discriminante dans ce qui prcde. Nous
navons pas parl de lanalyse discriminante pas pas, des mthodes non
paramtriques.
Pour plus dinformations, nous vous renvoyons la bibliographie, spcialement
les ouvrages de M. Tenenhauss et de G. Saporta.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 268

Q.

La commande FORECAST (Etude de sries chronologiques)


Les heureux possesseurs du module SAS/ETS peuvent tudier les sries
chronologiques de faon trs approfondies sous SAS. Nous allons, dans ce
paragraphe, regarder quelques unes des possibilits de la commande FORECAST
qui permet de manipuler les sries chronologiques sans connatre le langage SAS.
Prenons le fichier CHAMPA2 qui contient les ventes mensuelles de
champagne (nombre de bouteilles) entre Jan 1962 et Sept 1969.
Lancez SAS, Allez dans SOLUTIONS/ANALYSIS/TIMES SERIES
FORECASTING SYSTEM (ou tapez Forecast dans la ligne de commande) :
Vous voyez apparatre :

Nous allons complter les champs les plus importants : Le nom de la table SAS
(ici Champa2), de la variable chronologique (MOIS).
Pour cela, nous cliquons sur BROWSE en face du nom du fichier de donnes :

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 269

Nous entrons le nom du fichier ainsi que le nom de la variable chronologique et


nous validons.

Ensuite, nous cliquons sur le bouton


SAS nous demande la nom de la variable modliser : (ici Y)

Validez en cliquant sur OK.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 270

1.

Visualisation de la srie
Cliquez ensuite sur le bouton pour que nous puissions visualiser la srie.

Vous obtenez

Nous voyons clairement un modle saisonnier de type multiplicatif. Vous pouvez


zoomer sur les zones qui vous interessent en cliquant sur les loupes

Cliquez sur le bouton goback (flche noire) pour revenir lcran


prcdent.
Dans loptique deffectuer des prvisions court terme, nous allons effectuer un
lissage de la srie prcdente.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 271

2.

Choix dun modle de lissage


Maintenant, nous allons choisir le modle du lissage que nous souhaitons prendre
en cliquant sur le bouton droit de la souris sans la zone des MODELS (en dessous
du No Models ) choisissez Fit Models from List

Choisissons le modle Winters (multiplicatif) et validons.117

117 Notez que SAS possde les lissages exponentiel simple et double (Holt).
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 272

3.

Estimation des paramtres


SAS effectue alors les calculs. Lorsquil a termin, cliquez sur le bouton View
selected Model graphically ( cot du bouton View Serie de tout lheure), puis
sur le bouton pour obtenir les estimations des paramtres :

SAS indique ensuite les valeurs des paramtres Niveau, Pente et les coefficients
saisonniers.
Nous avons donc ici : =0.33368 =0.00100 =0.48175.
1

2
2
La variance rsiduelle est = n 1 (Yt Yt 1 (1)) 381906

Quels sont les mois o les coefficients saisonniers sont les plus levs ? Ceci tait
il prvisible ?

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 273

4.

Prcision de lajustement
En cliquant sur

avec MSE=

1
nk

nous obtenons les statistiques dajustement ci-dessous :

(y
t =1

y t ) 2 o k est le nombre de paramtres du modle.

100
MAPE=
n

RMSE= MSE

et R-Square= 1

( y
t =1
n

(y
t =1

y)2

y t )

y t y t

yt
t =1
n

1 n
MAE= y t y t
n t =1

. ( Ce nombre peut tre ngatif si le modle est


2

particulirement mauvais)

5.

Calcul des prvisions


Pour obtenir des prvisions, cliquez sur le dernier bouton de la liste (symbolisant
un tableau de valeurs).
Vous pouvez lire entre autres :
MOIS

ACTUAL

PREDICT

UPPER

LOWER

ERROR

05/01/69
06/01/69
07/01/69
08/01/69
09/01/69
10/01/69
11/01/69

5010
4874
4633
1649
5951
.
.

4538
5251
4432
2079
5362
6981
10390

5750
6462
5644
3291
6573
8192
11742

3327
4040
3221
868.1798
4151
5770
9039

471.6425
-376.8926
200.6538
-430.4084
589.1950
.
.

Vous voyez par exemple que pour octobre 69, SAS prvoit une vente de 6981
bouteilles (PREDICT).

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 274

Nous donnons ci-dessous les chiffres exacts de vente de bouteilles doctobre


aot 1970. Comparez avec les prvisions de SAS. Quen pensez-vous ?
94
95
96
97
98
99
100
101
102
103

10/01/69
11/01/69
12/01/69
01/01/70
02/01/70
03/01/70
04/01/70
05/01/70
06/01/70
07/01/70

6981
9851
12670
4348
3564
4577
4788
4618
5312
4298

Exercice
Le fichier VENTE2 contient les chiffres des ventes mensuelles dun produit (en
milliers dunits) de 1985 1988. Nous souhaitons effectuer des prvisions pour
lanne 1989.
La srie comporte elle une tendance, une saisonnalit ?
Quelle mthode de lissage est adquate ici ?
Si on laisse SAS choisir entre diffrentes mthodes de lissage (Choisissez Fit
Automatic Model au lieu de Select from list) laquelle retient il ?
Vous ferez les calculs sous SAS. Donnez les prvisions pour lanne 1989.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 275

VI.

Quelques procdures de gestion de fichiers

A.

FORMAT (Crer de nouveaux formats)

1.

Objet
Dans lannexe sur les formats, vous pourrez voir un grand nombre de
formats existants pour les dates, lheure, les nombres. Il vous est aussi
possible, sous SAS, de dfinir vos propres formats et de les utiliser en
faisant simplement rfrence leur nom comme nimporte quel autre
format prdfini. La procdure Format effectue ce travail.
Les formats personnaliss ainsi crs sont stocks dans un catalogue
SAS temporaire: WORK.FORMATS.
118

Une confusion ne pas commettre : Lorsquune variable est


reformate, sa valeur interne ne change pas, seule son apparence change.
Pour un recodage, la valeur de la variable change (En gnral).
119

2.

Syntaxe simplifie
PROC FORMAT <options> ;
VALUE nom champ de
INVALUE nom champ
PICTURE nom champ

valeurs=valeur formate ;

Dfinit les formats daffichage

de valeurs=valeur formate; Dfinit ceux dentres (input)


de valeurs=masque daffichage ;

SELECT entres ;
EXCLUDE entres ;

Pour prsenter les donnes


numriques en ajoutant des symboles ($25,152 ; 12-25-52...)
Ne slectionne dans le catalogue FORMATS que les noms de formats ou
dinformats indiqus ici. (entres = nom de formats ici)
Nexclut du catalogue FORMATS que les noms de format ou dinformats
indiqus ici

RUN ;

118 Si vous voulez les conserver, utilisez loption LIBRARY= ci dessous (pour les rcuprer, utilisez LIBNAME LIBRARY votre
bibliothque ; ).
119 Remarque : La procdure FREQ utilise la valeur de la variable formate pour dfinir les classes du tri crois. Il suffit de changer de
format pour effectuer des regroupements en classes ou le contraire. Lavantage de ceci est de ne jamais toucher au fichier original.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 276

Les champs de valeurs


Ils peuvent tre de quatre types
Syntaxe
valeur
valeur,valeur,...,valeu
r
valeur-valeur

Champ,champ,...

Exemple

Signification

12
14,18,25,36

Seule 12 sera concerne


Seules 12,18,25 et 36
seront concernes

12-48

Tous les nombres entre 12


et 48 (inclus) seront
concerns. [12 ;48]

12<-48
12-<48
14, 12-48, 57 ,57-<62

correspond ]12 ;48]


correspond [12 ; 48[
Tous ces champs seront
concerns.

Pour inclure ou exclure certaines valeurs, vous pouvez utiliser < .


Ainsi, invalue anota 0-<10=Faible 10-12=Moyen 12<-20=Bon ;
associera 10 et 12 moyen.
Les mots cls Low, High et Other peuvent aussi tre utilis dans les champs de
valeurs :
invalue anota low-<10=Faible 10-12=Moyen 12<-high=Bon ;

Les options principales tant


LIBRARY= nom de bibliothque
On donne ici le nom de la bibliothque contenant un catalogue (SAS
catalog) nomm FORMATS qui, comme son nom lindique, contient tous
les formats crs avec la procdure FORMAT.
Par dfauts, les formats sont stocks dans un catalogue nomm FORMATS
dans la bibliothque WORK (temporaire). Ils seront donc perdus lorsque
SAS sera dsactiv.
Pour conserver vos formats, indiquez votre libname derrire library=.
Pour les rcuprer dclarer votre bibliothque sous le nom LIBRARY :
LIBNAME LIBRARY G :\STID9799\LOGICIEL\etc... ;

CNTLOUT=nom de fichier SAS


Permet de stocker dans un fichier de donnes SAS des informations sur les
formats contenus dans FORMATS. (valeurs, domaine de validit etc...)
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 277

Vous pouvez rcuprer tout ou partie de ces informations pour redfinir de


nouveaux formats grce une autre option CNTLIN=nom de fichier SAS.

3.

Exemples
Nous allons crer un nouveau format nomm fsexe. qui transforme 1
en Masculin 2 en Fminin et tous les autres nombres en Non
spcifi .
Nous afficherons ensuite le fichier STID193 en utilisant le format
Fsexe. .
Proc format ;
value fsexe
1='masculin' 2='Fminin' other='Non spcifi';

/*Nous crons un
nouveau format*/

run;
/* Nous allons utiliser le Format Fsexe. dans le PRINT ci-dessous */

proc print data=moi.stid193;


var groupe sexe;
format sexe fsexe.; /* Ne pas oublier le . a la fin du nom de format */
run;

Nous obtenons :
OBS
1
2
3
4
5
6
7
8
9

GROUPE

SEXE

A
A
A
A
A
A
A
A
A

masculin
masculin
masculin
Fminin
Fminin
Fminin
Fminin
Fminin
masculin

Remarque :
Dans lexemple ci-dessus, le format a t utilis ponctuellement dans la
procdure PRINT. Si vous voulez lattacher la variable SEXE, il vous
suffit de lutiliser dans une tape DATA (cf. plus bas)

Nous pouvons appliquer le Format prcdemment dfini pour tout autre


variable.
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 278

Ainsi
proc print data=moi.stid193;
var groupe nbfs;
format nbfs fsexe.;
run;

va donner :
OBS
1
2
3
4
5
6
7
8

GROUPE
A
A
A
A
A
A
A
A

NBFS
Non spcifi
Non spcifi
Fminin
Non spcifi
masculin
masculin
Fminin
masculin

Ce qui est compltement idiot je vous laccorde !

4.

Visualisation des formats utilisateurs


Nous pouvons vrifier les formats en cours en allant dans LEXPLORER et en
cliquant sur Work. Enfin, dans cette bibliothque, il suffit de double cliquer sur le
catalogue nomm FORMATS qui contient tous les formats (temporaires) crs
par Proc format. Vous slectionnez FSEXE et choisissez PROPERTIES dans le
menu contextuel :

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 279

5.

Exercices
I)
proc format;
value niveau 0-<8='Faible' 8-12='Moyen' 12<-20='Bon';
run;
proc print data=pub.stid193;
format mat hg fra niveau.;
run;

Que fait ce programme ?


II)Crez un format remplaant donnant le nom du dpartement de chaque
individu et ce, pour lIsre et les dpartements voisins de lIsre. Les individus
issus dun autre dpartement seront qualifis Extrieurs . Vous pourrez utiliser
la variable CP qui contient le code postal de chaque individu de STID193.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 280

6.

Format permanent Library= ; puis Libname library nom de bibliothque ;


Tous les formats prcdents ont t cres dans la bibliothque WORK. Ils
seront donc perdus ds que SAS sera stopp. Pour crer un format permanent, il
faut utiliser loption LIBRARY=
De plus, il vous est possible de spcifier un format lors dune tape DATA.
Dans ce cas, le format restera TOUJOURS attach la variable. Ceci est utile
lorsque vous donnez un caractre dfinitif un format, mais cela impose votre
format dtre toujours accessible.
120

Exemple
libname moi 'i :\SAS';
Proc format LIBRARY=MOI ;
value fsexe
1='masculin' 2='Fminin' other='Non spcifi'; /*Nous crons un
nouveau format*/
run;

Le format fsexe. sera ajout au catalogue FORMATS de la bibliothque MOI. Je


pourrais donc y accder.
121

Je vais maintenant utiliser ce format pour crer un fichier de donnes nomm


MOI.ESSAI dont la variable SEXE sera formate en utilisant fsexe. .
libname library 'i :\SAS';

/*pour que SAS aille y lire le format fsexe.*/

data moi.essai;
set pub.stid193;
keep groupe ordre sexe;
format sexe fsexe.;
run;

Les instructions prcdentes font que le format fsexe. sera toujours attach la
variable sexe ci-dessus. Pour appliquer un format juste une fois, indiquez-le
uniquement dans le PROC PRINT par exemple.
proc print data=moi.essai;
run;

/*Cet affichage impose au format fsexe dtre disponible*/

120 Il devra donc tre dans WORK ou dans LIBRARY


121 En dclarant comme bibliothque LIBRARY le rpertoire contenant le format voulu cf. ci dessous
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 281

Remarques importantes:
A chaque fois que vous voudrez afficher le fichier MOI.ESSAI, le format fsexe.
DEVRA ETRE DISPONIBLE. (cest dire, dans WORK.FORMATS, ou
LIBRARY.FORMATS avec le libname adquat.)
Autrement dit, si vous quittez SAS et que vous voulez afficher MOI. ESSAI, vous
devrez taper :
libname library 'i :\STID9799\LOGICIEL\...';
proc print data=moi.essai;
run;

Lorsque SAS rencontre MOI.ESSAI, il recherche le format fsexe. (car ce


format est attach la variable sexe) . Il commence la recherche dans
WORK.FORMATS puis dans LIBRARY.FORMATS. Sil ne le trouve pas, un
message derreur marque linterruption de la procdure.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 282

7.

Masques daffichage (picture)

a)

Exemple n1 : Numros de tlphone


Lexemple le plus classique dutilisation concerne les n de tlphone. Il semble
que 04/76-82-56-41 soit plus lisible que 0476825641.
Pour ce faire, nous utilisons un masque daffichage :
proc format;
picture telfax other='99/99-99-99-99';Other implique que tous les numros sont
concerns par cette instruction

run;
data carnet;
input nom $ tel;
format tel telfax.;

Le masque daffichage est attach au fichier de donnes. Chaque


fois que lon voudra afficher le fichier de donnes, le masque devra
tre prsent dans FORMATS

cards;
Marie 0525002165
Eric 0125486565
Anne 0145479589
Etienne 565412
;
run;
proc print;
run;

Va donner :
The SAS System
OBS
1
2
3
4

14:26 Sunday, May 18, 1997


NOM
Marie
Eric
Anne
Etienne

TEL
05/25-00-21-65
01/25-48-65-65
01/45-47-95-89
00/00-56-54-12

Les 9 dans PICTURE indiquent que les emplacements des chiffres quitte remplacer par
0 ce qui manque.
Si lon place des 0 , PICTURE laissera des blancs sil manque des chiffres.
Ainsi : picture telfax other='00/00-00-00-00';
donnera :

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 283

OBS
1
2
3
4

b)

NOM
Marie
Eric
Anne
Etienne

TEL
5/25-00-21-65
1/25-48-65-65
1/45-47-95-89
56-54-12

Exemple n2 : Nombres au format europen (options PREFIX, MULT de Picture)


Nous allons mettre des nombres 2 dcimales sous forme europenne.
Ainsi 14526.26 devient 14.526,26 ce qui est plus lisible.
Pour cela , il faut convertir le nombre en nombre entier avant de lui affecter un
masque. On multiplie donc le nombre initial par 100 et on lui applique un
masque 000.000,00 ou 000.000.000,00 si lon sattend de gros chiffres.
122

Il faut ensuite tenir compte du signe car picture lenlve. Cest pour cela que nous
avons 2 picture un pour les ngatif (avec un PREFIX=-) et un pour les positifs
(avec un PREFIX= + Par dfaut PREFIX=).
Nous avons donc
proc format;
picture nombfran low-<0='000.000.009,00 FF' (prefix='-' mult=100)
0-high='000.000.009,00 FF' (mult=100 prefix='+');
run;
data essai;
input nom $ nombre;
format nombre nombfran.;
cards;
Marie 2502165.23
Eric 0125.25
Anne -014595.89
Etienne 26565412
;
run;
proc print;
run;

122 Nous utilisons loption MULT= de picture qui permet de prciser un coefficient multiplicatif au nombre avant de lafficher
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 284

OBS
1
2
3
4

NOM
Marie
Eric
Anne
Etienne

NOMBRE
+2.502.165,23 FF
+125,25 FF
-14.595,89 FF
+26.565.412,00 FF

Gnial non ?
Modifiez le format prcdent pour quen plus SAS fasse la conversion en Kilo
francs puis en Euro. Attention, loption DIV nexiste pas, il faut vous contenter de
MULT...
(19.5 FF doit devenir 3,00 Euro...)
Lnorme intrt de ce systme Picture est que le fichier de donnes nest pas
modifi. Seule laffichage change. Si par exemple le cours de lEuro change, il
suffit de changer le multiplicateur pour que tout soit jour.
Remarque : Picture possde une option FILL= qui permet de spcifier le
caractre de remplissage des masques lorsquil ny a pas de chiffres. Par dfaut
cest un blanc.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 285

c)

Exemple n3 : Dates : Option DATATYPE de PICTURE


Les options DATE, TIME et DATETIME de (DATATYPE) servent indiquer
SAS que le masque indiqu correspond une Date, heure ou les deux.
%y indique lanne sur deux caractres
%Y indique lanne sur 4 caractres
%m indique le mois
%d indique le jour du mois.
Exemple :
proc format;
picture nouvdate (default=15)
other='%d-%m %Y' (datatype=date);
run;
data ech;
set moi.stid193 (obs=10);
keep groupe ordre sexe date;
format date nouvdate.;
run;
proc print data=ech noobs;
run;

Va donner :
GROUPE

ORDRE
A
A
A
A
A
A
A
A
A
A

SEXE
1
2
3
4
5
6
7
8
9
10

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

DATE
1
1
1
2
2
2
2
2
1
1

21-10 1973
8-12 1974
15-8 1972
10-11 1972
30-11 1974
11-2 1974
14-9 1974
22-11 1973
8-6 1974
15-6 1973

Page 286

Spcifie la taille (en caractres)


Notre nouveau format

8.

Informat (INVALUE)
Dernier point, vous pouvez dfinir vos propres formats dentre.
Un exemple simple va vous permettre de comprendre la porte de ce concept.
Jai un fichier dlves avec leurs 3 notes sous forme inhabituelle. Chaque lve a
t not par une lettre N,MM, M, AB,B,TB. La correspondance avec notre
systme de notes est la suivante : N(6/20) ; MM(8/20), M(10/20), AB(12/20) ,
B(14/20) TB(16/20)
Nous voulons importer ce fichier et convertir les notes numriquement pour
pouvoir calculer les moyennes correspondantes.
Jai le fichier suivant, je veux calculer la moyenne par lve...
Jean-pierre AB B M
Herve N MM MM
Anestis TB TB TB
Bernard TB N TB

proc format;
invalue fnote 'N'=6 'MM'=8 'M'=10
'AB'=12 'B'=14 'TB'=16
'ABS'=. ;
run;
data stid;
input nom $ @;
do i=1 to 3;
input note : fnote. @;
output;
end;
keep nom note;
cards;
Jean-pierre AB B M
Herve N MM MM
Anestis TB TB TB
Bernard TB N TB
run;

Note manquante remplace par un point.

Le caractre @ permet dattendre la fin de la ligne avant de


sauter la ligne suivante. Nous avons encore trois notes lire
avant de changer de ligne.
Nous les lisons lune aprs lautre.

Pour ter la variable i du fichier de donnes

proc print data=stid;


run;

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Nous dfinissons lInformat Fnote. ici

Page 287

On obtient :
OBS

NOM

NOTE
1
2
3
4
5
6
7
8
9
10
11
12

proc sort data=stid;

Jean-pie
Jean-pie
Jean-pie
Herve
Herve
Herve
Anestis
Anestis
Anestis
Bernard
Bernard
Bernard

12
14
10
6
8
8
16
16
16
16
6
16

Nous trions le fichier pour utiliser le BY dans la procdure


MEANS

by nom;
run;
proc means data=stid;
by nom;
run;

Ce qui donne :
Analysis Variable : NOTE
----------------------------------------- NOM=Anestis ---------------------------------------N
Mean
Std Dev
Minimum
Maximum
---------------------------------------------------------3
16.0000000
0
16.0000000
16.0000000
-------------------------------------------------------------------------------------------------- NOM=Bernard ---------------------------------------N
Mean
Std Dev
Minimum
Maximum
---------------------------------------------------------3
12.6666667
5.7735027
6.0000000
16.0000000
--------------------------------------------------------------------------------------------------- NOM=Herve ----------------------------------------N
Mean
Std Dev
Minimum
Maximum
---------------------------------------------------------3
7.3333333
1.1547005
6.0000000
8.0000000
-------------------------------------------------------------------------------------------------- NOM=Jean-pie --------------------------------------N
Mean
Std Dev
Minimum
Maximum
---------------------------------------------------------3
12.0000000
2.0000000
10.0000000
14.0000000
----------------------------------------------------------

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 288

9.

Complments
Je vous encourage consulter le SAS Procedures guide pour des
complments sur cette procdure FORMAT.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 289

B.

TRANSPOSE (Transposer un fichier)


Son nom est trs explicite, elle permet en effet de transposer un fichier de
donnes. Les colonnes deviennent les lignes et inversement. Elle permet aussi de
rarranger de faon plus complexe certains fichiers.
Voici un petit exemple tir du SAS Procedures guide :
DATA A;
INPUT A B C;
CARDS;
1 2 3
4 5 6
;
PROC PRINT;
TITLE 'Le fichier original...';
RUN;
PROC TRANSPOSE DATA=A;
RUN;
PROC PRINT;
TITLE 'Le fichier transpos';
RUN;

Ce qui donne
Le fichier original...
OBS

1
2

1
4

2
5

3
6

Le fichier transpos
OBS

_NAME_

COL1

COL2

1
2
3

A
B
C

1
2
3

4
5
6

SAS a cr trois variables _NAME_,COL1 et COL2 qui contiennent les lignes


du fichier prcdent.
La variable _NAME_ contient tous les noms de variables.
Syntaxe simplifie
PROC TRANSPOSE (options);
VAR variables; Les variables transposer
BY variables; Permet la cration de sous-groupes... le fichier devra avoir t tri avant
Les variables BY ne sont pas transposes.

ID variable ; Colonne contenant les noms des futures colonnes


COPY variables :
variables recopier dans le fichier final sans les transposer.
RUN ;
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 290

Les principales options tant :


DATA= et OUT= pour spcifier les fichiers de donnes dentre et de sortie.
Exemples
utilisation de id.
On modifie lgrement le programme prcdent :
DATA A;
INPUT A B C D $;
CARDS;
1 2 3 X
4 5 6 Y
;
PROC PRINT;
TITLE 'Le fichier original...';
RUN;
PROC TRANSPOSE DATA=A;
ID D;
RUN;
PROC PRINT;
TITLE 'Le fichier transpos';
RUN;
Le fichier original...
OBS

1
2

1
4

2
5

3
6

X
Y

Le fichier transpos

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

OBS

_NAME_

1
2
3

A
B
C

1
2
3

4
5
6

Page 291

Utilisation de COPY
En ajoutant COPY C ; au dessous du ID D ; on obtient :
Le fichier original...
OBS
1
2

A
1
4

B
2
5

C
3
6

D
X
Y

Le fichier transpos
OBS
1
2

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

C
3
6

_NAME_
A
B

Page 292

X
1
2

Y
4
5

C.

CONTENTS (Inventaire dune bibliothque)


Cette procdure est trs utile pour connatre les fichiers figurant dans votre
bibliothque ou pour avoir des informations prcises sur un fichier en particulier.
Syntaxe simplifie
PROC CONTENTS options;
RUN;
Les options tant:
DATA= nom de fichier ou bilbiothque._all_
Exemples
proc contents data= moi.stid;
run;
pour obtenir des informations sur le fichier STID de la bibliothque
MOI.
libname MONREP 'G:\STID9597\TOTO';
proc contents data=monrep._all_;
run;
pour obtenir des informations sur TOUS les fichiers SAS situs sur
mon rpertoire.
OUT= fichier SAS
Pour sauvegarder les informations affiches dans la fentre OUTPUT.
DIRECTORY
Affiche un catalogue rsum des fichiers de la bibliothque.
MEMTYPE=
Spcifie le(s) type(s) des fichiers SAS cataloguer.
DATA (pour les fichiers de donnes, c'est notre cas !)
CATALOG pour les fichiers de type "catalog"
PROGRAM pour les programmes compils.
...
ALL tous les types.
POSITION
Pour afficher les variables du fichier de donnes dans leur ordre d'apparition
sur ce mme fichier (et non plus dans l'ordre alphabtique).
SHORT
Affiche seulement une liste des variables du fichier de donnes.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 293

NOPRINT
Aucun affichage. Cette option n'est utile que si elle est combine avec
OUT=

Exemple
proc contents data=pub.stid193 directory;
run;
va donner:
Un rsum des fichiers se trouvant dans la bibliothque SASUSER:
CONTENTS PROCEDURE
-----Directory----Libref:
SASUSER
Engine:
V608
Physical Name: C:\SAS\SASUSER
# Name
Memtype Indexes
-----------------------------1 ACP
DATA
2 AGENTS
CATALOG
3 AGENTS
DATA
4 ARB2TYPE DATA
5 ARB3TYPE DATA
6 BUILD
CATALOG
7 BUILD
DATA
8 CLASS
CATALOG
9 CLASS
DATA
....................
36 STID193N DATA
37 VENEER
DATA

Des informations compltes sur le fichier STID193


CONTENTS PROCEDURE
Data Set Name:
Member Type:
Engine:
Created:
Last Modified:
Protection:
Data Set Type:
Label:

SASUSER.STID193
DATA
V608
9:25 Wednesday, March 29, 1995
9:25 Wednesday, March 29, 1995

Observations:
Variables:
Indexes:
Observation Length:
Deleted Observations:
Compressed:
Sorted:

-----Engine/Host Dependent Information----Data Set Page Size:


Number of Data Set Pages:
File Format:
First Data Page:
Max Obs per Page:
Obs in First Data Page:
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

4096
2
607
1
67
44

Page 294

106
9
0
60
0
NO
YES

Une liste des variables du fichier STID193:


Type indique le type des variables:
Char pour les variables caractres (alphanumriques)
Num pour les variables numriques
Len indique la longueur de chaque variable
Pos sa position dans le fichier.
CONTENTS PROCEDURE
-----Alphabetic List of Variables and Attributes----#
Variable
Type
Len
Pos
----------------------------------3
BAC
Char
3
9
4
FRA
Num
8
12
1
GROUPE
Char
1
0
5
HG
Num
8
20
6
MAT
Num
8
28
9
NBFS
Num
8
52
8
POIDS
Num
8
44
2
SEXE
Num
8
1
7
TAILLE
Num
8
36

Des informations sur un ventuel tri du fichier:


CONTENTS PROCEDURE
-----Sort Information----Sortedby:
SEXE
Validated:
YES
Character Set: ANSI

Ici, nous voyons que le fichier STID193 a t tri par rapport la variable SEXE.
Nous avons donc perdu l'ordre original de ce fichier.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 295

D.

DATASETS (gestion de bibliothques, de fichiers de donnes)


Cette procdure vous permet de grer vos fichiers de donnes. Vous pouvez
copier tout ou partie dun fichier de donnes, en supprimer, visualiser leur
contenu, diter le contenu dune bibliothque.
Vous pouvez galement modifier les noms des variables dun fichier, leur format
etc.
Syntaxe simplifie
PROC DATASETS library=nom de bibliothque <options>;
Certaines options tant:
KILL (Entrane la destruction de tous les fichiers de la bibliothque spcifie)
NOLIST (Supprime laffichage du nom des fichiers contenu dans la bibliothque
spcifie)
Attention, dans ce qui suit, les fichiers spcifis sont contenus dans la
bibliothque spcifie derrire linstruction library . Leur nom nest donc
pas compos avec celui de la bibliothque laquelle ils appartiennent .
(exemple MOI.TOTO est remplacer par TOTO)

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 296

SOUS COMMANDES de la procdure DATASETS

1.

Concatnation de fichiers
APPEND BASE=fich1 DATA=fich2 <Force>;

Pour ajouter fich2 la suite de fich1. Le rsultat est dans fich1.


Loption force oblige Sas a concatner les deux fichiers mme sils
nont pas les mmes variables.
Exemple:
Voici le contenu du fichier work.hommes:
OBS
1
2

NAME
Mary
Sharon

AGE

HEIGHT

WEIGHT

15
15

66.5
62.5

112.0
112.5

Voici le contenu du fichier work.femmes:


OBS

NAME

AGE

HEIGHT

WEIGHT

1
2
3

Guido
William
Philip

15
15
16

67.0
66.5
72.0

133
112
150

Tapons le programme suivant:


proc datasets library=work;
append base=femmes data=hommes;
run;
quit;
Le fichier work.femmes contiendra maintenant:
OBS
1
2
3
4
5

NAME
Mary
Sharon
Guido
William
Philip

AGE

HEIGHT

WEIGHT

15
15
15
15
16

66.5
62.5
67.0
66.5
72.0

112.0
112.5
133.0
112.0
150.0

Concatnation dune partie dun fichier


Il suffit dajouter la commande Where comme le montre lexemple suivant o
nous souhaitons ajouter au fichier femmes uniquement les individus du fichier
hommes dont lge est gal 15.
proc datasets library=work;
append base=femmes data=hommes(where=(age=15));
run;
quit;
Le fichier work.femmes contiendra maintenant
OBS
NAME
AGE
HEIGHT
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 297

WEIGHT

1
2
3
4

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Mary
Sharon
Guido
William

15
15
15
15

Page 298

66.5
62.5
67.0
66.5

112.0
112.5
133.0
112.0

2.

Changement de nom dun fichier


CHANGE nom actuel du fichier=nouveau-nom...;

Pour renommer un (ou plusieurs) fichier(s) de donnes.


Exemple:
Pour renommer le fichier work.femmes en work.ensemble, nous
entrons le programme suivant:
proc datasets library=work;
change femmes=ensemble;
run;
quit;

EXCHANGE nom=autre-nom1 etc...;

Pour changer les noms de 2 ou plusieurs fichiers. Ici le


fichier nom1 sera renomm autre-nom1 et le fichier
autre-nom1 sera renomm nom1 .

3.

Inventaire dune bibliothque, informations sur un fichier


CONTENTS ;

4.

Rfrez vous au paragraphe PROC CONTENTS de ce


document.

Suppression de fichiers
DELETE fichiers;

Pour supprimer les fichiers spcifis.


Exemple:
proc datasets library=work;
delete femmes;
run;
quit;
Programme dtruisant le fichier work.femmes.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 299

5.

Copie de fichiers
COPY OUT=biblio1 <IN=biblio2> <Move>;

Copie tout ou partie des fichiers de biblio2 dans la biblio1. Si IN nest


pas spcifie, cest la bibliothque de la procdure DATASETS qui est
retenue. Pour slectionner les fichiers qui doivent tre copis voir
SELECT et EXCLUDE.
Si loption MOVE est spcifie, les fichiers copis seront dtruit de
biblio2.

EXCLUDE fichiers;

Cette instruction ne peut tre utilise quaprs un COPY. Vous


spcifis ici les fichiers qui ne doivent pas tre concerns par la
commande COPY.
Exemple: Proc datasets library=sasuser;
copy out=moi;
exclude toto stid92;
Run;
Ce programme va copier tous les fichiers de la bibliothque
SASUSER dans la bibliothque MOI lexception des fichiers
SASUSER.MOI, SASUSER.TOTO. Si un Move est spcifi dans
linstruction Copy, tous les fichiers copis seront dtruits dans la
bibliothque SASUSER.

SELECT fichiers;

Cette instruction ne peut tre utilise quaprs un COPY. Vous


spcifis ici les fichiers qui doivent tre concerns par la commande
COPY.
Exemplen1:
Proc datasets library=sasuser;
copy out=moi;
select toto stid92;
Run;
Ce
programme
va
copier
seulement
les
fichiers
SASUSER.STID92, SASUSER.TOTO dans la bibliothque MOI. Si
un Move est spcifi dans linstruction Copy, ces deux fichiers seront
dtruits dans la bibliothque SASUSER.

Exemple n2:
Ce programme permet de copier sur la disquette (A:) les fichiers
CLASS, STID193 et ACP de la bibliothque SASUSER.
libname moi 'A:';
proc datasets library=sasuser;
copy out=moi in=sasuser;
select class stid193 acp;
run;
quit;

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 300

6.

Modifications sur les variables dun fichier (format, nom...)


MODIFY fichier;

Pour modifier, entre autres, les noms des variables dun fichier de
donnes, modifier les formats, les tiquettes etc... Le fichier doit tre
situ dans la bibliothque indique dans la procdure DATASETS.

Les instructions suivantes ne peuvent tres utilises quaprs une


instruction MODIFY
LABEL=tiquette du fichier de donnes;
Exemple:
Proc datasets library=sasuser;
modify stid193 (label='Questionnaire STID93');
run;
quit;
va modifier ltiquette du fichier STID193 de la bibliothque
SASUSER (Notez la prsence des parenthses) Pour voir le rsultat,
tapez le programme suivant et consultez lOutput.
Proc datasets library=sasuser;
contents data=stid193;
run;
quit;

RENAME variable1=nouveau nom

variable2=nouveau nom ...;

Pour renommer certaines variables du fichier de donnes spcifi dans


la commande Modify.
Exemple:
Proc datasets library=sasuser;
modify stid193;
rename bac=seriebac;
run;
quit;
Va renommer la variable BAC en SERIEBAC.
Pour voir le rsultat, tapez le programme suivant et consultez lOutput.
Proc datasets library=sasuser;
contents data=stid193;
run;
quit;

FORMAT liste de variables format1 liste de variables format2 ...


Exemple:
Proc datasets library=sasuser;
modify stid193;
format fra hg mat 4.1 taille 6.2;
run;
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 301

quit;
Dans cet exemple, les notes de Franais, Math et Histoire-go auront
un format 4.1 et la taille un format 6.2. (Le premier chiffre indique la
taille maximale du nombre et le deuxime, le nombre de dcimale(s)).
Pour avoir plus dinformation sur les formats disponibles, allez voir en
annexe.
Pour visualiser le rsultat faites un PROC PRINT et vous obtenez:
OBS

FRA

HG

MAT

TAILLE

103
104
105
106

8.0
11.0
10.0
6.0

12.0
6.0
12.0
6.0

17.0
12.0
18.0
15.0

165.00
160.00
167.00
168.00

Ici, on voit que la variable taille est code sur 6 caractres dont 2
dcimales.

7.

Rparer des fichiers endommags par une panne systme....


REPAIR nom de fichier;

Cette instruction a pour but de rparer les fichiers endommags par


une panne du systme.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 302

VII.
A.

Une autre faon d'utiliser SAS: SAS / ASSIST

Prsentation
SAS/ASSIST constitue une autre faon d'utiliser SAS. Ce module vous permet,
laide de quelques clics de souris, dobtenir rapidement des analyses statistiques
simples ainsi que les programmes correspondants. Notez quun nouveau module
SAS : SAS Enterprise Guide trs amusant utiliser fait un peu la mme chose
que SAS ASSIST. Lutilitaire Graph n Go est un SAS ASSIST spcialis dans les
graphiques.
123

Si cette faon dutiliser SAS savre trop limite, elle contitue nanmoins une
alternative quil ne faut pas ngliger pour une utilisation occasionelle de SAS par
exemple.

123 Ceci peut tre trs intressant pour retrouver la syntaxe dune procdure.
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 303

B.

Comment lancer SAS/ASSIST ?


Pour lancer SAS ASSIST vous pouvez aller dans le menu SOLUTIONS/ASSIST.
Choisissez ensuite WORK PLACE.
124

Vous voyez alors l'cran suivant:

C.

Exemple d'utilisation de SAS/ASSIST:


Diagramme bandes des moyennes des notes de maths selon les groupes.
Dans le menu prcdent, cliquez sur GRAPHICS. Puis sur BAR CHART :

Remplissez la boite de dialogue comme suit :

124 Lautre option permet de retrouver un SAS ASSIST conforme la V 6.12.


IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 304

Table: SAS demande ici le fichier de donnes SAS considrer. Cliquez sur ce
bouton et choisissez le fichier SAS MOI.STID193.
Bar value: Par dfaut SAS va reprsenter les effectifs. Si vous souhaitez avoir les
pourcentages cliquez sur ce bouton et choisissez ce que vous voulez.
Subset data: Correspond l'option BY des procdures SAS. Si vous souhaitez
diviser votre population en distinguant selon le sexe, vous pouvez indiquer ici la
variable sexe. ATTENTION, le fichier devra avoir t tri selon la variable (sexe
ici) si nous voulons que cela fonctionne. Pour notre exemple, nous ne divisons pas
en sous-populations.
Chart column: Quelle est la variable reprsenter ? Ici c'est le bac. Cliquez sur
le bouton et choisissez la variable BAC.
Additional options: Si vous souhaitez modifier les couleurs par dfaut du
graphique, vous pouvez aller dans ce menu et les changer votre guise.
Cliquez ensuite sur le bouton SUBMIT pour lancer la procdure SAS. Devant vos
yeux bahis, un "magnifique graphique" apparat.
125

125 Il est possible de le transfrer sous Word (Avec la souris, dlimitez la zone qui vous intresse et fait un Edit/ Copy to paste buffer,
basculez sous Word et collez) mais la copie se fait en mode Bit-map. Cette image sera trs encombrante, trs longue imprimer...
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 305

D.

Comment obtenir les instructions SAS qui ont donn le rsultat prcdent
Fermez le graphique. Vous pouvez rcuprer le programme qui vous a permis
dobtenir ce rsultat. Allez dans lediteur de programmes, la touche F4 permet de
rappeler le programme :
/*------------------------------------------------------------------*
| Summary:
|
|
Creating a grouped and stacked bar chart using the table
|
|
MOI.STID193 and charting the columns
|
|
GROUPE along the vertical axis.
|
| Generated: 02MAY2000 13:50:33
|
*------------------------------------------------------------------*/
/*------------------------------------------------------------------*
| The GOPTIONS statement allows you to have more control over the |
| final appearance of your output such as fonts, colors, text
|
| height and so on. The output device and destination is also
|
| specified in the goptions statement.
|
*------------------------------------------------------------------*/
goptions reset=(axis, legend, pattern, symbol, title, footnote) norotate
hpos=0 vpos=0 htext= ftext= ctext= target= gaccess= gsfmode= ;
goptions device=WIN ctext=blue
graphrc interpol=join;
/*------------------------------------------------------------------*
| PATTERN statements allow you to define colors and patterns in
|
| the chart, map or plot that you are creating. SAS/GRAPH uses
|
| any pattern statements that you specify. If more are needed,
|
| default PATTERN statements are used.
|
*------------------------------------------------------------------*/
pattern1 value=SOLID;
/*------------------------------------------------------------------*
| AXIS statements allow you to supply information on how your
|
| vertical and horizontal axes will appear on the graph.
|
*------------------------------------------------------------------*/
axis1
color=blue
width=2.0

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 306

;
axis2
color=blue
width=2.0
;
axis3
color=blue
width=2.0
;
/*------------------------------------------------------------------*
| This section produces the actual bar chart and contains the
|
| options that directly relate to the data and the axis area.
|
*------------------------------------------------------------------*/
proc gchart data=MOI.STID193;
VBAR3D GROUPE /

maxis=axis1
raxis=axis2
frame
type=MEAN
sumvar=NOTEMAT
patternid=midpoint
;
run; quit;

Exercices :
I) Effectuez des statistiques lmentaires sur les individus de STID193 pour les
variables : Taille, Poids. (Mean, Max, Min etc.) Rcuprez le programme
correspondant.
II) Faites un TTest tester la diffrence de moyenne entre les tailles des hommes et
celles des femmes des STID de france (en supposant que les STID193 sont un
chantillon alatoire reprsentatif de la population des STID de france)
Dans SAS/ASSIST choisissez DATA ANALYSIS, ANOVA puis TTEST. Choisissez
ensuite la bonne option. (paired=apparie cf arbres debout et abattus de la fiche de tests
Minitab)
Active data set: Donnez le fichier STID193.
"Dependent variable": est la variable sur laquelle nous faisons le test: Taille.
Quant la variable de "classification" c'est le sexe.
Le rsultat s'affiche. Interprter le rsultat. Choisissez File/End pour revenir SAS
ASSIST.
Si vous le souhaitez, vous pouvez rcuprer le programme SAS par la touche
RESULTS.
126

126 Vous pouvez consultez le paragraphe TTEST de ce document pour interprter cette sortie.
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 307

VIII. PETIT DICTIONNAIRE ANGLAIS-FRANCAIS


pour l'utilisation de SAS
_______
Anglais-US
Analysis
To average
Axis
To cancel
Chi square
To clear
Column
Cumulative function
Cut
Data
Decreasing
Density
Discard graph
Drop
Eigen value
Eigen vector
factorial design
experiment
exponential smoothing
File
Fill
Fonts
Frequency
Hide
Increasing
Keep
Label
Management (data)
Marked
Mean
Median
Merge
Model

Franais
Analyse
Faire la moyenne
Axes
Annuler

Effacer
Colonne
Fonction de rpartition
Couper
Donne
Dcroissant
Densit
Effacer le graphe
Enlever
Valeur propre
Vecteur propre
Plan d'experience (factoriel)

Anglais-US
Near
Nearest
None
To paste
Percent
Popup menu
Random
Remaining
Recall
Rename
Row
Run
Setup
Slice

Small
Smallest
Smoothing
Solid
Sort
Sum of
Squares (USS
ou CSS)
Range
Etendue
Rank
Rang
Time serie
Srie chronologique
To remove
Enlever, ter
To round
Arrondir
Ties
Exaequo
Toolbar
Barre d'outils
Toolbox
Bote d'outils
Unmark
Ne plus slectionner
Values
Valeurs
Window
Fentre
Worksheet
Feuille de donnes

Lissage exponentiel
Fichier
Remplissage
Polices de caractres
Effectif
Cacher
Croissant
Garder
Etiquette (lgende)
Gestion(de donnes)
Slectionn (e)
Moyenne (arith. en gn.)
Mdiane
Fusionner
Modle

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Franais
Prs (de)
Le plus prs
Aucun
Coller
Pourcent %
Menu contextuel
Alatoire
Restant (es)
Rappeler
Renommer
Ligne (worksheet)
lg sas: excuter
Configuration
Portion (de
graphique
camenbert)
Petit
Le(la,les) plus
petit(es)
Lissage
Plein (remplissage)
Trier
Somme des carrs

Page 308

IX.

BIBLIOGRAPHIE COMMENTEE

Cette bibliographie nest pas exhaustive. Elle contient les livres qui vous sont accessibles
pour approfondir le cours de Statistiques et pour lutilisation de SAS.

Ouvrages statistiques

Thorie

et mthodes statistiques tomes 1 et 2, Pierre Dagnlie, Presses


agronomiques de Gembloux 1992. Ces ouvrages couvrent le cours du DUT STID, ils
comportent beaucoup dexemples. Trs utile pour approfondir le cours vu en STID. Ils
sont aussi assez cher (250FF par tome environ)

Analyse statistique plusieurs variables, Pierre Dagnlie, Presses agronomiques de


Gembloux 1975. Idem

Mthodes Statistiques en Gestion, Michel Tenenhaus, Dunod Entreprise 1994. Ce


livre est essentiellement pratique. Cet ouvrage ne comporte pratiquement pas de
dmonstrations mathmatiques. Il couvre un large ventail de notions (Tests, ANOVA,
Rgression linaire, , Sries temporelles, ACP, AFC, Classification hirarchique) et est
illustr par de nombreux exemples numriques entirement traits sur SAS,
Statgraphics...

Analyses factorielles simples et multiples, Brigitte Escofier, Jrme Pages, Dunod


1990 Cest un ouvrage trs complet sur les analyses factorielles. A utiliser pour
approfondir les notions vues en STID.

Rgression non linaire et application, Anestis Antoniadis, Jacques


Berruyer, Ren Carmona, Economica 1992. Ouvrage qui permet de

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 309

prolonger votre cours sur la rgression non linaire. Il apporte galement


des complments intressants sur la rgression linaire.

Probabilits, Analyse des donnes et Statistique, Saporta, Technip 1990.


Ouvrage thorique de rfrence en probabilit et statistique.

Documentation SAS
Les trois ouvrages suivants sont indispensables pour lutilisation du module SAS de
base.

SAS

Companion for the Microsoft Windows environment Version 6 premire


dition. Ouvrage indispensable pour utiliser SAS dans lenvironnement Windows PC.

SAS

Language version 6, premire dition. Comme son nom lindique vous


trouverez tout ce qui concerne le langage SAS. Il doit tre accompagn de louvrage
suivant pour utiliser les procdures SAS.

SAS Procedures Guide version 6, 3me dition. Attention, vous ne trouverez dans cet
ouvrage que les procdures du module SAS de base. Pour les procdures purement
statistiques, il faut vous rfrer aux ouvrages suivants. Pour la procdure SQL, il existe
un ouvrage spcifique cf. ci-dessous.

SAS guide to the SQL procedure Version 6 First Edition. Cet ouvrage trs clair
dcrit les possibilit (nombreuses) de la procdure SQL. Elle constitue, elle seule, une
autre faon dutiliser SAS grce au langage SQL.

SAS guide to Macro Processing Version 6 Second Edition. Cet ouvrage, trs clair,
permet dutiliser les Macros du langage SAS. Cest un ouvrage indispensable pour qui
utilise le langage SAS couramment.

SAS

technical reports P222 et P242 Release 6.07 et 6.08. Ils dcrivent les
changements et les amliorations pour la version 6.07et 6.08 du module SAS de base
(PROC Contents, Datasets, SQL...)

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 310

Module STAT

SAS/STAT User's Guide Volumes 1 et 2 version 6, 4me dition Ces 2 volumineux


ouvrages dcrivent les procdures du module STAT (REG, ANOVA, GLM,
PRINCOMP, TTEST et cie)

SAS technical report P229 Release 6.07 Dcrit les changements pour le module
STAT version 6.07.

Module SAS/ACCESS

SAS/ACCESS Interface to PC File Formats Usage and reference, Version 6 first


edition.Comme son nom lindique, elle dcrit lutilisation des procdures du module
SAS/ACESS permettant de lire et de transfrer les fichiers au format Dbase.

Module SAS/FSP

SAS/FSP

Software Usage and Rfrence, Version 6 First edition Il dcrit les


procdures FSVIEW, FSBROWSE... Cest un ouvrage trs clair et accessible.

Module SAS/AF, langage SCL


SAS Screen Control Language : Rfrence Version 6, Second Edition
pour accder la syntaxe dune commande SCL. Tout y est.
SAS Screen Control Language : Usage Version 6, First Edition
pour des exemples de programmation SCL. Manipulation des fichiers de donnes en
SCL etc.
SAS/AF Software : Frame Entry : Usage and Rfrence, Version 6, First Edition.
Pour avoir des dtails sur les objets accessibles dans les entres de type FRAME, les
mthodes...

Module SAS/ASSIST

Introduction au Systme SAS avec le logiciel SAS/ASSIST Version 6, deuxime


dition.

Doing more with SAS/ASSIST software Version 6, First edition.


Ces deux ouvrages expliquent lutilisation de SAS grce au module SAS/ASSIST. Ils
sont trs conviviaux. Le premier est en franais et le deuxime en anglais.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 311

X.

ANNEXES

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 312

A.

Raccourcis clavier
La touche F9 lance laffichage des commandes associes aux touches de
fonction :
Vous pouvez les modifier en tapant simplement en face de la combinaison de
touches associe la commande souhaite.
Touche
F1
F2
F3
F4

Commande
help
reshow
end
recall
pgm
log
output
zoom off ;
submit
keys
command bar

SHF
SHF
SHF
SHF
SHF
SHF
SHF
SHF
SHF
SHF
CTL
CTL
CTL
CTL
CTL

F5
F6
F7
F8
F9
F11
F12
F1
F2
F3
F6
F7
F8
F9
F10
F11
F12
A
B
D
E
F

CTL
CTL
CTL
CTL
CTL
CTL
CTL
CTL
CTL
CTL
CTL
CTL

G
H
I
J
K
L
M
Q
R
T
U
W

Signification
Aide
Fermeture de la fentre en cours (OUTPUT)
Rappel du dernier programme tap (program
EDITOR)
Fentre program editor active
Fentre log active
Fentre output active
Cet cran
Barre de commande

subtop

Compilation de la premire ligne du program editor

left
right

A gauche
A droite

wpopup

Menu contextuel, clic droit de la souris

libname
dir
clear
footnote

Affichage des bibliothques en cours


Affichage du contenu de la bibliothque en cours
Nettoyage de la fentre active
Affichage de la fentre de footnote qui permet de
dfinir les notes de bas de page afficher chaque
nouvelle page.

help
options

Aide
Liste des options du systme SAS

cut
log
mark
filename
rfind
title
unmark
access

Couper
Fentre LOG active.
Marquer
Liste des fileref

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Liste des titres afficher sur chaque page


Annuler la marque
Fentre ACCESS

Page 313

B.

OPERATEURS ET FONCTIONS

1.

Les oprateurs

a)

arithmtiques
Syntaxe
*
/
+
**
><
<>

b)

Nom
Multiplication
Division
Addition
Soustraction
Puissance
Maximum
Minimum

Exemple
AIRE=LON*LAR
TACM=TAM/100
TOT=PRIX1+PRIX2
MONTANT=PRIX-REMISE
CUBE=ABSCISSE**3
MAX=MATH1><MATH2
MIN=MATH1<>MATH2

de comparaisons
Syntaxe

Signification

= ou EQ
^= ou NE
> ou GT
< ou LT
>= ou GE
<= ou LE

gal (EQual)
diffrent de (Not Equal)
suprieur strictement (Greater Than)
infrieur strictement (Less Than)
suprieur ou gal (Greater or Equal)
infrieur ou gal (Less or Equal)

Exemples
IF NOM='MARTIN' THEN... (slectionne tous les individus dont la
variable NOM est gale MARTIN)
IF NOTMAT >=10 THEN... (slectionne tous les individus qui ont la
moyenne en maths)
c)

logiques
Syntaxe

Signification

AND
OR
NOT

et
ou
non

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 314

d)

divers
IN permet de simplifier des tests: IF num IN (1,3,5) THEN ...remplace la
suite d'instructions: IF num=1 THEN... IF num=3 THEN... etc...
: (deux points) Comparaison de chaines de caractres.
Si : suit l'oprateur, la comparaison entre deux chaines de caractres va s'effectuer
sur les deux chaines dont on ne gardera que le mme nombre de caractre. (Ce
nombre tant le minimum entre les deux longueurs). Par exemple:
IF NOM='M' THEN slectionne tous les individus dont le nom est gal M
IF NOM=:'M' THEN slectionne tous les individus dont le NOM commence par M
IF NOM=:'MA' THEN... slectionne tous les individus dont le NOM commence par

MA.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 315

2.

Les fonctions

a)

Statistiques usuelles
Nom
CSS
CV
KURTOSIS

Signification
2
Somme des carrs corrige ( xi x )
Coefficient de variation ( STD/MEAN)
Kurtosis (Ce coefficient mesure laplatissement dune
distribution. Un nombre ngatif indique gnralement une
distribution plus pointue quune distribution normale;
inversement, un nombre positif indique une distribution
plus aplatie quune distribution gaussienne)
Formule:

n(n + 1)
(n 1)
zi4 3

(n 1)( n 2)( n 3)
(n 2)( n 3)

xi x
(variable centre rduite)
s
La plus grande valeur
La plus petite valeur
La moyenne arithmtique
Nombre de non-manquants
Nombre de manquants
L'tendue (MAX-MIN)
Skewness (Ce coefficient mesure lasymtrie dune
avec

MAX
MIN
MEAN
N
NMISS
RANGE
SKEWNESS

zi =

distribution. Une valeur plus grande ou plus petite que


zro indique une distribution disymtrique)

n
zi3
( n 1)( n 2)
(variable centre rduite)
Formule:

STD
STDERR
SUM
USS

avec

zi =

xi x
s

Dviation standard VAR


Erreur standard STD / n
Somme
2
Somme des carrs xi

2
Variance 1 / ( n 1) ( xi x ) = CSS / ( n 1)

VAR
Exemple d'utilisation

data moy;
set sasuser.stid193;
keep hg math fra moy ;
moy=mean(hg,mat,fra);
run;

Un nouveau tableau de donnes WORK.MOY est cr...

proc print;
var moy;
run;

Affiche le dernier fichier de donnes cr...


Uniquement avec la variable Moy

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

partir du fichier STID193 de SASUSER...


en ne conservant que les variables hg, math, fra et moy
cette dernire tant la moyenne des trois notes

Page 316

b)

Probabilistes
Fonctions de
rpartition
POISSON( ,m)
PROBBETA(x,a,b)
PROBBNML(p,n,m)
PROBCHI(x,ddl)
PROBF(x,nuddl,deddl)

PROBGAM(x,a)
PROBNORM(x)
PROBT(x,ddl)

Signification
P ( X m) o X suit une loi de Poisson de paramtre
P ( X x ) o X suit une loi Beta(a,b)

Fonction Inverse
BETAINV(p,a,b)

P ( X m) o X suit une loi binomiale B(n,p).


P ( X x) o X suit une loi du ddl degrs de libert CINV(p,ddl)
FINV(p,nuddl,deddl)
P ( X x ) o X suit une loi de Ficher-Snedeccor

nuddl degrs de libert pour le numrateur et deddl pour le


dnominateur.
P ( X x ) o X suit une loi Gamma de paramtres (a,1)
P ( X x ) o X suit une loi normale N(0,1)
P ( X x ) o X suit une loi de Student ddl degrs de
libert.

GAMINV(p,a)
PROBIT(p)
TINV(p,ddl)

Exemple n1:
Je veux calculer le fractile d'ordre 0.95 d'une loi du 20 degrs de libert. (ou
encore x? tel que P ( X x ) = 0. 95 o X est une VA suivant un 20 ddl)
data _null_;
_null_ pour que les donnes ne soient pas conserves en mmoire.
x=CINV(0.95,20);
calcule la valeur voulue.
put x;
et l'affiche dans la fentre LOG.
run;
lance l'excution.
Exemple n2:
Je veux calculer P(X=3) o X suit une loi binomiale B(10,0.57). En remarquant
que P ( X 2) + P ( X = 3) = P ( X 3) (loi discrte),cette valeur est en fait
P ( X 3) P ( X 2 ) . D'o:
data _null_;
x=PROBBNML(0.57,10,3)-PROBBNML(0.57,10,2);
put x;
run;

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 317

Gnration de nombres alatoires

Gnre une ralisation d'une VA suivant


une ...

RANBIN(seed,n,p)
RANCAU(seed)
RANEXP(seed)
RANGAM(seed,a)
RANNOR(seed) (ou NORMAL)
RANPOI(seed,m)
RANUNI(seed) (ou UNIFORM)

loi binomiale B(n,p)


loi de cauchy de paramtres 0,1.
loi exponentielle de paramtre 1
loi Gamma de paramtres a,1.
loi normale N(0,1)
loi de Poisson de paramtre m
loi uniforme U[0,1]

Note: seed (graine en anglais) vous permet d'obtenir les mmes squences de nombres alatoires (avec la
mme graine initiale). Si vous n'uilisez pas cette possibilit, choisissez pour seed la valeur 0 (la graine est
dtermine partir de l'heure et de la date) Voir lexemple suivant.

Exemple: Gnrez 1000 ralisation d'une N(2,3).


DATA alean23;
Un fichier temporaire WORK.ALEAN23 est cr.
DO I=1 TO 100;
Nous allons rpter 100 fois un groupe d'instruction (FOR du Pascal)
x=RANNOR(12)*3+2;
x est une ralisation d'une N(2,3)
OUTPUT;
Nous plaons cette valeur dans le fichier
END;
La boucle est termine.
KEEP x;
Nous ne conservons que la variable x dans le fichier(i est inutile)
RUN;
PROC PRINT;
RUN;
Remarque: Si vous excutez 2 fois cette squence, vous obtiendrez la mme srie de nombre (car la graine est
impose 12. Par contre, si vous mettez 0, les deux squences obtenues seront diffrentes. Essayez !

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 318

c)

Mathmatiques
Syntaxe
ABS(x)
ARCOS(x)
ARSIN(x)
ATAN(x)
CEIL(x)

Signification

Valeur absolue de x
Arccosinus(x)
Arcsinus(x)
Arctangente(x)
Retourne le plus petit entier suprieur ou gal l'argument
(Ceil(3.2)vaut 4)
COS(x)
Cosinus
COSH(x)
Cosinus hyperbolique
DIGAMMA(x)
La drive du logarithme de la fonction Gamma
EXP(x)
Exponentielle de x
FLOOR(x)
Retourne le plus grand entier infrieur ou gal l'argument
(Floor(3.2) vaut 3)
GAMMA(x)
Fonction Gamma
INT(x)
Partie entire de x
MAX(x1,x2,...,xn) Retourne la plus grande valeur
MIN(x1,x2,...,xn) Retourne la plus petite valeur
MOD(x,y)
Reste dans la division de x par y
LGAMMA(x)
Lorarithme nprien de la fonction Gamma
LOG(x)
Logarithme nprien de x
LOG10(x)
Logarithme dcimal de x
ROUND(x,y)
arrondi x y prs ex: Round(223.456,0.01) donne 223.46
SIGN(x)
Signe de x (-1 si ngatif, 1 si positif, 0 si nul)
SIN(x)
Sinus(x)
SINH(x)
Sinus hyperbolique
SQRT(x)
Racine carre
TAN(x)
Tangente(x)
TANH(x)
Tangente hyperbolique
TRIGAMMA(x) La drive de DIGAMMA.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 319

d)

Date et heure
Syntaxe
DAY(date)
MONTH(date)
YEAR(date)
WEEKDAY(date)
MDY(month,day,
year)
MINUTE(time)
HOUR(time)
SECOND(time)
HMS(hour,minute
,second)
TODAY( )
TIME( )

Signification
Retourne le jour dune date donne
Retourne le mois dune date donne
Retourne lanne dune date donne
Retourne le jour de la semaine dune date
Retourne une date SAS correspondant au jour/mois/anne cits en
argument.
Retourne les minutes dune heure donne
Retourne les heures dune heure donne
Retourne les secondes dune heure donne
Retourne une heure SAS correspodant aux heures minutes et
secondes cites en argument.
Retourne la date courante. Ne rien mettre entre les parenthses.
Retourne lheure courante

Voir lannexe sur les Formats-Informats pour la manipulation des dates.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 320

C.

Format et Informat

1.

Formats
SAS dispose denviron 70 formats daffichage pour les variables. (nombre,
date, heure, chane de caractre...Si vous ne trouvez pas votre bonheur, vous pouvez
toujours dfinir vos propres formats, informats, masques daffichage en utilisant
PROC FORMAT (cf. ce document)
Pour modifier le format dune variable, il y a plusieurs possibilits. Si votre
fichier de donnes existe dj, vous pouvez utiliser la procdure DATASETS ou
PRINT (sous commande Format). Si vous tes en train de crer votre fichier de
donnes, vous pouvez spcifier directement le format dans la commande DATA
servant crer ce fichier. Le format sera alors toujours attach la variable.
Pour connatre les formats en cours des variables de vos fichiers, il suffit dexcuter
une procdure Contents (Datasets).
Exemple simple:
data work.essai;
input x;
format x 7.1;
cards;
1528
1255.325
15255.3
1228.62
1148.5
run;
Proc print;
run;

donnera la sortie:
OBS
1
2
3
4
5

X
1528.0
1255.3
15255.3
1228.6
1148.5

Le format (7.1) spcifi signifie que les nombre doivent tre reprsents sur 7
caractre dont une dcimale.
Un format 10.4 donnerait:
OBS
X
1
1528.0000
2
1255.3250
3
15255.3000
4
1228.6200
5
1148.5000

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 321

Liste de quelques formats


Signification des symboles utiliss
w est un nombre entier donnant la largeur maximale de la reprsentation du
nombre. Si le nombre est omis, juste la place ncessaire sera alloue.
d est un nombre entier gal au nombre de dcimales (pour une variable
numrique)
Le format de lexemple prcdent a pour abrviation: w.d

Formats de nombres:
Format
(syntaxe)

Valeur non
formatte

Format (pour
notre exemple)

Valeur
formatte

w.d
BESTw.

125.236

6.2
best3.

125.24

BINARYw.
COMMAw.d

123
23451.23

binary.
comma10.2

01111011
23,451.23

COMMAXw.d

23451.23

commax10.2

23.451,23

DOLLARw.d
DOLLARXw.d
Ew.
FRACTw.
HEXw.

1254.71
1254.71
1257
0.666666666667
0.2784
88

dollar10.2
dollarx10.2
e10.
fract4.
fract.
hex8.

$1,254.71
$1.254,71
1.257E+03
2/3
174/625
00000058

OCTALw.

3592

octal6.

007010

PERCENTw.d
ROMANw.

0.1
1.2
-0.05
1992

percent10.
percent10.
percent10.
roman10.

10%
120%
( 5%)
MCMXCII

WORDFw.

wordf15.

two

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 322

Remarque
Cest le format standard.
Sas cherche le meilleur
format.
Passage en binaire.
Sparateur des milliers
(version US)
Sparateur des milliers
(version franaise !)
Notation scientifique
Convertion sous forme
fractionnaire
Conversion en base 16
(hexadcimal)
Conversion en base 8
(octal)
Convertit en %, le nombres
ngatifs
sont
entre
parenthses.
Convertit
en
chiffres
romains !
Convertit les nombres en
lettres

Exemple:
Si vous voulez convertir 1995 en chiffres romains, il suffit de taper le
programme suivant et de regarder la LOG
data essai;
x=1995;
put x roman10.;
run;
Vous pouvez alors voir que 1995=MCMXCV !!!
Et en lettres:
data essai;
x=1995;
put x wordf60.;
run;
on obtient alors:
1995= one thousand nine hundred ninety-five and 00/100 !!!

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 323

Formats de dates, heures...


Prliminaires sur les dates, heures et dateheure SAS.
Dates
Les dates sous SAS sont codes sous forme numriques. Le 0 correspond au
1/1/1960 le 1 au 2/1/1960 etc... Les nombres ngatifs correspondent aux dates
antrieures au 1/1/1960.
Ainsi le 26/7/1989 est cod 10799 par SAS. (Il y a donc 10799 jours entre le
1/1/1960 et le 26/7/1989 !)
Il est naturellement possible dafficher les dates convenablement grce qux formats
qui suivent.
Les dates sur deux chiffres sont codes partir de 1900. 56 signifie 1956. Pour
modifier cela, en rapport avec lan 2000, voir loption YEARCUTOF de
linstruction OPTIONS. CF. cette annexe.
Heures
Les heures sous SAS sont codes de la mme faon en secondes partir de minuit.
Ainsi 9H30 et cod 34200. (Il y a 34200 secondes entre minuit et 9H30 !)
Date et heure
Enfin SAS possde un systme spcial de codage dune date et dune heure dans un
mme nombre. Cest le nombre de secondes entre le 1/1/1960 minuit et votre date et
heure. Ainsi, le 5/6/1989 9H30 est cod 928661400.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 324

Format
(syntaxe)

Valeur non
formatte

DATEw.

10847

DATETIMEw.d

10847

DAYw.
DDMMYYw.

10919
11316
11316
11316
11316
11316

Format (pour
notre exemple)

Valeur
formatte

date5.
date7.
date9.
datetime7.
datetime12.
datetime18.
day2.
ddmmyy5.
ddmmyy6.
ddmmyy8.
ddmmyyp8.
ddmmyyd8.

12SEP
12SEP89
12SEP1989
12SEP89
12SEP89:03
12SEP89:03:19:43
23
25/12
251290
25/12/90
25.12.90
25-12-90

10621
10621
46796
41400
41400
41400
10847
10847
10847

downame.

Sunday

hhmm.
hour4.1

13:00
11.5

mmddyy5.
mmddyy6.
Mmddyy8.

09/12
091289
09/12/89

MMSSw.d

4530

mmss.

75:30

MMYYxw.

29may1989

MONNAMEw.

10919

mmyy5.
mmyyc7.
mmyyd7.
mmyyp6.
mmyys7.
monname9.

05M89
05:1989
05-1989
05.89
05/1989
November

MONTHw.

10919

month.

11

MONYYw.

10750

monyy7.

JUN1989

QTRw.

10741

qtr.

QTRRw.

10897

qtr.

IV

TIMEw.d
WEEKDATEw.

59083
10848

time.
weekdate3.

16:24:43
Wed

DDMMYYxw.

DOWNAMEw.
HHMMw.d
HOURw.d
MMDDYYw.
Et
MMDDYYxw.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 325

Remarque

Les chiffres apparaissant


aprs la date sont les heures
minutes secondes.
Cest le jour du mois
Format europen classique.
x peut prendre les valeurs :
B pour un blanc.
C pour une virgule
D pour un tiret
N pour rien
P pour un pont.
S pour une barre de
fraction.
Retourne le jour de la
semaine
Ecrit lheure et la fraction
dcimale
de
lheure.
(11.5=11H30)
Attention, le mois est avant
le jour ! (format courant
amricain)
Le x peut prendre les
valeurs :
B pour un blanc.
C pour une virgule
D pour un tiret
N pour rien
P pour un pont.
S pour une barre de
fraction.
Convertit une variable
horaire en minute et
seconde aprs minuit.
Formate une date en mois
et anne spares par un
caractre.
Affiche le mois en lettre
dune date.
Affiche le mois en chiffre
dune date.
Affiche le mois et lanne
dune date.
Affiche le n du trimestre
correspondant la date en
question.
Idem mais en chiffres
romains !

weekdate9.
weekdate15.
weekdate17.
weekdatx.

Wednesday
Wed, Sep 13, 89
Wed, Sep 13, 1989

WEEKDATXw.

10848
10848
10848
10869

WEEKDAYw.

10621

weekday.

WORDDATEw.

11212

Sep
September
Sep 12, 1990

YEARw.
YYMMxw.
YYMMDDw.

11212
11212
11212

worddate3.
worddate9.
worddate12.
worddate18.
year4.
yymmc7.
yymmdd8.

Wednesday, 4 October
1989

Jour de la semaine dune


date (1=dimanche, 2=lundi
etc...)

September 12, 1990

1990
1990:09
90-09-12

Et

x peut prendre les valeurs :


B pour un blanc.
C pour une virgule
D pour un tiret
N pour rien
P pour un pont.
S pour une barre de
fraction.

YYMMDDxw.

YYMONw.
YYQxw.

10621
11212

yymon7.
yyqc6.

1989JAN
1990:3

YYQRxw.

11212

yyqrc8.

1990:III

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 326

Anne suivie du numro de


trimestre
Idem mais le numro de
trimestre est en chiffres
romains.

Exemples dutilisation:
Avec la date...
Une runion est prvue le 27 janvier 1995 et je souhaite envoyer un courrier 45
jours avant. A quelle date cela correspond-il ?
data _null_;
date='27JAN1995'D;
envoi=date-45;
put envoi DDMMYY8.;
run;

Le D indique SAS que la chaine de caractres est une date.

Donnera dans la Log: 13/12/94.


avec lheure...
Ici on va retire 10 minutes 10:03 et afficher le rsultat.
data _null_;
heure='10:03'T;
envoi=heure-600;
put envoi TIME10.;
run;

On initialise lheure. Le T signale SAS quil va lire une heure.


On retire 10 minutes (=600 secondes).

On obtient alors: 09:53:00.


avec la date et lheure en mme temps
Supposons que lon veuille connatre le nombre de minutes entre le 1/5/1966 4H
et le 27/04/1995 09:26. (Problme compltement stupide je vous laccorde !)
data _null_;
date1='01may1966:04:00'DT;
date2='27apr1995:09:27'DT;
diff=(date2-date1)/60;
put diff;
run;

DT indique SAS que lon va lire une Date+Heure


Avril=April in English !
La diffrence est en secondes...

(On trouve 15247047 minutes !)

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 327

Exercices
I) Calculez votre age en annes puis en heures (si vous connaissez votre heure de
naissance.
II) Quel jour (de la semaine) tes-vous ns ?
Complment
Il est possible de crer ses propres formats et de les appliquer ensuite des
variables adquates. Pour en savoir plus, allez consulter le paragraphe PROC
FORMAT de ce document.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 328

2.

Les Informats
Ils sont utiliss pour lire des donnes qui ont un format spcial dans un fichier texte externe.
Vous pouvez en dfinir de nouveaux avec la procdure FORMAT.
Exemple
Le fichier STID93 contient une variable date de naissance que SAS considre
(pour linstant) comme chane de caractres. Aucun calcul nest donc possible
dessus.
Grce un Informat, nous pouvons prciser SAS ce quil va lire (une date) et
dans quel ordre seront les lments qui la constitue.
Voici un exemple en supposant les donnes incluses dans le programme.
data work.age;
input datnaiss ddmmyy10. ;
aujour=today();
agejour=aujour-datnaiss;

Nous indiquons SAS quil va lire une date


dans les 10 premiers caractres avec dans
lordre le jour, le mois, lanne.
Donne le jour daujourdhui.
Nous calculons lage en jours.

agean=int(agejour/365.25);

Nous calculons lage en annes.


Nous prenons la partie entire
Nous donnons des formats daffichages...
Les dates apparaitront en clair.

format datnaiss date.;


format aujour date.;
cards;
01/05/1966
23/10/1975
23/05/1944
;
run;
proc print;
run;
Nous obtenons laffichage:
OBS
1
2
3

DATNAISS
01MAY66
23OCT75
23MAY44

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

AUJOUR
27APR95
27APR95
27APR95

AGEJOUR
10588
7126
18601

Page 329

AGEAN
29
20
51

Avec une lecture en colonnes


Nous supposons que le fichier STID193 (format texte) contient la date de
naissance des individus sur les colonnes 8 17 sous la forme jj/mm/aaaa.
(exemple 20/06/1975.)
Le programme suivant ralise limportation des dates.
data work.naiss;
infile 'z:\public\stid193.txt' missover firstobs=2;
input @8 datnaiss ddmmyy10.;
an.

format datnaiss date.;

Cest la ligne cl ! Le @8 demande SAS de lire


partir de la colonne 8. Le ddmmyy10. signale que
la date est sur 10 caractres dans lordre jour mois

Pour permettre laffichage en clair de la date dans


le Proc Print ci-dessous.

run;
proc print;
run;
L affichage donne:
OBS

DATNAISS

1
2
3
4

21OCT73
08DEC74
15AUG72
10NOV72

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 330

Quelques Informats
Syntaxe

Valeur lire

Informat utilis
pour la lire

Rsultat de
la lecture

$w.

Marie-Christine

$10.

Marie-Chri

$HEXw.

6C6C

$hex4.

11

$COMMAw.d

$1,000,000
(500)
$1.000.000

comma10.
comma10.
commax10.

1000000
-500
1000000

1jan1990
01 jan 90
1 jan 90
1-jan-1990
23dec89:10:03:17
231090
23/10/90
23 10 90
1.257E3

date10.

10958
10958
10958
10958
946029797
11253
11253
11253
1257

88F
010190
1/1/90
01 1 90
jun89
1%
(20%)
14:22:25

hex3.
mmddyy8.

900101
90-01-01

yymmdd8.

COMMAXw.d.
DATEw.

DATETIMEw.
DDMMYYw.
Ew.d
HEXw.
MMDDYYw.
MONYYw.
PERCENTw.d
TIMEw.
YYMMDDw.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

datetime20.
ddmmyy8.
e7.

monyy5.
percent3.
percent5.
time8.

2191
10958
10958
10958
10744
0.01
-0.2
51745
10958
10958

Page 331

Remarques
Lit une chane de longueur
w. (8 par dfaut)
Convertit
une
chane
hexadcimale en chane de
caractres.
Enlve les , () $ des
nombres.
Idem en changeant les
rles des , et les .

Lecture de dates
exemple ci-dessus)

(cf

Lecture de nombres en
notation scientifique.

Conversion de %
Lecture dheures minutes
secondes.

D.

Commande ou fentre OPTIONS en langage SAS


Cette instruction ou fentre permet de grer laffichage dans la fentre OUTPUT,
dafficher le contenu des variables macros ou des programmes et bien dautres choses
encore.

1.

La fentre doptions
Elle est active en faisant un CTRL I ou en allant dans
GLOBAL/OPTIONS/GLOBAL OPTIONS.
Vous obtenez ce qui suit :

Vous pouvez modifier les paramtres comme vous le souhaitez.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 332

2.

Linstruction
Exemples :
Dans le program Editor lancez un
Options linesize=70 pagesize=50 ;
Ceci vous permet de changer 70 le nombre de caractres par lignes dans la
fentre OUTPUT et 50 le nombre de lignes par page.
Options nodate nonumber ;
Va vous permettre de supprimer laffichage de la date et des numros de page
dans la fentre OUTPUT. Un Options date number ; remettra tout
comme avant !
Voici quelques options parmi les principales.
Nom
AUTOEXEC=
CENTER/ NOCENTER
CONFIG=
DATE/ NODATE
ECHOAUT
O/NOECHOAUTO
ERRORS=n
FIRSTOBS=n
FMTERR/NOFMTERR

FORMDLIM=
FULLSTIMER/
NOFULLSTIMER
GWINDOW/
NOGWINDOW
IMPLMAC/
NOIMPLMAC
INITCMD

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Signification
Spcifie le nom du fichier excuter au lancement de
SAS
Centre ou non les sorties dans lOUTPUT
Spcifie le nom du fichier de configuration prendre en
compte sous SAS
Affiche ou non la date dans lOUTPUT
Affiche ou non lautoexec dans la LOG lorsquil est
excut.
N est le nombre derreurs afficher compltement dans la
LOG.
Obligera SAS ne lire qu partir de la nieme
observation dans les fichiers de donnes Elle est
initialise 1 par dfaut.
Spcifie si SAS doit sarreter ou non lorsquil rencontre
un format de variable inconnu. Dans le cas ou
NOFMTERR est active, le format dfaillant est
remplac par w. ou $w.
Spcifie un caractre utiliser lors des sauts de pages de
SAS dans lOUTPUT.
Affiche ou non des statistiques internes de SAS sur la
performance du systme (occupation mmoire etc) lors de
lexcution du code
Affiche ou non les graphiques haute rsolution dans le
display manager.
Autorise le compilateur SAS vrifier sil rencontre des
macros, ce qui ralentit le temps dexcution.
Supprime laffichage des fentres LOG, OUTPUT et
PROGRAM EDITOR lors du lancement dune
application AF
Page 333

INVALIDDATA=caractr Spcifie la modalit prise par dfaut lorsque INPUT lit


e
une mauvaise valeur. Par dfaut cest un point .
LABEL / NOLABEL
Spcifie si oui ou non les procdures SAS peuvent utiliser
ou non les labels
_LAST_=nom de fichier
Spcifie le nom du dernier fichier cr.
SAS
LINESIZE=
Nombre de caractres par ligne.
LOG=destination /
Choisit une destination pour le contenu de la fentre LOG
NOLOG
ou supprime la fentre LOG
MACRO / NOMACRO
Spcifie si oui ou non le langage MACRO est disponible
ou non.
MAPS= bibliothque
Bibliothque SAS contenant les cartes du module
GRAPH
MAUTOSOURCE /
Spcifie si oui ou non lautocall est disponible pour les
NOMAUTOSOURCE
macros.
MERROR / NOMERROR Spcifie si le systme renvoie une erreur sil rencontre un
nom de macro inconnu.
MISSING=caractre
Spcifie le caractre pour les valeurs manquantes. Cest
un point . par dfaut.
MLOGIC / NOMLOGIC
Spcifie si oui ou non, le processeur de macro trace
lxcution de celle ci quant aux conditions %IF etc.
MPRINT / NOMPRINT
Affiche ou non les instructions lors de lexcution dune
macro.
MSGCASE /
Spcifie si les messages affichs dans les notes, warnings
NOMSGCASE
sont en majuscules ou non.
MSGLEVEL= N ou I
Affiche moins ou plus dinformations dans la fentre
LOG. N par dfaut.
MSTORED /
Autorise ou non SAS utiliser des macros compiles.
NOMSTORED
NEWS=fichier
Contient un fichier mettre dans la fentre LOG.
NOTES / NONOTES
Spcifie si les notes sont affiches dans la LOG ou non.
NUMBER / NONUMBER Spcifie si SAS affiche les numro de page dans la
fentre OUTPUT ou non. Voir aussi PAGENO= et
DATE
OBS= numro
Spcifie quelle observation SAS utilisera en dernier. A
combiner avec FIRSTOBS=
OVP / NOOVP
Spcifie si SAS souligne les erreurs dans la LOG ou non.
PAGENO=
Spcifie le prochain numro de page indiquer dans
lOUPUT. voir aussi NUMBER
PAGESIZE=n
Spcifie le nombre de lignes dans une page.
RSASUSER /
Spcifie si SASUSER est en lecture seule ou non.
NORSASUSER
SASAUTOS=
Spcifie les bibliothques autocall.
SASMSTORE=
Spcifie le libref dune bibliothque SAS contenant le
SASMACR catalogue.
YEARCUTOFF=nombre
Spcifie comment SAS doit comprendre les annes
deux chiffres. Par exemple avec YEARCUTOFF=1950,
33 sera 2033 mais 55 sera 1955

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 334

E.

Echange dynamique de donnes SAS-EXCEL :Liaisons DDE


Les liaisons DDE de Windows permettent de transfrer des donnes entre 2
applications Windows. Lapplication qui reoit les donnes est lapplication
client, celle qui les envoie est lapplication serveur.
Les liaisons DDE peuvent tre permanentes (hotlinks) ou temporaires (coldlinks).
Les deux exemples suivants sont des coldlinks , les donnes ne sont transfres
quune seule fois et la liaison est coupe.

1.

Voyons un exemple de transfert SAS vers Excel


On souhaite transfrer les variables Groupe, Sexe, Taille, Poids du fichier de
donnes SAS STID193 vers les 4 premires colonnes de la feuille 1 dExcel.
Lanons Excel et SAS.
Tapons le programme suivant dans le Program Editor :
Libname moi g :\stid9597\public\logiciel ;
pour accder au rpertoire PUBLIC
filename extrait dde 'excel|feuil1!l1c1:l106c4';

Altgr 6

data _null_;
file extrait;
set moi.stid193;
put groupe sexe taille poids;

Mise en place de la liaison DDE :


excel: cest lapplication concerne (Application)
feuil1 : cest le n de la feuille (Topic)
Point
l1c1 :l106 :c4 : cest la zone concerne par le
dexclamation. recueil des donnes (Item). Il y a 106 individus dans
le fichier STID193, on rserve donc 106 lignes.
Cration dun fichier de donnes SAS fictif
Pour orienter les PUT vers le fichier extrait
Fichier de donnes dont sont issues les dones
Ecriture des variables dans le fichier extrait donc
sous Excel car se fichier est li Excel par la
liaison DDE prcdente.

run;

Voici comment se prsentent les premire lignes de la feuille 1 dExcel :


A
A
A
A
A
A
A

1
1
1 11.5
2
2
2
2

12
13
15
10
18
15

68
61
68
54
50
58
58

Gnial non ?
Remarques : Pour terminer le travail, il faut remplacer les . par des ,
dans les donnes pour quExcel les reconnaissent comme des donnes
numriques (cf. le 11.5 de la note de maths). Il faut galement faire attention
aux manquants que SAS remplace par des points . alors quExcel les
reconnat par une cellule vide.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 335

Attention : Si vous avez donn un nom votre fichier Excel, vous devez
remettre ce nom dans la dfinition de la liaison DDE la rubrique TOPIC.

127

Ainsi, si votre fichier est nomm ESSDDE.XLS, linstruction filename sera du type :
filename extrait dde 'excel|essdde.xls!l1c1:l106c4';

2.

Transfert Excel vers SAS


Lancez Excel et mettez les donnes suivantes dans les 3 premires colonnes de la
feuille1 :
Paul
Gronimo
Charles-Edouard
Henri

12
27.5
32
-52152.2215

-8.2
7.582
123.2513
258.32

Remarque : Nous avons mis un point . comme sparateur dcimal (SHIFT ;)


sinon SAS ne reconnatra pas ces variables numriques.
Nous allons transfrer ces donnes sous SAS en tapant le programme suivant :
filename essai dde 'excel|feuil1!l1c1:l4c3';

Altgr 6
data moi.donnee;
infile essai;
input nom $ var1 var2;
run;

Mise en place de la liaison DDE :


excel: cest lapplication concerne (Application)
feuil1 : cest le n de la feuille (Topic)
Point
l1c1 :l4 :c3 : cest la zone concerne par le recueil
dexclamation. des donnes (Item)
Cration dun fichier de donnes SAS
A partir du fichier (logique) essai qui est en fait compos des 3
premires colonnes et des 4 premires lignes dexcel.
On importe la premire colonne sous la variable alpha ($) nom , puis
les deux autres (numriques) sous les noms var1 et var2 .

proc print data=moi.donnee;Un Proc Print pour afficher le fichier ainsi import.
run;

Attention : Si vous avez donn un nom votre fichier Excel, vous devez
remettre ce nom dans la dfinition de la liaison DDE la rubrique TOPIC.
Ainsi, si votre fichier Excel est nomm ESSDDE.XLS, linstruction filename sera
du type :
128

filename essai dde 'excel|essdde.xls!l1c1:l4c3';

Nous obtenons :
The SAS System
OBS
1
2
3
4

09:46 Thursday, May 8, 1997


NOM

VAR1

VAR2

Paul
12.00
-8.200
Gronimo
27.50
7.582
Charles32.00 123.251
Henri
-52152.22 258.320

127 Sinon SAS ne le retrouvera pas (physical file doesnt exist...


128 SAS est intelligent ! En effet, quand vous lancez Excel, celui ci charge le classeur1 (class1) par dfaut et si vous chargez un autre fichier
nomm, vous vous retrouvez avec deux classeurs. SAS veut donc que vous nommiez votre classeur pour savoir ou faire le transfert !

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 336

3.

Applications

a)

Trac du premier plan principal sous Excel dans une ACP faite sous SAS
Nous allons charger le fichier ACP que vous connaissez bien, effectuer lACP sur
les 12 variables de tempratures, calculer les qualits des diffrentsindividus (cf.
chapitre ACP de ce document) et importer sous Excel les projections des villes
sur le premier plan principal.
proc princomp data=moi.acp out=work.essai;
var jan fev mar avr mai jun jui aou sep oct nov dec;
run;
/* Calcul de la qualit de reprsentation des individus*/
proc standard data=work.essai out=work.essai mean=0 std=1;
var jan fev mar avr mai jun jui aou sep oct nov dec;
run;
data work.essai2;
set work.essai;
denom= USS(jan,fev,mar,avr,mai,jun,jui,aou,sep,oct,nov,dec);
numer=USS(prin1,prin2);
qual=numer/denom;
run;
proc print data=work.essai2;
run;
/* transfert des donnes NOM PRIN1 PRIN2 QUAL sous Excel*/
filename extrait dde 'excel|feuil1!l2c1:l16c4';
data _null_;
file extrait;
set work.essai2;
put nom prin1 prin2 qual;
run;

Nous pouvons ensuite tracer le nuage de points trs simplement.


Premier Plan Principal
4

2eme composante

3
2
1
0
-5

-4

-3

-2

-1

-1

-2
-3
1ere com posante

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 337

Remarque : Il serait intressant dtiquetter les points ici, mais Excel ne met que la premire
srie de donnes comme tiquette. Il faut ensuite les modifier une une avec les noms des
villes !

b)

Rcupration des rsidus et des mesures dinfluence sous Excel dans le cas dune
Regression linaire multiple
Dans la pratique, il est souvent commode dutiliser SAS pour effectuer les calculs
et dExcel pour les reprsentations graphiques.
129

Prenez le fichier REGDDE.XLS, changez toutes les , en . pour importer


ce fichier sous SAS.
Ecrivez ensuite le programme dimportation en utilisant la liaison DDE (attention
ne transfrez pas les noms des colonnes)
Effectuez ensuite une regression linaire de Y en (X1,X2) et rcuprez dans un
fichier de donnes SAS le DFITS, la distance de COOK, les rsidus, les Y
chapeaux.
Tranfrez ces nouvelles variables sous Excel dans des colonnes libres du fichier
REGDDE.XLS. Changez les points en virgules. Voici les premires lignes de ce
que vous devez obtenir :
X1

X2

0,4227

Ychapeau

Residu

Stdres

Cook

Dfits

8,6895

37,09

-1474,69379

1511,78379

2,8356555

0,2201091

0,84345645

1,2497 99,1988

311,66

-974,307121

1285,96712

2,35805921

0,11871351

0,61154592

1,5177 63,0564

204,51

-1117,94958

1322,45958

2,40291472

0,08337637

0,51308017

4,852 94,8181

327,7

-656,520754

984,220754

1,77362171

0,05888386

0,42522574

Faites les graphiques des valeurs rsiduelles. Que pensez-vous de ce modle ?

Pour des informations complmentaires, consultez lindispensable SAS


Companion for the Microsoft Windows Environment

129 SAS possde bien des graphiques Haute rsolution (GPLOT, GCHART etc...) mais leur utilisation est trs lourde et les graphiques
obtenus sont mdiocres. De plus, ils sont en mode Bitmap ce qui alourdit les copier-coller, les impressions. Il est alors prfrable de passer
par PAINT pour sauvegarder ces fichiers en BMP puis les intgrer dans un document (Insrer Image) .
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 338

F.

Quelques procdures usuelles


Les procdures en gras sont dtailles dans ce document.

Nom

Module

Aperu des possibilits

ANOVA

SAS/PC File Conversions de fichiers externes au format SAS. La commande


FILE/IMPORT permet un accs automatique cette procdure.
format
Analyse de variance un ou plusieurs critres avec des donnes
SAS / Stat

APPEND

SAS / Base

CATALOG
CANDISC
CHART
CLUSTER
COMPARE
CONTENTS
COPY
CORR
CORRESP
DISCRIM
DATASETS

SAS / Base
SAS/Stat
SAS / Base
SAS/Stat
SAS / Base
SAS / Base
SAS / Base
SAS / Base
SAS/Stat
SAS/Stat
SAS / Base

DBLOAD
FORMAT

SAS/PC File
format
SAS / Base Dfinir des formats et des informats pour les variables

FORECAST

SAS/ETS

FREQ
FSEDIT

SAS / Base
SAS/FSP

FSVIEW
GLM

SAS/FSP
SAS / Stat

LOGISTIC
MEANS

SAS/Stat
SAS / Base

NPAR1WAY
OPTIONS
PLOT

SAS / Stat
SAS / Base
SAS / Base

PRINCOMP
PRINT
RANK

SAS / Stat
SAS / Base
SAS / Base

REG

SAS / Stat

SORT

SAS / Base

Effectuer des analyses en composantes principales. (ACP)


Affichage de tout ou partie dun fichier.
Calculer les rangs des observations dune ou plusieurs variables
numriques.
Effectuer des rgressions. De nombreuses options sont disponibles.
(PROC LOGISTIC pour la rgression logistique)
Trier un fichier selon un ou plusieurs critres. (Cest un prliminaire

STANDARD
SUMMARY

SAS / Base
SAS / Base

Centrer rduire (entre autres) des variables quantitatives.


Similaire Means qq dtails prs...utilise pour rcuprer le nombre

ACCESS

quilibres.
Ajout dobservations contenues dans un fichier SAS la suite dun
autre fichier SAS
Grer les catalogues SAS
Analyse discriminante canonique.
Effectuer des diagrammes bandes, histogrammes etc... en mode texte.
Classification ascendante hirarchique.
Comparer de fichiers SAS
Lister le contenu dune bibliothque, les attributs dun fichier ...
Copier tout ou partie de fichiers de donnes SAS
Calculer des coefficients de corrlation (Pearson, Spearman...)
Analyse factorielle des correspondances (simples et multiples)
Analyse discriminante baysienne.
Lister, copier, supprimer, renommer des fichiers de donnes SAS. (les
possibilits des procdures Append, Contents et Copy y sont incluses)
Conversion dun fichier SAS au format DBASE... FILE/EXPORT per
met de faire ce travail en tant assist.

numriques et alphanumriques
Prvision pour les sries temporelles. La commande FORECAST est
prsente dans ce document.
Tris plat, tri croiss pour des variables qualitatives. Tests du Chi 2...
Cration de masque de saisie pour crer de nouveaux fichiers de
donnes.
Visualisation / correction de fichiers de faon interactive.
Analyse de variance un ou plusieurs critres avec des donnes
quilibres ou non. (Il est prfrable dutiliser Anova avec des donnes
quilibres)
Rgression logistique.
Produire des statistiques lmentaires sur une variable numrique.
(Univariate est plus puissante)
Effectuer des tests non paramtriques (Mann-Whitney ...)
Lister les options en cours de SAS.
Crer des nuages de points en mode caractre. (GPLOT pour la haute
rsolution)

indispensable pour lutilisation de BY avec dautres procdures)

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 339

TIMEPLOT

SAS / Base

TRANSPOSE

SAS / Base

TTEST

SAS / Stat

UNIVARIATE SAS / Stat

dindividus, les moyennes varainces etc. pour refaire dautres calculs


derrire.
Reprsenter graphiquement des sries chronologiques en mode
caractre.
Pour transposer la matrice des donnes. Les variables deviennent les
observations et vice versa.
Tester lgalit de deux moyennes (Student), tester lgalit de deux
variances (Fisher). (Pour comparer une moyenne un standard, utilisez Univariate)
Rsum statistique pour une variable quantitative. Test de normalit
(Shapiro Wilk) et test de nullit de moyenne (Student) inclus.

Remarque: Pour connatre la syntaxe complte dune procdure, consultez laide en ligne.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 340

G.

Execution dun FICHIER DE COMMANDES SAS depuis le DOS


Il vous est possible de lancer SAS directement depuis le DOS en utilisant linstruction
suivante:
win c:\sas\sas.exe -config c:\sas\config.sas
Si vous souhaitez en plus que SAS execute un de vos programmes SAS construit
antrieurement monprog.sas par exemple, il faut introduire linstruction -sysin:
win c:\sas\sas.exe -config c:\sas\config.sas -sysin
c:\sas\monprog.exe

Vous verez alors Windows se lancer et une petite fentre souvrir signalant que SAS
execute votre programme et que le contenu de la fentre LOG sera dans le fichier
monprog.log et celui de la fentre OUTPUT dans le fichier monprog.lst.
Il vous est possible de modifier la largeur de la page de la fentre OUTPUT grce -linesize
ou -ls. Exemple -ls 70 la suite des instructions prcdentes imposera SAS 70
caractres dans la fentre OUTPUT.
De mme -pagesize, ou -ps modifie le nombre de ligne par page.
Pour avoir la liste des options, vous pouvez consulter le SAS Companion for the Microsoft
Windows Environment pp159ss

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 341

H.

Importation de fichiers ayant un format connu PROC IMPORT


Cest lapproche langage SAS de limportation de fichier EXCEL, DBASE, CSV
etc. effectue avec FILE/IMPORT.
Pour importer les fichier de type EXCEL, DBASE etc., vous devez disposer du
module ACCESS To Pc File Formats.
Syntaxe simplifie
PROC IMPORT DATAFILE=chemin et nom du fichier de donnes
OUT=nom de fichier SAS
DBMS=type de fichier <REPLACE> ;
<options selon type du fichier> ;
RUN ;
DBMS peut prendre les valeurs : XLS, CSV, TXT, DLM
REPLACE : remplace un fichier existant. Si REPLACE nest pas spcifi,
IMPORT ncrasera pas un fichier existant.
Les options selon type du fichier tant :
GETNAMES=Yes ou No
Si la premire ligne de votre fichier de donnes comporte les noms des
variables ou non.
RANGE=
Dlimite la zone importer. Tout sera import RANGE est omis.
SHEET=
Identifie la feuille importer.
Exemple
proc import datafile='D:\data\bsclient.csv'
out=work.bsclient dbms=CSV replace;
getnames=yes;
run;

Va importer le fichier BSCLIENT au format CSV sous SAS.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 342

I.

Exportation de fichiers PROC EXPORT


Cest la rplique exacte de PROC IMPORT mais pour lexportation de fichiers.
Ce que nous allons voir fait la mme chose que PROC EXPORT mais en utilisant
le langage SAS. Limport export de fichiers peut donc tre gr avec les
MACROS ou les programmes en SCL.
Syntaxe simplifie
PROC EXPORT DATAFILE= nom de fichier SAS
OUTFILE= chemin et nom du fichier de donnes
DBMS=type de fichier <REPLACE> ;
<options selon type du fichier> ;
RUN ;
DBMS peut prendre les valeurs : XLS, CSV, TXT, DLM
REPLACE : remplace un fichier existant. Si REPLACE nest pas spcifi,
EXPORT ncrasera pas un fichier existant.
Les options selon type du fichier tant :
DELIMITER=caractre
Identifie le dlimiteur qui va sparer les colonnes de donnes. Par dfaut
cest un espace.
Exemple
proc export data=moi.bordeaux outfile='D:\data\bordeaux.csv'
DBMS=CSV replace;
run;

Va exporter la table SAS BORDEAUX en un fichier Bordeaux.Csv dont voici les


3 premires lignes :
ANNEE,X1,X2,X3,X4,QUAL
1924,3064,1201,10,361,2
1925,3000,1053,11,338,3

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 343

J.

Complment : Donnes importes dun fichier texte ASCII externe


Pour importer des fichiers ASCII particuliers, vous disposez de lEFI ou de
linstruction INFILE.

1.

LEFI

Nous allons importer le fichier texte : STID193CO


Faites un file/Import. Cocher la case EFI. Validez.

Pour lancer lEFI, il suffit de cocher


cette case.

Slectionnez le fichier STID193CO.TXT dans PUBLIC. Validez.


Indiquez un fichier de sortie SAS votre convenance. Validez

La fentre suivante saffiche :

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 344

Fichier converti

Fichier Original

Nous voyons que le ; sert de dlimiteur entre les variables. Nous allons
lindiquer SAS en cliquant sur le bouton OPTIONS.
Choisissez ; comme delimiteur de fichier :

Validez.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 345

Ensuite, cliquez sur une colonne du fichier TEXTE, donnez lui un Nom (nom de
variable) dans Field Name et cliquez sur ADD.
Faites ceci pour le GROUPE et lORDRE.
Pour la DATE, mettez la en numrique, donnez lui comme INFORMAT
DDMMYY8. Et comme FORMAT ce que vous voulez. Cf. paragraphe sur les
formats.
Faites un File/Save pour entrinner vos changements.
La LOG doit contenir :

NOTE:
WORK.STID193CO
created.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 346

was

successfully

2.

Instruction INFILE : Syntaxe simplifie


Si vous avez un fichier rcalcitrant, mettez le en type texte et utilisez les
instructions suivantes.
Le seul changement par rapport ce qui prcde est linstruction INFILE qui
donne ladresse du fichier texte importer suivi doptions. Bien entendu CARDS
a disparu !
DATA nom fichier SAS ;
INFILE nom du fichier texte options ;
INPUT var1 type1 var2 type2 .... var n type n ;
instructions complmentaires
RUN ;
Exemple
Supposons que vos donnes soient dans un fichier texte (ASCII) externe. Par
exemple, voici le contenu du fichier ENTREE.TXT:
ERIC M 190 78
MARC M 178.5 75
CLAIRE F . 59
AURELIE F 168 62
JEAN M 168 59
(Note: Les conventions sont les mmes que prcdemment: un espace au moins entre chaque donne, un point pour les
donnes manquantes)

Editez le fichier Entree.txt(G:\STID9799\PUBLIC\LOGICIEL) sous Word et


vrifiez que les donnes sont correctes. Fermez le document. (SAS ne lit pas des fichiers
ouverts par une autre application)

Remarque: Sous Word, soyez en Police


Courier New et faites afficher en clair les
espaces
et
les
tabulations
(OUTILS/OPTION/AFFICHER/Tabulations Espaces)

ATTENTION: Les tabulations faites sous Word ne sont pas


considres par SAS comme des espaces. Ainsi une
tabulation est considre comme un seul caractre par SAS
alors qu'elle occupe la place de plusieurs sous Word.

DATA WORK.ENTREE;
INFILE 'Z:\PUBLIC\LOGICIEL\ENTREE.TXT' ;
INPUT NOM $ SEXE $ ETC...;
RUN ;
PROC PRINT DATA=WORK.ENTREE;

Pour visualiser le fichier import

RUN;

PROC MEANS DATA=WORK.ENTREE;


CLASS SEXE;
RUN;
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 347

Pour faire quelques statistiques...


en distinguant selon le sexe.

Tapez le programme SAS et vrifiez que limportation sest bien droule.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 348

3.

Donnes ou fichiers inhabituels


Dans le fichier prcdent, les observations taient sur une ligne. (Il y avait un
individu par ligne). SAS permet galement dimporter des fichiers textes lorsquil
y a une observations sur plusieurs lignes ou plusieurs observations sur une ligne.
Il est aussi possible de changer de dlimiteur (lespace par dfaut).

a)

Cas o il y a plusieurs observations par ligne


Le fichier TAILLE.TXT contient les donnes suivantes:
Julien 185 Paul 192 Pierre 187 Andre 167
Fiona 154 Eric 185 Juliette 166
Robert 167 Vivien 170 Maxime 196

Pour limporter correctement, il suffit dinclure un @@ dans le input qui


permet de garder la ligne en mmoire tant que tout na pas t lu.
Voici le programme SAS correspondant:
DATA TAILLE;
INFILE 'Z:\PUBLIC\LOGICIEL\TAILLE.TXT';
INPUT NOM $ TAILLE @@;
RUN;
b)

Cas o il y a une observation sur plusieurs lignes


Voici le contenu du LOGICIEL.TXT:
EXCEL
48
WORD
35
MINITAB
10
SAS
10
SPSS
9

Pour limporter correctement, il faut donner un / dans linstruction INPUT


pour prciser la fin de chaque ligne:
DATA WORK.LOGICIEL;
INFILE 'Z:\PUBLIC\LOGICIEL\LOGICIEL.TXT';
INPUT NOM $ / NOMBRE ;
RUN;
c)

Changement de dlimiteur
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 349

Jusquici, les variables taient spares par des espaces dans le fichier
importer. Si ce nest pas le cas, il faut utiliser loption dlm=derrire
INFILE.
Voici le contenu du fichier TAILLEV.TXT:
JULIEN;185;PAUL;192;PIERRE;187;ANDRE;167
FIONA;154;ERIC;185;JULIETTE;166
ROBERT;167;VIVIEN;170;MAXIME;196
Pour limporter correctement, il faut donner un dlm=; dans linstruction
Infile pour prciser SAS le dlimiteur utilis.
DATA WORK.TAILLEV;
INFILE 'Z:\PUBLIC\LOGICIEL\TAILLEV.TXT' DLM=';';
INPUT NOM $ TAILLE @@;
RUN;

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 350

d)

Plusieurs lignes de titre...(FIRSTOBS)


Si votre fichier texte commence par une ligne de titre, vous pouvez
demander SAS de lire partir de la deuxime grace l'option
FIRSTOBS de INFILE:
Exemple : INFILE 'I:\STID\ERIC\ESS.TXT' MISSOVER FIRSTOBS=2;

e)

Lignes trs longues (plus de 132 caractres) Infile/ lrecl.


SAS fixe par dfaut la largeur maximale de lecture 132 caractres. Si
votre fichier fait 500 colonnes de large, il faut ajouter sur Infile loption
LRECL=500.
INFILE 'G:\STID\ERIC\ESS.TXT' MISSOVER FIRSTOBS=2 LRECL=500;

f)

Saut la ligne Option Flowover et Missover de Infile.


Par dfaut, SAS va la ligne suivante sil na pas saisi toutes les donnes
sur la ligne courante que sont INPUT demandait. (option FLOWOVER)
Il est beaucoup plus habituel de considr comme manquantes les donnes
ne figurant pas sur la ligne en question (plutt que daller en chercher sur la
ligne suivante ! ! !). (option Missover)
INFILE 'G:\STID\ERIC\ESS.TXT' MISSOVER FIRSTOBS=2;

Exercice rcapitulatif.
Nous avions demand aux STID193 de nous donner leur date de naissance. Voici
le fichier STID93CO.TXT
A;1;21/10/73;DOC
A;2;08/12/74;cio
A;3;15/08/72;ami
A;4;10/11/72;cio
A;5;30/11/74;cio
A;6;11/02/74;cio
A;7;14/09/74;cio
...
B;26;18/12/73;cio
B;27;15/03/73;cio
B;28;08/08/69;livre tudiant
C;1;25/07/73;
C;2;28/10/72;
C;3;30/04/74;

Il contient, pour les STID193 : leur groupe, leur numro dordre dans le groupe,
leur date de naissance et la faon dont il ont connu lIUT.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 351

Ecrivez le programme SAS ralisant son importation en considrant dans un


premier temps la variable date comme du texte ($)et lancez le.
Il y a une difficult ici. Remarquez les individus du groupe C, ils nont pas
renseign la dernire variable. SAS, par dfaut veut mettre quelque chose dans la
dernire variable !(option Flowover de Infile), il va donc lire ce qui lui manque
sur le lindividu du groupe C la ligne suivante ce qui fausse tout !
Il faut donc demander SAS de considrer comme manquant la dernire variable
lorsquil ny a rien sur la ligne. Pour cela, vous ajouterez loption MISSOVER
dans linstruction INFILE.
Faites un PROC PRINT pour vous assurer que le fichier comporte bien 106
personnes.
Complter le programme prcdent pour importer la date correctement et
calculez lge des STID193 la date daujourdhui.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 352

4.

Lecture des donnes par colonnes dans un fichier ASCII externe.


Cette mthode dimportation nest utiliser que lorsque File/Import ne
fonctionne pas et lorsque vous souhaitez importer une partie du fichier
ASCII original. Pour importer tout le fichier, utilisez linstruction Input
classique.

a)

Instruction INPUT (lecture en colonne)


Supposons que vous ayez un fichier 'G:\STID9597\MONREP\ESS.TXT' sous la
forme suivante: (l'encadr indique les n de colonne: 1, 5, 10, 15, 20 et 25)
1
1
2
2
1...5....0....5....0....5
A 180
68
69700
B 168
61.5
26000
A 178
68.5
A 175.5
78.5
74100

premire ligne du fichier

Vous avez ici 3 individus sur lesquels agissent quatre variables.


Colonne 1: variable Bac
Colonnes 4 8: variable taille
Colonnes 12 15: variable poids
etc.

(il faut prendre le plus large possible !)

Pour mettre ce fichier au format SAS sous le nom WORK.ESSAI en ne


conservant que les variables bac, poids, et taille, il faudra taper:
DATA WORK.ESSAI;
infile 'G:\STID9597\MONREP\ESS.TXT' Missover;
input BAC $ 1 TAILLE 4-8 POIDS 12-15;
run;

Application:
Que faut-il ajouter au programme prcdent pour charger en plus la variable
code postal ?
Remarque: L'option MISSOVER de INFILE indique SAS de complter par
des valeurs manquantes toute ligne incomplte. (Sinon SAS va lire la ligne
suivante ce qui lui manque (Flowover))
Mise en pratique
Editez le fichier ESS.TXT (au format texte DOS)avec un diteur de texte (Word
en police courier new pour avoir des colonnes bien alignes avec affichage des
espaces et des tabulations (OUTILS/Options/Afficher /Tabulations, espaces.
Vrifiez les donnes (et leurs positions (colonnes)) et fermez le fichier.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 353

Importez ce fichier grce INPUT (en colonnes) dans un fichier SAS:


Work.Essai. Vrifiez l'importation grce Proc Print.
Si l'importation prcdente a russi, ajoutez les lignes suivantes votre fichier
ESS.TXT et importez-le nouveau:
B
A
A

185.5
175.5
175.5

79.5
78
78.5

7100
74100

Il se peut que les 4 et 5 lignes ne soient pas lues correctement sous SAS.
Comprenez pourquoi et rectifiez le problme (sous Word)
Rpter l'opration prcdente jusqu' ce que vous ayez obtenu un succs
complet.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 354

b)
(1)

Donnes gnres dans un programme SAS (simulations)


DO/END
Instruction DO/END
(=FOR du Pascal)
Syntaxe:
DO variable=dbut TO fin [BY incrment];
instruction1;
instruction2;
...;
END;
Exemple:
DATA _NULL_;
DO I=1 TO 10;
X=RANUNI(0);
PUT X;
END;
RUN;

On ne fera pas de sauvegarde des variables qui suivent...


On commence la boucle.
Nous calculons une ralisation d'une VA suivant une U[0,1]
Nous l'affichons l'cran (fentre LOG)
La boucle est termine.

Ce programme gnre 10 nombres (ralisations d'une loi uniforme [0,1]) et les affiche
dans la fentre LOG. (Pour plus de dtails sur RANUNI allez dans lannexe sur les fonctions de
SAS)

Si vous voulez mettre cet chantillon dans un fichier de donnes SAS work.ech, nous
avons le programme suivant :
DATA WORK.ECH;
DO I=1 TO 10;
X=RANUNI(0);
OUTPUT ;
END;
RUN;

Envoie les variables prsentes dans le fichier work.ech.

PROC PRINT DATA=WORK.ECH;


RUN;
Faites un PROC PRINT ; RUN ; quel est linconvnient du programme prcdent ?
Pour y remdier, nous utilisons une option, que vous verrez plus tard, qui permet de
supprimer certaines variables.
Nous changeons la premire ligne en :
data work.ech (drop=i);

(nous supprimons i du fichier final)

Effectuez cette modification et visualisez le rsultat.

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 355

(2)

Instruction DO WHILE / END


Les instructions sont rptes tant que la condition est vraie.
Cette fois, nous allons gnrer des nombres suivant une N(0,1) tant qu'ils sont
infrieurs ou gaux 2 et stopper ds que cette condition n'est plus remplie.
DATA WORK.EXEMPLE;
X=0;
DO WHILE (x<=2);
X=RANNOR(0);
OUTPUT;
END;
RUN;

Initialise x 0
Commence la boucle...(on en sort ds que x>2)
x est une ralisation d'une N(0,1)
Nous l'inscrivons dans le fichier exemple
La boucle est termine
La squence DATA aussi.

Remarque : Vous dcouvrez ici une possibilit de l'instruction OUTPUT. Elle permet d'inscrire
chaque valeur valide de x la suite du fichier de donne ouvert. Supprimez-l et le fichier
exemple ne contiendra qu'une seule observation ! (La dernire !)

(3)

Instruction DO UNTIL/ END


Les instructions sont rptes jusqu' ce que la condition soit vraie.
DATA WORK.EXEMPLE;
X=0;
DO UNTIL (x>2);
X=RANNOR(0);
OUTPUT;
END;
RUN;

Initialise x 0
Commence la boucle...(on en sort ds que x>2)
x est une ralisation d'une N(0,1)
Nous l'inscrivons dans le fichier exemple
La boucle est termine
La squence DATA aussi.

Ce programme fait la mme chose que le prcdent.


(4)

Instruction GO TO
Un petit exemple vaut mieux qu'un long discours...
DATA _NULL_;
DO I=1 TO 100 BY 2;
PUT I=;
IF I=11 THEN GO TO FIN;
END;
FIN: PUT 'TERMIN';
RUN;

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

On ne conservera pas ces donnes !


i va de 1 100 de 2 en 2
on affiche i dans la LOG
on sort ds que i est gal 11
fin de la boucle
on affiche le message dans la LOG

Page 356

K.

Utilisateurs du systme SAS en France au 1.1.1996

Liste partielle des


utilisateurs du systme SAS
en France au 1.1.1996
130 SAS refuse de communiquer toute mise jour de cette liste. Dommage
IUT II Dpartement S.T.I.D. Cours de logiciel SAS.
E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 357

130

L.

INDEX
2
2000 (anne)...........................334

A
ABS.........................................319
ACM........................................231
Comparaison avec l'AFC....234
Alatoires......................................
Gnration de lois...............318
Analyse..........................................
de sries chronologiques.....269
Discriminante Baysienne...257
Factorielle discriminante....248
Analyse de la variance...................
deux critres.....................171
Analyse en composantes
principales...........................189
ANNOTATE..................................
GPLOT................................226
ANOVA.........................................
modle.......................................
spcification sous SAS. . .172
Procdure............................166
Syntaxe................................166
Apparies.......................................
Donnes...............................155
Apparis.........................................
chantillons.........................155
ARCOS....................................319
ARRAY.........................................
tape DATA..........................44
ARSIN.....................................319
ATAN......................................319
AUTOEXEC............................333
AVERAGE....................................
CLUSTER...........................208

BARTLETT...................................
Test de.......................................
exemple...........................167
Rappels thoriques..........165
Barycentriques...............................
Reprsentations (AFC)........227
BEIGE...........................................
STYLE=................................89
BESTw. ........................................
format .................................322
Beta................................................
loi317
bibliothque...................................
WORK...................................18
Bibliothque..................................
Comment en crer une ?.......21
contenu d'une.......................293
SASUSER.............................18
Visualisation du contenu.......22
bibliothque SAS...........................
gnralits.............................17
BINARYw. ...................................
format .................................322
binomiale.................................317
Box Plot.........................................
Dfinition............................120
SAS INSIGHT.....................120

Boxplot..........................................
Exemple..............................168
BRICK...........................................
STYLE=................................89
BROWN........................................
STYLE=................................89

CARDS..........................................
Dfinition..............................31
Instruction.............................11
CEIL........................................319
CELLCHI2\...................................
FREQ...................................158
CENTER........................................
Options................................333
Chi deux........................................
Test............................................
Rappels thoriques.........162
Test d'indpendance du.......161
Test sur un tri crois existant
........................................161
CHI DEUX....................................
Test du.................................156
chi2................................................
Test d'indpendance du.......158
Chi2...............................................
Test du.................................158
CHISQ\..........................................
FREQ...................................158
CLUSTER......................................
Procdure............................206
Coefficient de corrlation linaire
Test de nullit......................185
Coefficients de liaison...................
calcul de..............................156
COMMAw.d..................................
format .................................322
COMMAXw.d...............................
format .................................322
COMMAXw.d. .............................
informat ..............................331
Comparaison..................................
de k populations..................182
Concatnation................................
Fichiers de donnes...............54
CONDENSE..................................
TABULATE........................145
CONFIG=......................................
Options................................333
CONTAINS...................................
Exemple................................70
CONTENTS...................................
Procdure............................293
Contributions des individus...........
ACP.....................................199
CORR............................................
Procdure............................184
Corrlation.....................................
Coefficient de............................
SAS INSIGHT................130
rapport de....................164, 248
Correlations...................................
Cercle des............................195

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 358

CORRESP......................................
Procdure....................215, 231
Syntaxe................................229
COS.........................................319
COSH.......................................319
Cosinus carr.................................
AFC.....................................236
COVARIANCE.............................
Option PROC PRINCOMP. 189
Covariances...................................
CORR..................................188
CSS..........................................316
CSS\...............................................
TABULATE........................143
CUMCOL......................................
FREQ...................................158
CV............................................316
CV\................................................
TABULATE........................143

D3D...............................................
STYLE=................................89
Dagnlie. .163, 174, 179, 185, 309
DATA............................................
tape..........................................
dfinition...........................31
DATA MINING............................
Module SAS/INSIGHT.......112
DATASETS...................................
Procdure............................296
date................................................
format........................................
exemple.............................33
DATE.............................................
Options................................333
DATETIMEw. ..............................
informat ..............................331
DATETIMEw.d.............................
format .................................325
DATEw. ........................................
format .................................325
informat ..............................331
DAY.........................................320
DAYw. ..........................................
format .................................325
DDE...............................................
Liaison.................................335
DDMMYYw. ................................
format .................................325
informat ..............................331
DEFAULT.....................................
STYLE=................................89
DELETE........................................
tape data..................................
exemple.............................39
Densit de probabilit...................
SAS INSIGHT.....................124
DEVIATION\................................
FREQ...................................158
Diagramme bandes...............304
DIGAMMA.............................319
DISCRIM......................................
Procdure....................247, 252

Discriminant..................................
mesure du pouvoir...............248
distributions...................................
Comparaison de...................174
Distributions..................................
comparaison de...................179
Comparaison de...................182
DLM=......................................350
DO UNTIL....................................
Instruction.................................
tape DATA......................61
DO/END..................................355
DO/UNTIL..............................356
DO/WHILE.............................356
DOLLARw.d.................................
format .................................322
DOLLARXw.d..............................
format .................................322
Donnes.........................................
gnres dans un programme
........................................355
DOWNAMEw. .............................
format .................................325
DROP.............................................
tape data..................................
exemple.............................38
DROP=..........................................
Syntaxe..................................65

ECHOAUTO.................................
Options................................333
Effectifs.........................................
Thoriques...........................162
EFI...........................................344
END=.............................................
Instruction SET.........................
syntaxe..............................50
Enterprise MINER.........................
Module SAS/INSIGHT.......112
quilibres.....................................
Donnes...............................172
ERRORS=......................................
Options................................333
Etape DATA..................................
Compteur...............................48
Ew. ................................................
format .................................322
Ew.d...............................................
informat ..............................331
EXCEL..........................................
Importation d'un fichier........24
Liaison DDE SAS EXCEL..336
EXP..........................................319
EXPECTED\..................................
FREQ...................................158
EXPORT........................................
Procdure............................343

F
Ficher-Snedeccor...........................
loi317
Fichiers de donnes SAS...............
Affichage.............................136
Concatnation........................53
Copier....................................37
Gnralits............................17
gestion.................................296
FIRSTOBS.....................................

Instruction...........................351
option de INFILE................351
FIRSTOBS=..................................
option....................................39
Syntaxe..................................67
FIRSTOBS=n................................
Options................................333
Fisher.............................................
Loi de..................................164
Test d'galit de variances. .152
Test de.................................153
FLOOR....................................319
FLOWOVER.................................
Instruction...........................353
FMTERR.......................................
Options................................333
Fonction de rpartition..................
SAS INSIGHT.....................123
Fonctions.......................................
date et heure........................320
mathmatiques....................319
probabilistes........................317
Statistiques usuelles............316
Fonctions de rpartition.................
Comparaison.......................177
FORECAST...................................
Commande..........................269
Format.......................................26
date et heure........................324
dfinition.............................321
liste......................................322
Premier exemple...................33
FORMAT.......................................
Procdure............................276
Formats..........................................
de nombres..........................322
exemples..............................327
FORMDLIM=...............................
Options................................333
FRACTw. .....................................
format .................................322
FREQ.............................................
Procdure............................156
Frquences conditionnelles.....157
FULLSTIMER...............................
Options................................333
Fusionner.......................................
Fichiers de donnes SAS.......56

Gamma..........................................
loi317
GAMMA.................................319
GLM..............................................
Comparaison avec ANOVA 172
Procdure............................166
GOTO......................................356
Instruction...........................356
Graine............................................
gnrateur alatoire.............318
Graph N Go...................................
Assitant Graphique................97
Graphique......................................
Cration d'un.........................98
GWINDOW...................................
Options................................333

H
HEXw. ..........................................

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 359

format .................................322
informat ..............................331
HHMMw.d....................................
format .................................325
HMS........................................320
HOUR......................................320
HOURw.d......................................
format .................................325
HTML............................................
Sorties graphiques...............104

IF THEN........................................
tape DATA..............................
exemple.............................38
IF THEN ELSE..............................
Instruction.................................
tape DATA......................61
IMPLMAC....................................
Options................................333
Importation....................................
d'un fichier texte externe.....347
de fichiers textes \...............353
fichiers textes inhabituels. . .349
Fichiers textes inhabituels...349
Importation de Fichiers.................
Texte....................................344
Importation de fichiers externes
.............................................342
IN315
IN
Option de SET ou MERGE...55
IN ( )..............................................
Exemple................................61
Individu supplmentaire................
ACP.....................................200
Individus........................................
Slection....................................
dans une procdure..........67
supplmentaires (ACM)......245
Inertie............................................
ACP.....................................191
du nuage des profils lignes..218
du nuage en AFC et ACM...234
inter classes.........................210
intra classes.........................207
INFILE....................................349
informat.........................................
exemple.................................32
Informat.....................................26
liste......................................331
Premier Exemple...................33
Informats.......................................
Cration...............................287
dfinition.............................329
INITCMD......................................
Options................................333
INT..........................................319
INVALIDDATA............................
Options................................334
IS MISSING..................................
Exemple................................69

J
JMP................................................
Logiciel...................................2

KEEP.............................................
Etape data..................................

exemple.............................38
KEEP=...........................................
Syntaxe..................................65
Kolmogorov...................................
test de..................................175
Kolmogorov-Smirnov...................
Test de.........................150, 174
Kruskal et Wallis...........................
Test de.................................182
Kuiper............................................
test de..................................175
KURTOSIS..............................316

Label..........................................26
LABEL..........................................
tape DATA..........................45
Options................................334
Lambda..........................................
Wilks...................................251
Length........................................26
LENGTH.......................................
dans une tape DATA...........42
LGAMMA...............................319
Liaison...........................................
entre deux variables
qualitatives..............160, 216
entre une variable qualitative et
une quantitative...............163
LIKE..............................................
Exemple................................71
LINESIZE=...................................
Options................................334
Lissage...........................................
choix d'un modle...............272
LOG.........................................319
LOG=.............................................
Options................................334
LOG10.....................................319

M
MACRO.........................................
Options................................334
Mann et Whitney...........................
Test......................................176
Test de.................................179
Mantel-Haenszel Chisquare..........
Test de.................................159
MAPS=..........................................
Options................................334
Masques d'affichages.....................
FORMAT............................283
MAUTOSOURCE.........................
Options................................334
MAX................................316, 319
MDY........................................320
MEAN.....................................316
MEAN().........................................
Fonction....................................
exemple.............................39
MEAN\..........................................
TABULATE........................143
MEANS ........................................
Procdure ................................
Exemple............................12
MERROR......................................
Options................................334
MIN.................................316, 319
MINIMAL.....................................

STYLE=................................89
MINUTE..................................320
MISSING=....................................
Options................................334
MISSOVER.............................351
Instruction...........................353
MISSTEXT=.................................
TABULATE........................145
MLOGIC.......................................
Options................................334
MMDDYYw. ................................
format .................................325
informat ..............................331
MMSSw.d......................................
format .................................325
MMYYxw. ...................................
format .................................325
MOD........................................319
MONNAMEw...............................
format .................................325
MONTH...................................320
MONTHw. ....................................
format .................................325
MONYYw.....................................
format .................................325
MONYYw. ...................................
informat ..............................331
Moyenne........................................
Comparaison une valeur fixe
(TTest)............................150
MPRINT........................................
Options................................334
MSGCASE....................................
Options................................334
MSGLEVEL=................................
Options................................334
MSTORED....................................
Options................................334

N 316
N
UNIVARIATE....................149
N\
TABULATE........................143
NMISS.....................................316
NMISS()........................................
Exemple................................69
Fonction....................................
exemple.............................39
NOBS=..........................................
Instruction SET(tape DATA)
..........................................52
NOCOL..........................................
FREQ...................................158
NOFREQ\......................................
FREQ...................................158
non paramtriques.........................
tests.....................................174
NOPERCENT\...............................
FREQ...................................158
NOPRINT\.....................................
FREQ...................................158
Normaliser.....................................
Variables.............................204
Normalit.......................................
Test de.................................150
Test de.......................................

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 360

SAS INSIGHT................124
NOROW\.......................................
FREQ...................................158
NPAR1WAY.................................
Procdure............................174
Nuage de points 3D.......................
SAS INSIGHT.....................131
Nuages de Points...........................
SAS INSIGHT.....................126
NUMBER......................................
Options................................334

OBS=.............................................
option....................................39
Options................................334
Syntaxe..................................67
OCTALw. .....................................
format .................................322
OF..................................................
Fonctions...............................42
Oprateurs.....................................
arithmtiques.......................314
de comparaison...................314
logiques...............................314
OPTIONS......................................
Instruction...........................332
OUT=.............................................
Option procdure SORT......135
OUTPUT........................................
Fentre ......................................
Options.............................14
Instruction (tape DATA).....40
Visualisation d'un fichier
dans...................................30
OUTPUT ......................................
Dfinition................................9

P
PAGENO=.....................................
Options................................334
PAGESIZE=n................................
Options................................334
PCTN.............................................
TABULATE........................143
PCTSUM.......................................
TABULATE........................143
Pearson..........................................
Coefficient de corrlation de
........................................184
PEARSON.....................................
Coefficient de......................187
PERCENTw.d................................
format .................................322
informat ..............................331
PICTURE.......................................
FORMAT............................283
Plan principal.................................
ACP.....................................194
Plan Principal................................
ACP.....................................201
POINT=.........................................
Instruction SET(tape DATA). .
syntaxe..............................51
POISSON(,m)..........................317
Pouvoir discriminant.....................
Global..................................251
PRINCOMP...................................
Procdure............................189

PRINT............................................
Procdure............................136
PRINTMISS..................................
TABULATE........................145
PROBBETA.............................317
PROBBNML(..........................317
PROBCHI................................317
PROBF.....................................317
PROBGAM..............................317
PROBNORM...........................317
PROBT....................................317
Procdures SAS.............................
Options du DATA=...............64
Procdures Statistiques............134
Profils............................................
colonnes..............................223
lignes...................................216
PROGRAM EDITOR....................
Dfinition................................9
Excuter................................13
Excution Partielle................13
Enregistrer............................13
PRT\...............................................
TABULATE........................143

QTRRw. ........................................
format .................................325
QTRw. ..........................................
format .................................325
Qualit...........................................
de reprsentation d'un point
(AFC)..............................222
Qualit de reprsentation...............
ACP.....................................202
Quartiles........................................
SAS INSIGHT.....................121

R
Raccourcis clavier...................313
RANBIN..................................318
RANCAU.................................318
RANEXP.................................318
RANGAM................................318
RANGE....................................316
RANGE\........................................
TABULATE........................143
RANK............................................
Procdure............................146
RANNOR.................................318
RANPOI..................................318
RANUNI..................................318
Rgression.....................................
SAS INSIGHT.....................129
RENAME=....................................
Syntaxe..................................66
ROMANw. ...................................
format .................................322
ROOT MSE...................................
ANOVA...............................167
ROUND...................................319
RSASUSER...................................
Options................................334

Saporta....206, 228, 257, 264, 268,


310
SAS INSIGHT.........................112
SAS/ASSIST............................303
Scores Normaux............................

PROC RANK......................146
SECOND.................................320
SELECT.........................................
Instruction.................................
tape DATA......................63
SET................................................
Instruction.............................36
Instruction.................................
Syntaxe.............................36
Options de l'instruction.........50
Shapiro-Wilk.................................
Test de.................................150
SIGN........................................319
SIN...........................................319
SINH........................................319
SKEWNESS............................316
SORT.............................................
Procdure..................................
syntaxe............................135
SPEARMAN..................................
Coefficient de .....................187
SQL...................2, 31, 70, 71, 310
SQRT.......................................319
STANDARD..................................
Procdure............................203
STATDOC.....................................
STYLE=................................89
STD..........................................316
STD\..............................................
TABULATE........................143
STDERR..................................316
STDERR\.......................................
TABULATE........................143
STID193........................................
Fichier exemple.....................24
Stratification..................................
SAS INSIGHT.....................126
Student...........................................
loi317
Test de.........................150, 153
STUDENT.....................................
Test de.......................................
SAS INSIGHT................122
STYLE=.........................................
ODS HTML...........................89
SUM........................................316
SUM\.............................................
TABULATE........................143
SUMWGT.....................................
UNIVARIATE....................149
SUMWGT\....................................
TABULATE........................143

T\
TABULATE........................143
TABLE..........................................
Procdure Tabulate.............142
Tableau..........................................
Disjonctif complet...............231
Tableau d'analyse de la variance...
deux critres.....................171
Tableaux de variables................42
TABULATE..................................
Procdure..................................
syntaxe............................139
TAN.........................................319
TANH......................................319

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 361

TDC.........................................231
Tenenhauss......................227, 268
Test................................................
comparaison de n moyennes
........................................163
d'galit des matrices de
variances cov..................264
nullit du coefficient de
corrlation linaire..........184
Test d'galit de variances.......153
Test de comparaison de moyennes
.............................................152
TIME.......................................320
TIMEw. ........................................
informat ..............................331
TIMEw.d.......................................
format .................................325
Titres dans l'OUTPUT...................
Gestion..................................14
TODAY...................................320
TODAY( )......................................
exemple.................................35
TRANSPOSE.................................
Procdure............................290
TREE.............................................
Procdure............................212
tri plat, tri crois...................156
Trier...............................................
procdure SORT..................135
TRIGAMMA...........................319
Tris croiss....................................
Procdure Tabulate.............140
Typologie.......................................
Qualit de............................206

UNIVARIATE...............................
Procdure............................148
USS..........................................316
USS\...............................................
TABULATE........................143
Utiliser SAS simplement...............
SAS/ASSIST.......................303

V
Validation croise..........................
Mthode..............................260
VAR.........................................316
VAR\..............................................
TABULATE........................143
Variables........................................
Changement d'tiquette.........45
Changement de Format.........47
Changement de nom..............46
Cration (dans une tape
DATA)..............................42
Instantanes...........................49
Modification..........................43
Recodage...............................61
Tableau de.............................44
Tableaux de...........................42
Variables centres rduites............
calcul de..............................203
Variables quantitatives..................
Analyse univarie................148
Variables supplmentaires............
ACP.....................................198
Variance.........................................
Dcomposition de...............164

inter.....................................248
variances........................................
Test d'galit de 2...............152

WARD...........................................
Critre de.............................207
WAYS...........................................
Proc Means............................12
WEEKDATEw. ............................
format .................................325
WEEKDATXw. ............................
format .................................326
WEEKDAY.............................320
WEEKDAY()................................
exemple.................................41
WEEKDAYw. ..............................
format .................................326
Where............................................
fonction...............................297
where=...........................................
option....................................39
WHERE=.......................................
tape data..................................
exemple.............................38
Exemple..........................64, 69
WHILE..........................................
Instruction.................................
tape DATA......................61
Wilcoxon.......................................

Test de.........................150, 180


WILCOXON..................................
NPAR1WAY.......................176
WILKS..........................................
Lambda................................251
Winters..........................................
Modle de............................272
WITH.............................................
Instruction (dans Proc CORR)
........................................186
WORDDATEw. ............................
format .................................326
WORDFw. ....................................
format .................................322

YEAR......................................320
YEARCUTOFF=nombre...............
Options................................334
YEARw. .......................................
format .................................326
YYMMDDw..................................
informat...............................331
YYMMDDw. ................................
format .................................326
YYMMxw. ...................................
format .................................326
YYMONw. ...................................
format .................................326
YYQRxw.......................................

IUT II Dpartement S.T.I.D. Cours de logiciel SAS.


E. PREUDHOMME I.G.W.T. Juin 2001
E. Mail :preudhom@iut2.upmf-grenoble.fr

Page 362

format..................................326
YYQxw. ........................................
format .................................326
LOG .............................................
Dfinition................................9

_
_
Substitution de caractres.....71
_ERROR_......................................
tape DATA..............................
variable automatique.........51
_LAST_=.......................................
Options................................334
_N_................................................
tape DATA..........................48

(deux........................................315

@
@@..........................................349

%
%

Substitution de caractres.....71

$
$COMMAw.d..........................331
$HEXw. ........................................
informat ..............................331

You might also like