introduction à sas · introductionàsas elodiebrunel université de montpellier v. 11/2016 elodie...

83
Introduction SAS Elodie Brunel UniversitØ de Montpellier V. 11/2016 Elodie Brunel (UniversitØ de Montpellier) Introduction SAS 1 / 83

Upload: others

Post on 18-Apr-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introduction à SAS · IntroductionàSAS ElodieBrunel Université de Montpellier V. 11/2016 Elodie Brunel (Université de Montpellier) Introduction à SAS 1 / 83

Introduction à SAS

Elodie Brunel

Université de Montpellier

V. 11/2016

Elodie Brunel (Université de Montpellier) Introduction à SAS 1 / 83

Page 2: Introduction à SAS · IntroductionàSAS ElodieBrunel Université de Montpellier V. 11/2016 Elodie Brunel (Université de Montpellier) Introduction à SAS 1 / 83

Plan

1 Chapitre 1 : Introduction1.1. Les fenêtres SAS1.2. Exécution d’un programme1.3. Modules1.4. Divers éléments de vocabulaire1.5. Articulation générale d’un programme

2 Chapitre 2 : Gestion des Données

3 Chapitre 3 : Procédures Statistiques

4 Chapitre 4 : Les macros

Elodie Brunel (Université de Montpellier) Introduction à SAS 2 / 83

Page 3: Introduction à SAS · IntroductionàSAS ElodieBrunel Université de Montpellier V. 11/2016 Elodie Brunel (Université de Montpellier) Introduction à SAS 1 / 83

Chapitre 1 : Introduction

Le système SAS est un ensemble de modules logiciels pour la gestion et letraitement statistique des données. Il permet l’écriture de programmes SASqui exécutent :

les saisies, importations, interrogations, manipulations, transformationsde données,les éditions d’états, de rapports financiers, de graphiques,les analyses statistiques, modélisation, prévision,des applications spécifiques définies sous forme de macro-commandes.

Elodie Brunel (Université de Montpellier) Introduction à SAS 3 / 83

Page 4: Introduction à SAS · IntroductionàSAS ElodieBrunel Université de Montpellier V. 11/2016 Elodie Brunel (Université de Montpellier) Introduction à SAS 1 / 83

Vous trouverez le formulaire Licence Gratuite à Domicile Etudiant etProfesseur qui doit être complété par chaque demandeur sur le site de SASà cette adresse :

http://www.sas.com/fr_fr/academic/form-licence-gratuite-domicile/register.html

Elodie Brunel (Université de Montpellier) Introduction à SAS 4 / 83

Page 5: Introduction à SAS · IntroductionàSAS ElodieBrunel Université de Montpellier V. 11/2016 Elodie Brunel (Université de Montpellier) Introduction à SAS 1 / 83

1.1. Les fenêtres SASCinq fenêtres s’ouvrent au démarrage de SAS : Editeur (Program Editor),Sorties (Output), Journal (Log), Résultats (Results), Explorateur(Explorer) :

Elodie Brunel (Université de Montpellier) Introduction à SAS 5 / 83

Page 6: Introduction à SAS · IntroductionàSAS ElodieBrunel Université de Montpellier V. 11/2016 Elodie Brunel (Université de Montpellier) Introduction à SAS 1 / 83

Editeur

• La fenêtre de programmation (éditeur) : entrer, éditer, compiler lesprogrammes de SAS.

Elodie Brunel (Université de Montpellier) Introduction à SAS 6 / 83

Page 7: Introduction à SAS · IntroductionàSAS ElodieBrunel Université de Montpellier V. 11/2016 Elodie Brunel (Université de Montpellier) Introduction à SAS 1 / 83

Journal• la fenêtre Journal (ou fenêtre Log) : analyse de la syntaxe du programmeexécuté (messages SAS après compilation). Les principaux messages duJournal sont :

les notes (en bleu dans SAS Windows)les avertissements (Warnings) : il est possible que des erreurs nonfatales aient eu lieu pendant le traitement,les erreurs (Error, en rouge) : des erreurs graves de traitement quiarrêtent la compilation.

De plus, SAS recopie (en noir) le code qui lui a été soumis, précédé denuméros de lignes incrémentés à chaque nouveau programme exécuté dansla session.

Elodie Brunel (Université de Montpellier) Introduction à SAS 7 / 83

Page 8: Introduction à SAS · IntroductionàSAS ElodieBrunel Université de Montpellier V. 11/2016 Elodie Brunel (Université de Montpellier) Introduction à SAS 1 / 83

Sortie, Graph, Résultats• la fenêtre Sortie (Output) : sorties, listings, résultats après compilationdes programmes. Elle est complétée par deux autres fenêtres pourl’affichage des sorties : la fenêtre Graph pour les graphiques et la fenêtreRésultats (Results) qui fournit une arborescence des différentes étapesgénérées par le programme.

Elodie Brunel (Université de Montpellier) Introduction à SAS 8 / 83

Page 9: Introduction à SAS · IntroductionàSAS ElodieBrunel Université de Montpellier V. 11/2016 Elodie Brunel (Université de Montpellier) Introduction à SAS 1 / 83

Explorateur

• la fenêtre Explorer donne les emplacements physiques des répertoires.Elle permet de naviguer parmi les données SAS et en particulier devisualiser les tables SAS qui ont été créées.

Elodie Brunel (Université de Montpellier) Introduction à SAS 9 / 83

Page 10: Introduction à SAS · IntroductionàSAS ElodieBrunel Université de Montpellier V. 11/2016 Elodie Brunel (Université de Montpellier) Introduction à SAS 1 / 83

1.2. Exécution d’un programme

Les menus disponibles sont variables en fonction de la fenêtre active. Lemenu "RUN" n’est disponible que lorsque la fenêtre Editeur est active. Labarre d’outils regroupe les icônes standards (nouveau, ouvrir, enregistrer,couper, copier, coller, annuler, imprimer, aperçu avant impression). Quandla fenêtre Editeur est active, l’icône "Soumettre/Submit" s’ajoute à labarre d’outils :

Il permet l’exécution du programme qui est écrit dans la fenêtre active ; siseule une partie du programme est sélectionnée, alors seul ce code serasoumis et exécuté par SAS.

Elodie Brunel (Université de Montpellier) Introduction à SAS 10 / 83

Page 11: Introduction à SAS · IntroductionàSAS ElodieBrunel Université de Montpellier V. 11/2016 Elodie Brunel (Université de Montpellier) Introduction à SAS 1 / 83

1.3. Modules

SAS est un logiciel organisé en modules qui sont des groupes defonctionnalités. Ainsi certaines procédures ne sont disponibles que si lemodule auquel elles sont rattachées a été installé. Le logiciel SAS est loué àl’année : la licence autorise l’emploi, pour une durée limitée, de certainsmodules.Les principaux modules de SAS :

SAS Base : ce module contient les instructions pour la manipulationde données, les statistiques descriptives élémentaires. Il permet deprogrammer dans le langage SAS de base, ainsi que dans les langagesSQL et macro.SAS Stat : il regroupe les procédures de modélisation (régressionsdiverses), de classification et de statistiques descriptives.SAS Graph : ce module permet l’édition de graphiques divers : nuagesde points, courbes, diagrammes circulaires et en bâtons, cartesgéographiques.

Elodie Brunel (Université de Montpellier) Introduction à SAS 11 / 83

Page 12: Introduction à SAS · IntroductionàSAS ElodieBrunel Université de Montpellier V. 11/2016 Elodie Brunel (Université de Montpellier) Introduction à SAS 1 / 83

1.3. Modules (suite)

SAS Access : cette série de modules permet l’importation etl’exportation de données venant d’autres applications.SAS ETS : ce module statistique regroupe entre autres lesfonctionnalités pour l’étude des données temporelles (ETS :Econometrics and Time Series) non disponible dans SAS Stat.SAS Assist : ce module est une interface clique-bouton pour lacréation de programmes SAS. Toutes les manipulations sontparamétrées par menus et fenêtres de dialogue.SAS IML : ce module permet d’utiliser un langage matriciel (IML :Interactive Matrix Language).SAS Insight : analyse statistique interactive.

Elodie Brunel (Université de Montpellier) Introduction à SAS 12 / 83

Page 13: Introduction à SAS · IntroductionàSAS ElodieBrunel Université de Montpellier V. 11/2016 Elodie Brunel (Université de Montpellier) Introduction à SAS 1 / 83

1.4. Divers éléments de vocabulaire

• Session SAS Quand on démarre le logiciel SAS, on ouvre une sessionSAS. Cette session se termine par la fermeture du logiciel.• Sorties SASOn parle de sorties en général pour désigner l’ensemble des résultatsproduits par SAS : des tables SAS de sorties, un listing de sorties affiché,des graphiques.• vocabulaire sur le quel nous allons revenir ... bibliothèque (ou librairie),table, visualisation d’une table, observation, variable, label, format etinformat, étape DATA, étape PROC.

Elodie Brunel (Université de Montpellier) Introduction à SAS 13 / 83

Page 14: Introduction à SAS · IntroductionàSAS ElodieBrunel Université de Montpellier V. 11/2016 Elodie Brunel (Université de Montpellier) Introduction à SAS 1 / 83

Contraintes du langage SAS

• Ne jamais couper une instruction par un retour de ligne,• Les majuscules et minuscules ne sont pas différenciés par SAS,• Les commentaires, encadrés par les signes /* et */ , peuvent êtreintégrés dans le programme• Toujours terminer une instruction par un point-virgule.

Elodie Brunel (Université de Montpellier) Introduction à SAS 14 / 83

Page 15: Introduction à SAS · IntroductionàSAS ElodieBrunel Université de Montpellier V. 11/2016 Elodie Brunel (Université de Montpellier) Introduction à SAS 1 / 83

1.5. Articulation générale d’un programme

Un programme SAS est une succession d’instructions de deux types :Etape DATA : création, lecture, manipulation de tables SASEtape PROC : traitement, analyse, édition de résultats.

Elodie Brunel (Université de Montpellier) Introduction à SAS 15 / 83

Page 16: Introduction à SAS · IntroductionàSAS ElodieBrunel Université de Montpellier V. 11/2016 Elodie Brunel (Université de Montpellier) Introduction à SAS 1 / 83

Etape DATA

Etape DATA : Afin de pouvoir traiter des données avec SAS, il faut lesmettre sous un certain format, interne à SAS. SAS possède en effet sonpropre système de gestion de bases de données (étape DATA). L’objet créédans une Etape DATA s’appelle une TABLE SAS .Toute étape DATA débute par l’instruction DATA nom-de-table oùnom-de-table est le nom de la table SAS créée. L’étape DATA se terminepar l’instruction RUN .Syntaxe :

DATA nom-de-table;instructions;RUN;

Elodie Brunel (Université de Montpellier) Introduction à SAS 16 / 83

Page 17: Introduction à SAS · IntroductionàSAS ElodieBrunel Université de Montpellier V. 11/2016 Elodie Brunel (Université de Montpellier) Introduction à SAS 1 / 83

Etape PROCEtape PROC : Un programme SAS est une enchaînement de procéduresqui réalise un traitement sur les TABLES disponibles. Voici quelquesexemples basiques :

PRINT : affiche le contenu d’une tables dans l’Output.SORT : tri d’une TABLE selon une variableMEANS, UNIVARIATE : résumés numériques pour variablesquantitativesFREQ : résumés numériques pour variables quanlitativesCORR : calcul des corrélations entre variables quantitativesPLOT, GPLOT : graphiques pour variables quantitativesCHART, GCHART : graphiques pour variables quanlitativesBOXPLOT : boîtes à moustaches.

Syntaxe :

PROC nom-de-procedure <options>;instructions;RUN;

Elodie Brunel (Université de Montpellier) Introduction à SAS 17 / 83

Page 18: Introduction à SAS · IntroductionàSAS ElodieBrunel Université de Montpellier V. 11/2016 Elodie Brunel (Université de Montpellier) Introduction à SAS 1 / 83

Plan

1 Chapitre 1 : Introduction

2 Chapitre 2 : Gestion des Données2.1 Lecture de Données dans le code2.2 Lecture de données dans un fichier externe2.3 Manipulation de Tables2.4 Les bibliothèques ou library

3 Chapitre 3 : Procédures Statistiques

4 Chapitre 4 : Les macros

Elodie Brunel (Université de Montpellier) Introduction à SAS 18 / 83

Page 19: Introduction à SAS · IntroductionàSAS ElodieBrunel Université de Montpellier V. 11/2016 Elodie Brunel (Université de Montpellier) Introduction à SAS 1 / 83

Chapitre 2 : Gestion des Données

On peut créer des tables SAS permanentes ou temporaires. Les tablestemporaires sont effacées lorsqu’on quitte la session. Par défaut, les tablessont créées dans la bibliothèque de travail WORK : elles sont temporaires.Une TABLE est structurée en lignes (observations) et colonnes (variables) :• Les observations sont les lignes d’une TABLE SAS. Chaque observationcorrespond à une unité statistique ou un individu. Chaque observationporte un numéro.• Les variables sont les colonnes d’une TABLE SAS. Chaque variablecorrespond à une information connue sur les observations.Toutes les variables ont trois attributs : nom, type (numérique oucaractères), longueur.Remarque :

la longueur maximale du nom est de 32 caractères ;le premier caractère est une lettre.SAS ne distingue pas les minuscules et les majuscules.

Elodie Brunel (Université de Montpellier) Introduction à SAS 19 / 83

Page 20: Introduction à SAS · IntroductionàSAS ElodieBrunel Université de Montpellier V. 11/2016 Elodie Brunel (Université de Montpellier) Introduction à SAS 1 / 83

Variables numériques

SAS reconnaît les nombres sous les formes suivantes :entiers : 5683 ;entiers relatifs : -5 ;réels : 2.85 ;notation scientifique : 5.4E-1 ;dates : ’24aug90’d. Une date est ainsi définie le plus souvent commenumérique. Mais SAS stocke les dates comme un nombre de jours àpartir du 1/1/1960.

Elodie Brunel (Université de Montpellier) Introduction à SAS 20 / 83

Page 21: Introduction à SAS · IntroductionàSAS ElodieBrunel Université de Montpellier V. 11/2016 Elodie Brunel (Université de Montpellier) Introduction à SAS 1 / 83

Lecture de Données

Il existe 3 façons de créer une TABLE SAS à partir de données :Ecriture à l’intérieur du programme avec des données délimitées,Importation depuis un fichier externe avec l’instruction INFILEUtilisation d’une table préexistante dans un fichier lisible par SAS.

Dans les deux premiers cas, une déclaration des variables est obligatoire àl’aide de l’instruction INPUT :Syntaxe :

DATA nom-de-table;...INPUT VAR1 VAR2 ...;...RUN;

Elodie Brunel (Université de Montpellier) Introduction à SAS 21 / 83

Page 22: Introduction à SAS · IntroductionàSAS ElodieBrunel Université de Montpellier V. 11/2016 Elodie Brunel (Université de Montpellier) Introduction à SAS 1 / 83

2.1 Lecture de Données dans le codeLes données peuvent être écrites dans le programme après l’instructionDATALINESou CARDS :Exemple :

DATA table1;INPUT nom$ age sexe$ ;Chris 36 MJane 21 FTom 30 MJoe 49 MJerry 28 M;RUN;

Dans l’instruction INPUT , les variables alphanumériques nom et sexedoivent être suivies de $. Les données sont séparées par un espace " ", ellesne sont pas alignées : ce sont des données de type délimitées (ici délimitéespar un " ").

Elodie Brunel (Université de Montpellier) Introduction à SAS 22 / 83

Page 23: Introduction à SAS · IntroductionàSAS ElodieBrunel Université de Montpellier V. 11/2016 Elodie Brunel (Université de Montpellier) Introduction à SAS 1 / 83

Données délimitéesOn soumet ensuite de code de l’étape DATA : la TABLE table1 est crééedans la librairie WORK (temporaire). On peut la visualiser à partir del’Explorateur SAS ou bien dans la fenêtre OUTPUT en utilisant laprocédure PRINT

PROC PRINT DATA=table1;RUN;

Dans la fenêtre OUTPUT :

Elodie Brunel (Université de Montpellier) Introduction à SAS 23 / 83

Page 24: Introduction à SAS · IntroductionàSAS ElodieBrunel Université de Montpellier V. 11/2016 Elodie Brunel (Université de Montpellier) Introduction à SAS 1 / 83

Données délimitéesOn peut utiliser d’autres séparateurs que " ". Pour cela, il faut rajouterl’instruction INFILE avec des options :

FIRSTOBS=num : numéro num de la première ligne lue.OBS=num : numéro num de la dernière ligne lue.DLM="." : indique le caractère séparateur : "." ou " ;" ou "&"

Par défaut, le séparateur utilisé avec l’instruction INFILE est ",".Exemple :DATA table1;INFILE datalines DLM="&";INPUT nom$ age sexe$ ;DATALINES;Chris&36&MJane&21&FTom&30&MJoe&49&MJerry&28&M;RUN;

Elodie Brunel (Université de Montpellier) Introduction à SAS 24 / 83

Page 25: Introduction à SAS · IntroductionàSAS ElodieBrunel Université de Montpellier V. 11/2016 Elodie Brunel (Université de Montpellier) Introduction à SAS 1 / 83

Données délimitées

Gestion des données manquantes sur une ligne. Le code suivant produit laTABLE table2 :

DATA table2;INFILE datalines DLM="&";INPUT nom$ age sexe$;DATALINES;Bob&mMarie&25&fYves&45&m;RUN;

Elodie Brunel (Université de Montpellier) Introduction à SAS 25 / 83

Page 26: Introduction à SAS · IntroductionàSAS ElodieBrunel Université de Montpellier V. 11/2016 Elodie Brunel (Université de Montpellier) Introduction à SAS 1 / 83

Données délimitées

L’option DSD de l’instruction INFILE donne priorité au séparateur : deuxséparateurs successifs seront interprétés comme une donnée manquante :

DATA table2;INFILE datalines DLM="&" DSD;INPUT nom$ age sexe$;DATALINES;Bob&&mMarie&25&fYves&45&m;RUN;

Elodie Brunel (Université de Montpellier) Introduction à SAS 26 / 83

Page 27: Introduction à SAS · IntroductionàSAS ElodieBrunel Université de Montpellier V. 11/2016 Elodie Brunel (Université de Montpellier) Introduction à SAS 1 / 83

Les informats ou formats de lecture

Les informats sont des formats de lecture des données (Attention ! ! à nepas confondre avec les formats d’écriture cf. plus loin) Les informats sontspécifiées dans l’instruction INPUT et indiquent à SAS comment lesdonnées doivent être lues dans le programme ou dans le fichier externe :

variable numérique : Var :x. pour variables entières et Var :x.qpour variables décimales où x indique le nombre de caractères à lire(point compris) et q le nombre de décimales.variable alpha-numérique : Var :$x. où x indique le nombre decaractères (8 par défaut).variable de date : YYMMDD.

Remarque : Le " :" donne la priorité au délimiteur sur l’informat le longd’une ligne : cela signifie que lorsque SAS lit une ligne il peut passer d’unevariable à l’autre sans forcément avoir atteint le nombre total de caractèresdéclarés.

Elodie Brunel (Université de Montpellier) Introduction à SAS 27 / 83

Page 28: Introduction à SAS · IntroductionàSAS ElodieBrunel Université de Montpellier V. 11/2016 Elodie Brunel (Université de Montpellier) Introduction à SAS 1 / 83

Les informats (suite)

DATA table3;INFILE datalines DLM="&";INPUT nom$ age sexe$;DATALINES;Chris Evans&25&mJaneTrulli&21&fJoeStar&49&m;RUN;

Par défaut, seuls les 8 premiers caractères de nom ont été lus. Il faut doncutiliser un informat pour remédier à ce problème...

Elodie Brunel (Université de Montpellier) Introduction à SAS 28 / 83

Page 29: Introduction à SAS · IntroductionàSAS ElodieBrunel Université de Montpellier V. 11/2016 Elodie Brunel (Université de Montpellier) Introduction à SAS 1 / 83

Les informats (suite)

DATA table3;INFILE datalines DLM="&";INPUT nom : $11. age sexe$;DATALINES;Chris Evans&25&mJaneTrulli&21&fJoeStar&49&m;RUN;

Elodie Brunel (Université de Montpellier) Introduction à SAS 29 / 83

Page 30: Introduction à SAS · IntroductionàSAS ElodieBrunel Université de Montpellier V. 11/2016 Elodie Brunel (Université de Montpellier) Introduction à SAS 1 / 83

Données tabuléesOn dit que les données sont tabulées lorsqu’elles occupent toujours lamême position sur chaque ligne du fichier : SAS peut contrôler la colonne àpartir de laquelle va se faire la lecture dans l’instruction INPUT à l’aided’un pointeur . Puis, grâce à l’informat , SAS va interpréter la longueuroccupée sur le support par la variable :

INPUT [pointeur] VAR : informat de lecture ...;

INPUT @1 prenom $5. @7 nom $6. @15 age $2. @18 sexe$1.@21 naissance DDMMYY10.;

1 7 15 18 21

prenom nom age sexe naissance

5 6 2 1

Elodie Brunel (Université de Montpellier) Introduction à SAS 30 / 83

Page 31: Introduction à SAS · IntroductionàSAS ElodieBrunel Université de Montpellier V. 11/2016 Elodie Brunel (Université de Montpellier) Introduction à SAS 1 / 83

Données tabulées (suite)

DATA table4;INPUT @1 prenom $5. @7 nom $6. @15 age $2.

@18 sexe$1. @21 naissance DDMMYY10.;DATALINES;Chris Evans 25 m 11/01/1991Jane Trulli 21 f 17/03/1995Joe Star 49 m 11/05/1967;RUN;

Les données sont correctement lues mais le format d’écriture de la date denaissance est le format utilisé par SAS pour le stockage des dates (nombrede jour depuis le 1/1/1960 !). Pour le modifier, nous allons utiliser unformat d’écriture .

Elodie Brunel (Université de Montpellier) Introduction à SAS 31 / 83

Page 32: Introduction à SAS · IntroductionàSAS ElodieBrunel Université de Montpellier V. 11/2016 Elodie Brunel (Université de Montpellier) Introduction à SAS 1 / 83

Les formats d’écriture

Le format d’écriture est donné dans l’instruction FORMAT qui sera placéaprès l’instruction INPUT :

FORMAT prenom $5. nom $7. age $2. sexe $1. naissance DDMMYY10.;

La date est affichée avec 10 caractères "/" compris. On aurait pu n’afficherla date qu’avec 8 caractère sous la forme 11/01/91 avec le FORMATDDMMYY8.Remarque : Il est donc possible d’appliquer des formats de lecture etd’écriture différents à une variable.

Elodie Brunel (Université de Montpellier) Introduction à SAS 32 / 83

Page 33: Introduction à SAS · IntroductionàSAS ElodieBrunel Université de Montpellier V. 11/2016 Elodie Brunel (Université de Montpellier) Introduction à SAS 1 / 83

On peut aussi utiliser d’autres syntaxes pour les pointeurs .@n le pointeur est placé à la colonne n de la ligne courante,+n le pointeur avance de n colonnes sur la ligne courante#n le pointeur va à la ligne n ainsi dans l’exemple précédent, on auraitpu aussi écrire :

INPUT @1 prenom $5. +1 nom $6. +2 age $2.+1 sexe$1. +2 naissance DDMMYY10.;

Elodie Brunel (Université de Montpellier) Introduction à SAS 33 / 83

Page 34: Introduction à SAS · IntroductionàSAS ElodieBrunel Université de Montpellier V. 11/2016 Elodie Brunel (Université de Montpellier) Introduction à SAS 1 / 83

2.2 Lecture de données dans un fichier externe

Les données se trouvent dans un fichier externe nommé individus.txt. Ici lesdonnées sont délimitées par une tabulation (fichier provenant de Excel parexemple) :

Elodie Brunel (Université de Montpellier) Introduction à SAS 34 / 83

Page 35: Introduction à SAS · IntroductionàSAS ElodieBrunel Université de Montpellier V. 11/2016 Elodie Brunel (Université de Montpellier) Introduction à SAS 1 / 83

2.2 Lecture de données dans un fichier externe

Pour lire ces données, on utilise l’instruction INFILE .

DATA tableind;INFILE ’individus.txt’ DSD DLM=’09’x TRUNCOVER;INPUT prenom $ nom $ sexe $ age ville $10.;RUN;

L’option DSD prévient d’éventuelles données manquantes, et l’optionTRUNCOVER pour lire des lignes non complètes sans passer directement à laligne suivante : ici sans l’option TRUNCOVER SAS ira à la ligne suivante sanslire Londres qui n’occupe pas 10 caractères. DLM=’09’x est utilisé pourindiquer que le séparateur est ici une tabulation.

Elodie Brunel (Université de Montpellier) Introduction à SAS 35 / 83

Page 36: Introduction à SAS · IntroductionàSAS ElodieBrunel Université de Montpellier V. 11/2016 Elodie Brunel (Université de Montpellier) Introduction à SAS 1 / 83

AttributsToutes les variables présentent un certain nombre de caractéristiques (nom,label, type, format, longueur). L’instruction ATTRIB a pour but decentraliser ces caractéristiques. Ainsi, l’instruction ATTRIB remplacel’instruction FORMAT et permet en plus d’attribuer des LABEL auxvariables Syntaxe :

ATTRIB prenomLABEL="prénom de l’individu";ATTRIB ageLABEL="Age de l’individu"FORMAT=2.;ATTRIB villeLABEL="Lieu de résidence"FORMAT=$10.;

Elodie Brunel (Université de Montpellier) Introduction à SAS 36 / 83

Page 37: Introduction à SAS · IntroductionàSAS ElodieBrunel Université de Montpellier V. 11/2016 Elodie Brunel (Université de Montpellier) Introduction à SAS 1 / 83

Pour vérifier et visualiser le contenu d’une TABLE SAS, on peut utiliser laPROC CONTENTS :

PROC CONTENTS DATA=tableind;RUN;

Elodie Brunel (Université de Montpellier) Introduction à SAS 37 / 83

Page 38: Introduction à SAS · IntroductionàSAS ElodieBrunel Université de Montpellier V. 11/2016 Elodie Brunel (Université de Montpellier) Introduction à SAS 1 / 83

2.3 Manipulation de Tables

La fusion verticale de tables consiste à empiler les données de plusieursTABLES SAS. Elle est réalisée au sein d’une étape DATA avec l’instructionSET . SAS va lire l’une après l’autre les lignes de la première TABLE puiscelle de la seconde TABLE, etc. Dans ce type de fusion, on a au moins unevariable commune. Syntaxe :

DATA nom-table;SET table1 table2 table3 ...;RUN;

Elodie Brunel (Université de Montpellier) Introduction à SAS 38 / 83

Page 39: Introduction à SAS · IntroductionàSAS ElodieBrunel Université de Montpellier V. 11/2016 Elodie Brunel (Université de Montpellier) Introduction à SAS 1 / 83

Fusion verticaleDATA tab1; DATA tab2;INPUT prenom $ age; INPUT prenom $ age;DATALINES; DATALINES;Chris 36 Jerry 28Dan 38 Jim 18Emma 51 Joe 49Jane 21 Jane 21Joe 20 Sid 36; ;RUN; RUN;

DATA tab3;SET tab1 tab2;RUN;

Elodie Brunel (Université de Montpellier) Introduction à SAS 39 / 83

Page 40: Introduction à SAS · IntroductionàSAS ElodieBrunel Université de Montpellier V. 11/2016 Elodie Brunel (Université de Montpellier) Introduction à SAS 1 / 83

Fusion verticaleLes données des deux tables sont empilées, mais les doublons ne sont paséliminées (L’individu Jane apparaît deux fois). Pour éliminer les doublonséventuels : on utilise la PROC SORT avec l’option NODUPRECS :

PROC SORT DATA=tab3 NODUPRECS;BY prenom age;RUN;

Elodie Brunel (Université de Montpellier) Introduction à SAS 40 / 83

Page 41: Introduction à SAS · IntroductionàSAS ElodieBrunel Université de Montpellier V. 11/2016 Elodie Brunel (Université de Montpellier) Introduction à SAS 1 / 83

Fusion horizontale

La fusion horizontale de tables n’est possible que pour des TABLESpossédant au moins une variable commune. Les données de chacune desTABLES doivent êtres triées selon la variable de recollement à l’aide de laprocédure SORT .La fusion est ensuite réalisée dans une étape DATA à l’aide de l’instructionMERGE .

DATA tab1; DATA tab2;INPUT prenom $ age; INPUT prenom $ sexe $;DATALINES; DATALINES;Chris 36 Chris MDan 38 Dan MEmma 51 Emma FJane 21 Jane FJoe 20 Sid M; ;RUN; RUN;

Elodie Brunel (Université de Montpellier) Introduction à SAS 41 / 83

Page 42: Introduction à SAS · IntroductionàSAS ElodieBrunel Université de Montpellier V. 11/2016 Elodie Brunel (Université de Montpellier) Introduction à SAS 1 / 83

Fusion horizontale

PROC SORT DATA=tab1; PROC SORT DATA=tab2;BY prenom; BY prenom;RUN; RUN;

DATA tab3;MERGE tab1 tab2;BY prenom;RUN;

Elodie Brunel (Université de Montpellier) Introduction à SAS 42 / 83

Page 43: Introduction à SAS · IntroductionàSAS ElodieBrunel Université de Montpellier V. 11/2016 Elodie Brunel (Université de Montpellier) Introduction à SAS 1 / 83

Création/suppression de variables

On peut créer de nouvelles variables dans une étape DATA.Syntaxe :

DATA tablenew;SET tableold;NouvelleVAR = Var1+Var2;RUN;

où Var1 et Var2 sont des variables de tableold et la table créée tablenewcontiendra toutes les variables de tableold et la variable NouvelleVAR.On peut aussi supprimer/garder certaines variables grâce à l’instructionDROPet KEEP.

DATA tablenew; DATA tablenew;SET tableold (KEEP=Var2); SET tableold (DROP=Var1);RUN; RUN;

Elodie Brunel (Université de Montpellier) Introduction à SAS 43 / 83

Page 44: Introduction à SAS · IntroductionàSAS ElodieBrunel Université de Montpellier V. 11/2016 Elodie Brunel (Université de Montpellier) Introduction à SAS 1 / 83

Sélection d’observations

On peut supprimer des observations dans une étape DATA grâce àl’instruction WHERE. Par exemple, on souhaite extraire de la TABLEtableind les individus Homme :

DATA tablehom;SET tableind (WHERE =(sexe=’M’));RUN;

Elodie Brunel (Université de Montpellier) Introduction à SAS 44 / 83

Page 45: Introduction à SAS · IntroductionàSAS ElodieBrunel Université de Montpellier V. 11/2016 Elodie Brunel (Université de Montpellier) Introduction à SAS 1 / 83

2.4 Les bibliothèques, les tables permanentes et temporaires

On peut stocker les tables de façon permanente ou temporaire. La tabletemporaire est détruite à la fin de la session SAS en cours.

Une table temporaire sera représentée par un simple nom_de_table.Une table permanente se présentera de la manière suivante :nom_de_library.nom_de_table où nom_de_library représentera lalibrary ou bibliothèque (=le répertoire) où la table est stockée. Lalibrairie est définie lors d’une instruction LIBNAME assurant lacorrespondance entre le nom_de_library et le nom physique (=réel)de la bibliothèque.

Elodie Brunel (Université de Montpellier) Introduction à SAS 45 / 83

Page 46: Introduction à SAS · IntroductionàSAS ElodieBrunel Université de Montpellier V. 11/2016 Elodie Brunel (Université de Montpellier) Introduction à SAS 1 / 83

2.4 Les bibliothèques, ...

Une fois définie, la librairie n’est allouée que pour la durée de la session.Exemple : On tape l’instruction suivante en tête de programme, de manièreà la retrouver facilement.

LIBNAME pays ’C:\Cours SAS’;

Cette instruction crée la bibliothèque pays dans le répertoireC:\Cours SAS.Ensuite, pour créer la TABLE SAS russet dans la bibliothèque pays :

DATA pays.russet;INFILE ’C:\Cours SAS\russet.txt’ DLM=’,’;RUN;

Elodie Brunel (Université de Montpellier) Introduction à SAS 46 / 83

Page 47: Introduction à SAS · IntroductionàSAS ElodieBrunel Université de Montpellier V. 11/2016 Elodie Brunel (Université de Montpellier) Introduction à SAS 1 / 83

On peut visualiser le contenu d’une bibliothèque à l’aide de l’Explorateur.

Il existe des biliothèques prédéfinies dans SAS :WORK est une bibliothèque temporaire. Son contenu est effacé à lafin de la session SAS.SASHELP héberge des données fournies par SAS comme exemples.SASUSER est une bibliothèque personnelle (chaque utilisateur a sapropre SASUSER) permanente (au contraire de WORK). Son contenun’est donc pas effacé à la fermeture de SAS.

Elodie Brunel (Université de Montpellier) Introduction à SAS 47 / 83

Page 48: Introduction à SAS · IntroductionàSAS ElodieBrunel Université de Montpellier V. 11/2016 Elodie Brunel (Université de Montpellier) Introduction à SAS 1 / 83

Plan

1 Chapitre 1 : Introduction

2 Chapitre 2 : Gestion des Données

3 Chapitre 3 : Procédures Statistiques3.1 PROC TABULATE3.2 PROC MEANS3.3 PROC FREQ3.4 PROC CORR3.5 PROC UNIVARIATE3.6 PROC FORMAT3.7 PROC TTEST

4 Chapitre 4 : Les macros

Elodie Brunel (Université de Montpellier) Introduction à SAS 48 / 83

Page 49: Introduction à SAS · IntroductionàSAS ElodieBrunel Université de Montpellier V. 11/2016 Elodie Brunel (Université de Montpellier) Introduction à SAS 1 / 83

Chapitre 3 : Procédures Statistiques

On détaille maintenant quelques procédures usuelles :

PROC TABULATE tableaux croisés,PROC MEANS calcul de statistiques descriptives,PROC FREQ tableaux de fréquence ou de contingence et tests duChi-2,PROC CORR calculs de corrélations,PROC UNIVARIATE description et tests de la distribution d’unevariable

Elodie Brunel (Université de Montpellier) Introduction à SAS 49 / 83

Page 50: Introduction à SAS · IntroductionàSAS ElodieBrunel Université de Montpellier V. 11/2016 Elodie Brunel (Université de Montpellier) Introduction à SAS 1 / 83

Toutes les procédures d’analyse statistique ont la même structure de lasyntaxe :

PROC NomPROC DATA=nom-de-table (WHERE=(expression));VAR variable(s) numérique(s);BY <DESCENDING> variable(s) ;CLASS variable(s) ;RUN;

Pour effectuer une sélection des observations de la table SAS spécifiée enentrée d’une procédure SAS, on peut utiliser l’option WHERE= .Pour sélectionner les variables analysées dans les procédures de statistique,on utilise l’instruction VAR . Elle est valable dans un grand nombre deprocédures statistiques : MEANS, UNIVARIATE, CORR, etc . Les variablesnumériques sont les seules autorisées dans une instruction VAR. Pourmener une analyse sur plusieurs sous-groupes d’observations, on disposedes instructions CLASS et BY .

Elodie Brunel (Université de Montpellier) Introduction à SAS 50 / 83

Page 51: Introduction à SAS · IntroductionàSAS ElodieBrunel Université de Montpellier V. 11/2016 Elodie Brunel (Université de Montpellier) Introduction à SAS 1 / 83

Comparaison Instructions BY/CLASS :

BY : Valable dans toutes les procédures d’analyse statistique. CLASS : Valableuniquement dans les procédures MEANS, UNIVARIATE et TTEST.

BY : Les valeurs manquantes de chaque variable du BY constituent unsousgroupe pris en compte dans l’analyse. CLASS : Par défaut, les valeursmanquantes des variables de classe ne sont pas prises en compte dans l’analyse.

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

Elodie Brunel (Université de Montpellier) Introduction à SAS 51 / 83

Page 52: Introduction à SAS · IntroductionàSAS ElodieBrunel Université de Montpellier V. 11/2016 Elodie Brunel (Université de Montpellier) Introduction à SAS 1 / 83

3.1 PROC TABULATE

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

PROC TABULATE DATA=tableSAS <options> ;CLASS variable(s) ;VAR variable(s);TABLE (structure des lignes du tableau),(structure des colonnes du tableau)*(calculs apparaissant dans les cases du tableau);RUN;

Elodie Brunel (Université de Montpellier) Introduction à SAS 52 / 83

Page 53: Introduction à SAS · IntroductionàSAS ElodieBrunel Université de Montpellier V. 11/2016 Elodie Brunel (Université de Montpellier) Introduction à SAS 1 / 83

La TABLE russet contient 24 observations du P.N.B par habitant pour 24pays et d’une variable qualitative demo :

Elodie Brunel (Université de Montpellier) Introduction à SAS 53 / 83

Page 54: Introduction à SAS · IntroductionàSAS ElodieBrunel Université de Montpellier V. 11/2016 Elodie Brunel (Université de Montpellier) Introduction à SAS 1 / 83

Exemple :proc tabulate data=russet;class demo;table (demo ALL="Tous")

*(N="Effectif" PCTN="%");run;

proc tabulate data=russet;class demo;var gnpr;table (demo ALL="Tous"),gnpr*MEAN="Moyenne";

run;

Dans le premier tableau, les statistiques affichées dans les cellules sont les effectifs (N)et les pourcentages (PCTN). Le mot-clé ALL crée une colonne récapitulative : il s’agit icidu total des effectifs. Dans le second tableau, la dernière partie de l’instruction TABLE

concerne les calculs à effectuer : la syntaxe est de la formenomVariabledeCalcul*statistique, où la variable de calcul est celle de l’instructionVAR et la statistique est : SUM, MEAN, STD, MAX, MIN, RANGE, MEDIAN, Q1, Q3,P1, P5, P10, P90, P95, P99, ...

Elodie Brunel (Université de Montpellier) Introduction à SAS 54 / 83

Page 55: Introduction à SAS · IntroductionàSAS ElodieBrunel Université de Montpellier V. 11/2016 Elodie Brunel (Université de Montpellier) Introduction à SAS 1 / 83

3.2 PROC MEANS

La PROC MEANS permet d’analyser la distribution d’une variablenumérique :

calculer la somme de la variable ;calculer la moyenne et la médiane ;calculer l’écart-type, l’étendue et l’intervalle inter-quartile ;étudier la répartition de la variable (médiane, quartiles d’ordre 1 et 3,centiles d’ordre 1, 5, 10, 25, 50, 75, 90, 95, 99) ;étudier la forme de la distribution (coefficients d’aplatissement etd’asymétrie) ;identifier les valeurs extrêmes de la variable.

Elodie Brunel (Université de Montpellier) Introduction à SAS 55 / 83

Page 56: Introduction à SAS · IntroductionàSAS ElodieBrunel Université de Montpellier V. 11/2016 Elodie Brunel (Université de Montpellier) Introduction à SAS 1 / 83

Syntaxe :

PROC MEANS DATA=nom_de_table STAT1 ... STATm <options>;CLASS liste_de_variables ;VAR liste_de_variables_numériques ;BY liste_de_variables ;FREQ variable ;WEIGHT variable ;ID variable;OUTPUT OUT=nom_de_table;

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

le nombre d’observations (N) ;

la moyenne (Mean) ;

l’écart-type (Std Dev) ;

le minimum ;

le maximum.

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

Elodie Brunel (Université de Montpellier) Introduction à SAS 56 / 83

Page 57: Introduction à SAS · IntroductionàSAS ElodieBrunel Université de Montpellier V. 11/2016 Elodie Brunel (Université de Montpellier) Introduction à SAS 1 / 83

Exemple :

PROC MEANS DATA=russet;VAR gnpr;CLASS demo;RUN;

PROC SORT DATA=russet;BY demo;RUN;PROC MEANS DATA=russet mean;VAR gnpr;BY demo;RUN;

Elodie Brunel (Université de Montpellier) Introduction à SAS 57 / 83

Page 58: Introduction à SAS · IntroductionàSAS ElodieBrunel Université de Montpellier V. 11/2016 Elodie Brunel (Université de Montpellier) Introduction à SAS 1 / 83

Exemple :PROC MEANS DATA=russet mean kurtosis uclm lclm t prt alpha=0.05;VAR gnpr;CLASS demo;RUN;

KURTOSIS : coefficient d’aplatissement (compare la forme de la courbe de distributiondes observations à celle de la loi normale : un coefficient positif indique une plus forteconcentration des observations ; un coefficient négatif indique une courbe plus aplatie).SKEWNESS : coefficient d’ asymétrie (indique si les observations sont répartieséquitablement autour de la moyenne (le coefficient est alors nul) ou si elles sont plutôtconcentrées vers les valeurs les plus faibles (coefficient positif) ou vers les valeurs lesplus élevées (coefficient négatif).T : valeur de la statistique Student.PRT : p-value du test de Student de nullité de la moyenne.

Elodie Brunel (Université de Montpellier) Introduction à SAS 58 / 83

Page 59: Introduction à SAS · IntroductionàSAS ElodieBrunel Université de Montpellier V. 11/2016 Elodie Brunel (Université de Montpellier) Introduction à SAS 1 / 83

3.3 PROC FREQ

Cette procédure est à la fois :une procédure descriptive qui produit des tableaux de fréquences, decontingence ou des tris croisés multidimensionnels. Elle permet decalculer les effectifs et les fréquences de chaque valeur prise par unevariable ;une procédure statistique permettant de faire certains tests comme letest du chi2.

cf. TP2.

Elodie Brunel (Université de Montpellier) Introduction à SAS 59 / 83

Page 60: Introduction à SAS · IntroductionàSAS ElodieBrunel Université de Montpellier V. 11/2016 Elodie Brunel (Université de Montpellier) Introduction à SAS 1 / 83

Syntaxe :

PROC FREQ DATA=tableSAS ORDER=ordreValeurs <options> ;BY liste_de_variables ;TABLES Var1 Var2 <options> ; /* TABLES Var1*Var2 <options> ; */WEIGHT variable ;RUN ;

L’instruction TABLES permet de définir la liste des distributionssouhaitées. Plusieurs distributions peuvent être demandées simultanément,chacune pouvant être unidimensionnelle ou multidimensionnelle. Dans lecas de demande de plusieurs distributions simultanées, il suffit de séparerchaque distribution par un espace. Si on veut croiser plusieurs variablesentre elles, il suffit de les séparer par des astérisques.

Elodie Brunel (Université de Montpellier) Introduction à SAS 60 / 83

Page 61: Introduction à SAS · IntroductionàSAS ElodieBrunel Université de Montpellier V. 11/2016 Elodie Brunel (Université de Montpellier) Introduction à SAS 1 / 83

Exemple :

PROC FREQ DATA=russet;TABLES contin demo;RUN;

PROC FREQ DATA=russet;TABLES contin*demo;RUN;

fournit les deuxdistributions marginales de contin et demo.

Elodie Brunel (Université de Montpellier) Introduction à SAS 61 / 83

Page 62: Introduction à SAS · IntroductionàSAS ElodieBrunel Université de Montpellier V. 11/2016 Elodie Brunel (Université de Montpellier) Introduction à SAS 1 / 83

Exemple (suite) :

PROC FREQ DATA=russet;TABLES contin*demo;RUN;

fournit la distribution conjointe de contin

et demo (table de contingence).

Elodie Brunel (Université de Montpellier) Introduction à SAS 62 / 83

Page 63: Introduction à SAS · IntroductionàSAS ElodieBrunel Université de Montpellier V. 11/2016 Elodie Brunel (Université de Montpellier) Introduction à SAS 1 / 83

Options principales de l’instruction TABLES :NOCOL : supprime l’impression des pourcentages en colonneNOROW : supprime l’impression des pourcentages en ligneNOFREQ : supprime l’impression des fréquences croiséesNOPERCENT : supprime l’impression des pourcentages croisésNOCUM : supprime l’impression des fréquences et des pourcentages cumulésCUMCOL : imprime les pourcentages colonne cumulés.NOPRINT : supprime l’impression des tables mais permet l’impression destatistiquesOUT= : stocke les résultats de la demande dans la table SASMISSING : traite les valeurs manquantes comme des modalités renseignées dansles calculs et tous les tableaux.EXPECTED : imprime les fréquences attendues sous l’hypothèse d’indépendanceDEVIATION : édite les écarts entre les effectifs observés et théoriquesLIST : imprime des tables de dimension 2 sous forme de liste plutôt que detableauxCELLCHI2 : imprime la contribution de chaque case à la statistique du chi2 totaleCHISQ : calcule le test du chi2 d’homogénéité ou d’indépendance de chaque strateet calcule les mesures associées au chi2.

Elodie Brunel (Université de Montpellier) Introduction à SAS 63 / 83

Page 64: Introduction à SAS · IntroductionàSAS ElodieBrunel Université de Montpellier V. 11/2016 Elodie Brunel (Université de Montpellier) Introduction à SAS 1 / 83

Exemple : test du χ2 d’indépendance

PROC FREQ DATA=russet ;TABLES contin*demo/ nofreq nopercent norow nocol nocum

expected deviation cellchi2 chisq;RUN;

Elodie Brunel (Université de Montpellier) Introduction à SAS 64 / 83

Page 65: Introduction à SAS · IntroductionàSAS ElodieBrunel Université de Montpellier V. 11/2016 Elodie Brunel (Université de Montpellier) Introduction à SAS 1 / 83

Exemple : test du χ2 d’indépendance (suite)

On a effectué l’analyse sur un échantillon très petit, aussi le test du χ2 n’est pas trèsfiable. Cependant, le test du χ2 montre une probabilité de rejeter à tort l’hypothèsed’indépendance entre les deux variables de 33% (0,333), ce qui est assez important : onne peut pas rejeter cette hypothèse. Cette conclusion est corroborée par les valeurs destrois derniers coefficients, phi, contingence et V de Cramer : pour ce dernier, parexemple, la liaison observée correspond à 43,57% de liaison entre les deux variables (cequi est assez peu).

Elodie Brunel (Université de Montpellier) Introduction à SAS 65 / 83

Page 66: Introduction à SAS · IntroductionàSAS ElodieBrunel Université de Montpellier V. 11/2016 Elodie Brunel (Université de Montpellier) Introduction à SAS 1 / 83

3.4 PROC CORRLa PROC CORR permet le calcul des coefficients de corrélation entre lesvariables (PEARSON, SPEARMAN, KENDALL) et peut produire desmatrices de produits croisés ainsi que des matrices de variance-covariance.Syntaxe :

PROC CORR DATA=nom_de_table <options> ;BY liste_de_variables ;FREQ variable ;PARTIAL liste_de_variables ;VAR liste_de_variables ;WEIGHT variable ;

BY : la procédure est exécutée pour chaque sous groupe. PARTIAL : permet de mesurerles corrélations partielles entre les combinaisons 2 à 2 d’une liste de variables numériques(instruction VAR) en éliminant l’influence des variables de l’instruction PARTIAL. VAR :variables pour lesquelles les coefficients sont calculés. WEIGHT : variable depondération. A utiliser uniquement pour le calcul du coefficient de Pearson. FREQ :spécifie la variable numérique dont la valeur représente la fréquence de l’observation.

Elodie Brunel (Université de Montpellier) Introduction à SAS 66 / 83

Page 67: Introduction à SAS · IntroductionàSAS ElodieBrunel Université de Montpellier V. 11/2016 Elodie Brunel (Université de Montpellier) Introduction à SAS 1 / 83

Quelques options :

KENDALL : sélection du type de corrélation KENDALL (pour lesvariables ordinales).PEARSON : sélection du type de corrélation PEARSON (par défaut)(pour les variables numériques).SPEARMAN : sélection du type de corrélation SPEARMAN (pour lesvariables ordinales).

Elodie Brunel (Université de Montpellier) Introduction à SAS 67 / 83

Page 68: Introduction à SAS · IntroductionàSAS ElodieBrunel Université de Montpellier V. 11/2016 Elodie Brunel (Université de Montpellier) Introduction à SAS 1 / 83

3.5 PROC UNIVARIATELa procédure UNIVARIATE calcule des statistiques simples sur des variablesnumériques. Plus complète que la procédure MEANS , elle fournit :

des détails sur les valeurs extrêmes d’une variablele calcul de n’importe quel quantile de la distributionplus de tests : 2 tests pour l’égalité de la moyenne à une constantedonnée, 1 pour le même test avec la médiane, 4 pour la normalité dela distribution, etc.la création de graphiques pour étudier la distribution (boxplot,histogrammes, courbes de densité).

Syntaxe :

PROC UNIVARIATE DATA=nom_de_table_SAS <options> ;VAR liste_de_variables ;ID variable ;HISTOGRAM liste_de_variables / <options> ;PROBLPLOT liste_de_variables / <options> ;RUN ;

Elodie Brunel (Université de Montpellier) Introduction à SAS 68 / 83

Page 69: Introduction à SAS · IntroductionàSAS ElodieBrunel Université de Montpellier V. 11/2016 Elodie Brunel (Université de Montpellier) Introduction à SAS 1 / 83

VAR : spécifie les variables numériques à analyser. Par défaut, toutes lesvariables numériques de la table en entrée sont analysées.ID : variable d’identification pour les 5 plus petites et 5 plus grandesvaleurs en sortie.HISTOGRAM : trace un histogramme pour les variables spécifiées.PROBPLOT : trace la distribution des variables, en la comparant à unedistribution théorique spécifiée par l’utilisateur.

Elodie Brunel (Université de Montpellier) Introduction à SAS 69 / 83

Page 70: Introduction à SAS · IntroductionàSAS ElodieBrunel Université de Montpellier V. 11/2016 Elodie Brunel (Université de Montpellier) Introduction à SAS 1 / 83

PROC UNIVARIATE : les sorties par défaut

Elodie Brunel (Université de Montpellier) Introduction à SAS 70 / 83

Page 71: Introduction à SAS · IntroductionàSAS ElodieBrunel Université de Montpellier V. 11/2016 Elodie Brunel (Université de Montpellier) Introduction à SAS 1 / 83

PROC UNIVARIATE : l’option id

Elodie Brunel (Université de Montpellier) Introduction à SAS 71 / 83

Page 72: Introduction à SAS · IntroductionàSAS ElodieBrunel Université de Montpellier V. 11/2016 Elodie Brunel (Université de Montpellier) Introduction à SAS 1 / 83

PROC UNIVARIATE : l’option HISTOGRAMHISTOGRAM / exponential (threshold=est);

Elodie Brunel (Université de Montpellier) Introduction à SAS 72 / 83

Page 73: Introduction à SAS · IntroductionàSAS ElodieBrunel Université de Montpellier V. 11/2016 Elodie Brunel (Université de Montpellier) Introduction à SAS 1 / 83

PROC UNIVARIATE : l’option HISTOGRAMl’option HISTOGRAMM fournit aussi les sorties suivantes :

Elodie Brunel (Université de Montpellier) Introduction à SAS 73 / 83

Page 74: Introduction à SAS · IntroductionàSAS ElodieBrunel Université de Montpellier V. 11/2016 Elodie Brunel (Université de Montpellier) Introduction à SAS 1 / 83

PROC UNIVARIATE : l’option PROBPLOTprobplot gnpr/exponential (threshold=est sigma=est color=blue w=1);

Elodie Brunel (Université de Montpellier) Introduction à SAS 74 / 83

Page 75: Introduction à SAS · IntroductionàSAS ElodieBrunel Université de Montpellier V. 11/2016 Elodie Brunel (Université de Montpellier) Introduction à SAS 1 / 83

PROC UNIVARIATE : Test de normalité

SAS permet de réaliser quatre tests de normalité : les tests de Shapiro-Wilk, Kolmogorov-Smirnov, Cramer-von Mises et Anderson-Darling.Pour obtenir les résultats des quatre tests de normalité :

PROC UNIVARIATE DATA=tableSAS NORMAL ;VAR variable ;RUN ;

Elodie Brunel (Université de Montpellier) Introduction à SAS 75 / 83

Page 76: Introduction à SAS · IntroductionàSAS ElodieBrunel Université de Montpellier V. 11/2016 Elodie Brunel (Université de Montpellier) Introduction à SAS 1 / 83

3.6 PROC FORMAT

On peut avoir besoin de définir des formats personnalisés. Ces types deformats sont créés et gérés par la procédure format. Par exemple, unformat permet de regrouper plusieurs modalités sous un même libellé.On distingue deux étapes : la création et gestion de formats : PROCFORMAT et l’utilisation de formats dans l’instruction de FORMAT existantdans de nombreuses PROC.Syntaxe :

PROC FORMAT <options> ;VALUE nom_de_formatliste_de_valeurs="valeur1 formatée"liste_de_valeurs="valeurn formatée";RUN;

Elodie Brunel (Université de Montpellier) Introduction à SAS 76 / 83

Page 77: Introduction à SAS · IntroductionàSAS ElodieBrunel Université de Montpellier V. 11/2016 Elodie Brunel (Université de Montpellier) Introduction à SAS 1 / 83

Exemple :

On crée un format regim pour les valeurs de la variable caractère demo :cela permet de regrouper sous le même libellé Democratie les valeursstable et instable :

proc format;value $ regim’stable’,’instable’=’Democratie’’dictature’=’Dictature’;run;

Elodie Brunel (Université de Montpellier) Introduction à SAS 77 / 83

Page 78: Introduction à SAS · IntroductionàSAS ElodieBrunel Université de Montpellier V. 11/2016 Elodie Brunel (Université de Montpellier) Introduction à SAS 1 / 83

3.7 PROC TTEST

La procédure TTEST réalise des tests d’égalité de la variance et de lamoyenne de deux échantillons.Remarque : On peut obtenir des résultats comparables avec la procédureNPAR1WAY si l’on travaille sur de petits échantillons, en utilisant alors desstatistiques dites non-paramétriques (cf. TP2).Syntaxe :

PROC TTEST DATA=tableSAS ;VAR variable(s)Numérique(s) ;CLASS variableDeClasse ;RUN ;

L’instruction VAR contient les variables dont les moyennes serontcomparées. L’instruction CLASS permet de spécifier une variable dont lesvaleurs constituent les groupes d’observations à comparer. Cette variablene doit avoir que deux valeurs.

Elodie Brunel (Université de Montpellier) Introduction à SAS 78 / 83

Page 79: Introduction à SAS · IntroductionàSAS ElodieBrunel Université de Montpellier V. 11/2016 Elodie Brunel (Université de Montpellier) Introduction à SAS 1 / 83

Exemple :

on veut tester la différence des PIB moyens (Gnpr) entre démocraties etdictatures : on utilise la PROC FORMAT qui permet de définir un LibelléDemocratie et Dictature, ils constituent les deux groupes d’observationsà comparer.

PROC FORMAT;VALUE $ regim’stable’,’instable’=’Democratie’’dictature’=’Dictature’;RUN;

PROC TTEST DATA=russet;VAR gnpr;CLASS demo;FORMAT demo $regim.;RUN;

Elodie Brunel (Université de Montpellier) Introduction à SAS 79 / 83

Page 80: Introduction à SAS · IntroductionàSAS ElodieBrunel Université de Montpellier V. 11/2016 Elodie Brunel (Université de Montpellier) Introduction à SAS 1 / 83

Exemple :On obtient plusieurs tableaux et des graphiques en sortie de laPROC TTEST :

Elodie Brunel (Université de Montpellier) Introduction à SAS 80 / 83

Page 81: Introduction à SAS · IntroductionàSAS ElodieBrunel Université de Montpellier V. 11/2016 Elodie Brunel (Université de Montpellier) Introduction à SAS 1 / 83

Exemple :On obtient des tableaux et des graphiques en sortie de la PROC TTEST :

Elodie Brunel (Université de Montpellier) Introduction à SAS 81 / 83

Page 82: Introduction à SAS · IntroductionàSAS ElodieBrunel Université de Montpellier V. 11/2016 Elodie Brunel (Université de Montpellier) Introduction à SAS 1 / 83

Exemple :

On obtient des tableaux et des graphiques en sortie de la PROC TTEST :

Elodie Brunel (Université de Montpellier) Introduction à SAS 82 / 83

Page 83: Introduction à SAS · IntroductionàSAS ElodieBrunel Université de Montpellier V. 11/2016 Elodie Brunel (Université de Montpellier) Introduction à SAS 1 / 83

Plan

1 Chapitre 1 : Introduction

2 Chapitre 2 : Gestion des Données

3 Chapitre 3 : Procédures Statistiques

4 Chapitre 4 : Les macros

Elodie Brunel (Université de Montpellier) Introduction à SAS 83 / 83