1 Université Pierre et Marie Curie, Paris 6 Master 2 de Statistique Année 2014-2015 T.P. 1 Initiation à SAS L'ensemble des Travaux pratiques de SAS proposés relatifs à ce cours sont disponibles à l'url : http://perso.lcpc.fr/guillaume.saint-pierre/master2.html 1 Mise en route et présentation de SAS à l'utes Pour accéder à SAS Windows depuis une machine de L'UTES : 1. Entrez votre login (normalement c'est le numéro de votre carte d'étudiant) puis votre mot de passe (celui attribué au moment de l'inscription administrative). Cette procédure est aussi valable pour ceux dont l'inscription n'est pas nalisée (inscription via internet) ; 2. Pour lancer SAS, cliquer sur le menu général, choisir l'onglet " Sciences ", puis " Mathématiques ", et cliquer sur SAS (serveur 1 ou 2) ; 3. Une fenêtre de connexion au serveur hébergeant SAS apparaît alors. Vous devez à nouveau taper votre mot de passe pour accéder à la ligne de commande. Si vous souhaitez accéder à SAS autrement que quand pendant les TP : Solution 1 : Venir dans les salles libre service de Lutes. Solution 2 : La salle info 16/26-401 dans l'ufr de maths permet de pratiquer SAS. Vous pouvez accéder à cette salle avec votre clé, en dehors des créneaux horaires réservés pour d'autres cours. Planning en ligne de cette salle : http ://salles.math.upmc.fr/week.php?year=2014&month=9&day=22&&room=14 Solution 3 : "Licence gratuite à domicile" pour installer Sas sur une machine personnelle (pour Windows) Remplir le formulaire http ://www.sas.com/oces/europe/france/academic/licencegratuite-sas-domicile.html, le signer et me le rapporter. Indiquer SAS base et SAS stat pour les modules étudiés. télécharger le logiciel depuis la plateforme : https ://lad.education-recherche.fr/liste_des_ores Je n'ai pas essayé cette année, les années précédentes la procédure passait par le téléchargement d'un volume important de chiers (et cela prenait du temps). Solution 4 : "SAS Studio en ligne" : accéder au SAS webeditor : https ://odamid.oda.sas.com/saslogon/login?service=https%3a%2f%2fodamid.oda.sas.com %2FSASODAControlCenter%2Fj_spring_cas_security_check créer un compte à votre nom (accepter la licence) accéder à Sas Studio après connexion via le SAS webeditor
2 2 Introduction au logiciel SAS 2.1 Généralités sur le logiciel SAS Le logiciel SAS est de conception américaine : il est développé et commercialisé par la société SAS-Institute, située à Cary, en Caroline du nord. À l'origine, SAS (Statistical Analysis System) est un logiciel de statistique polyvalent, c'est-à-dire susceptible de traiter pratiquement tous les domaines de la statistique. Il est assez ancien (ses débuts remontent aux années 1960) et est constamment enrichi de nouvelles méthodes. Par suite, il est très volumineux et souvent redondant : le même problème statistique peut être traité par différents modules du logiciel (avec souvent des présentations diérentes!). SAS est écrit en langage C. Aujourd'hui, SAS est devenu un véritable système de gestion de l'information plutôt qu'un simple logiciel de statistique. Il constitue un logiciel privilégié pour la gestion de grandes bases de données. Le logiciel SAS est très répandu et a acquis une situation dominante dans beaucoup de secteurs d'activités. Par exemple, SAS est le logiciel de référence dans l'industrie pharmaceutique pour l'étude des essais cliniques (étape préalable à la mise sur le marché de nouveaux médicaments). En France, il est largement utilisé par l'insee, ELF, EDF et depuis peu par les banques, les compagnies d'assurance et la CAF. SAS constitue donc une source d'embauche non négligeable pour les statisticiens. La documentation SAS est exceptionnellement vaste : plusieurs centaines de volumes, certains dépassant les 1 000 pages... Celle-ci n'existe qu'en anglais (on peut imaginer le coût d'une traduction...). Toutefois, des cours polycopiés synthétiques existent en français. Les 6 volumes les plus utiles de la documentation, pour un utilisateur de base de SAS, sont les suivants : SAS language : ce volume donne une description générale du logiciel, ainsi que des informations sur les commandes SAS, les sous-programmes standards, le principe général des macros... SAS procedures guide : donne une notice détaillée sur toutes les procédures statistiques de base contenues dans SAS ; SAS/STAT user's guide, volumes 1 & 2 : donnent également une notice détaillée sur les procédures statistiques plus avancées ; SAS/GRAPH software, volumes 1 & 2 : précisent la façon d'écrire des procédures SAS pour obtenir des graphiques élaborés. En cas de besoin, les étudiants peuvent demander aux enseignants de consulter cette documentation. Toutefois, la documentation la plus accessible dans le cadre de ces T.P. est le cours polycopié suivant SAS sous UNIX : Logiciel Hermétique pour Système Ouvert, corédigé par J.M. Azaïs, P. Besse, H. Cardot, V. Couallier et A. Croquette (Laboratoire de Statistique et Probabilités, Université Paul Sabatier, Toulouse). Les étudiants sont vivement encouragés à consulter ce document disponible à l'url : http://www.math.univ-toulouse.fr/ besse/enseignement.html. Signalons également, trois ouvrages (en anglais) qui présentent à des niveaux diérents l'usage du logiciel SAS dans le traitement statistique de données. How SAS works de P.A. Herzberg, Springer, 1990 (pour un niveau élémentaire). Applied statistics and the SAS programming language de R.P. Cody et J.K Smith,
3 third edition, Prentice Hall, 1991 (pour un niveau plus avancé). A handbook of statistical analyses using SAS, de B.S ; Everitt et G.Der, Chapman and Hall, 1996 (également pour un niveau plus avancé). 2.2 Premiers pas avec SAS Pour lancer le logiciel SAS, utilisez de préférence les icônes disponibles accessibles via le menu général (choisir l'onglet " Sciences ", puis " Mathématiques ", et cliquer sur SAS (serveur 1 ou 2)). Une fois connecté à SAS, plusieurs fenêtres s'ouvrent à l'écran. Les trois fenêtres essentielles sont : SAS : Program Editor : c'est l'éditeur de texte de SAS, qui contient les instructions SAS à exécuter. Grâce aux menus de cette fenêtre, vous pouvez sauvegarder, ouvrir, exécuter (ou rappeler...) un programme. SAS : Log : après l'exécution d'un programme, cette fenêtre contient la liste des instructions exécutées avec les erreurs éventuellement rencontrées. Il est indispensable de consulter cette fenêtre avant de lire les résultats d'un programme. SAS : Output : cette fenêtre contient tous les résultats des instructions exécutées par SAS : tests, tables de valeurs... Elle ne doit être consultée qu'après avoir vérié le contenu de la fenêtre LOG. Il est possible de sauvegarder le contenu de cette fenêtre sous diérents formats. Ces 3 fenêtres possèdent sensiblement les mêmes "menus déroulants" sur leur partie haute. Il est vivement conseillé de les disposer de façon commode à l'écran. On quitte SAS en se plaçant dans la fenêtre SAS : Program Editor et en utilisant le menu déroulant File/Exit. Il existe trois façons de faire du traitement de données interactif avec SAS, que nous indiquons ci-dessous. Programmation SAS. Cela consiste à écrire un programme SAS et à lancer son exécution par le menu déroulant Run/Submit. C'est essentiellement de cette façon que nous procéderons dans le cadre de ces T.P. Un programme SAS est une succession d'instructions, chacune réalisant un traitement statistique homogène ou un graphique. SAS/ASSIST (menu déroulant Solutions/ASSIST). Permet de faire des traitements (limités) sans écrire de programme SAS, de façon supervisée. C'est surtout commode pour les débutants et les non statisticiens. Toutefois ce mode ne permet pas de faire un traitement automatisé et répétitif de grandes bases de données. SAS/INSIGHT (menu déroulant Solutions/Analysis/Interactive Data Analysis). Permet un traitement interactif immédiat et puissant des données ; de nombreuses méthodes sont disponibles et on peut réaliser des graphiques très élaborés. 2.3 Modules SAS Environ 40 modules (payants) tendent à compléter les fonctionnalités du logiciel parmi lesquels : SAS/BASE (instructions pour la manipulation de données, les statistiques descriptives élémentaires, l'édition de rapports et la programmation dans les langages SAS de
4 base, SQL et macro), SAS/STAT (procédures de modélisation, de classication et de statistiques descriptives), SAS/GRAPH (édition de graphiques haute résolution), SAS/INSIGHT (analyse statistique interactive), SAS/IML (Interactive Matrix Language), SAS/SQL (Structured Querry Language), SAS/ETS (Econometrics and Time Series : étude des séries chronologiques), SAS/AF (Application Facility : création d'interfaces), SAS/OR (recherche opérationnelle), SAS/FSP (Full Screen Products), SAS/ASSIST (interface clique-bouton pour créer des programmes SAS) 2.4 Mon premier programme SAS Sur votre compte, créer un répertoire SAS dans lequel vous archiverez vos programmes SAS, résultats, jeu de données... (vous pouvez également créer des sous-répertoires, par exemple un par TP). La fenêtre Program Editor ne constitue pas un éditeur de texte très convivial. Il est préférable de se servir d'un autre éditeur de texte (e.g. kwrite) pour écrire un programme, puis d'utiliser la souris et le copier/coller pour exécuter celui-ci dans la fenêtre Program Editor de SAS. Connectez vous à la page web de votre enseignant et copiez le chier ~tp1.sas sur votre compte dans le dossier SAS. Par convention, le nom d'un chier contenant un programme SAS se termine par.sas. Editer ce chier à l'aide de kwrite ou d'un autre éditeur de votre choix. Un programme SAS est un enchaînement d'étapes de gestion des données (étapes DATA) et d'appels à des procédures de traitement de données (étapes PROC). Les traitements à réaliser sont dénis à partir d'options par défaut ou explicitement dénies par le programmeur. Toute chaîne de caractère texte comprise entre /* texte */ est un commentaire qui n'est pas pris en compte dans l'exécution du programme. Les diérentes étapes de gestion des données et procédures communiquent entre elles à l'aide de Tables SAS. Une table SAS est un chier de données dans un format spécique qui peut être géré par SAS, et que nous décrirons plus précisément au fur et à mesure de ces TP. Étudier le contenu du chier tp1.sas. Il se compose d'une seule étape DATA suivi d'un appel à la procédure Means. Noter que toutes les instructions SAS se terminent par un point virgule, et que les étapes DATA et PROC se terminent par l'instruction run. L'étape DATA de ce programme génère une table SAS nommée tailpoid qui contient deux variables taille et poids pour lesquelles on dispose de 8 observations. La procédure Means permet de calculer les statistiques suivantes pour ces deux variables : n Nbre obs nmiss Nbre obs manquantes min Le minimum max Le maximum range Etendue Min-Max mean La moyenne var La variance std L'écart-type En utilisant le copier/coller et la souris, exécuter l'étape DATA dans la fenêtre Program Editor de SAS. Consulter la fenêtre Log. Faire de même pour l'étape PROC. Consulter les fenêtres Log et Output. Les instructions title et footnote permettent de placer du texte en haut et en bas des pages de sortie. Ceci permet par exemple une meilleure mise en page des sorties SAS sur une imprimante. Sauvegarder le résultat de la procédure Means dans un chier texte.
5 Par défaut, les tables SAS sont crées dans la librairie WORK. Une librairie correspond à un répertoire Unix qui contient des tables SAS. Pour consulter l'ensemble des tables crées lors d'une session SAS, aller dans la fenêtre Explorer où sont listées l'ensemble des librairies. Double-cliquer sur la table tailpoid. A l'aide de SAS Explorer, vous pouvez directement consulter et modier les paramètres et les observations d'une table. La librairie WORK est une librairie temporaire, son contenu est eacé lorsque la session SAS se termine. Nous verrons dans la suite des TP comment créer de nouvelles librairies et comment manipuler des tables SAS. Eacer le contenu de la fenêtre Output. Ouvrir la table tailpoid à partir de SAS Explorer. Dans le menu Solutions choisir ASSIST. Cliquer sur Continue puis sur l'icône Data Analysis. Choisir Elementary puis Summary Statistics. Paramétrer convenablement les options disponibles dans la fenêtre SAS ASSIST pour retrouver les statistiques élémentaires obtenues avec la procédure Means pour la table tailpoid. 2.5 Quelques commandes pour modier une Table SAS dans une étape DATA Exécutez le programme suivant : data exemple; input nom $ naiss CSP $ auto $ sin98 sin99; cards ; Pierre 65 lib golf 0 10 Paul 48 arti 306 0 0 Jacques 61 cadre 205 51 0 Carole 70 lib AX 27 0 Caroline 65 cadre golf 0 0 Nathalie 62 cadsup 306 0 5 ; run; L'instruction CARDS signale le début de la saisie des observations (une seule observation par ligne). Les données sont alors séparées par des espaces, une valeur manquante étant représentée par un point. Notons que, dans la liste des variables, le séparateur est encore un blanc. Enn, l'instruction RUN (facultative) termine l'étape DATA. Variables SAS : Le nom des variables nominales est toujours suivi du symbole " $ ". Les variables numériques peuvent être qualitatives (par ex. dichotomiques / binaires ou catégorielles) ou quantitatives (discrètes ou continues). Le nom d'une variable comporte au plus 8 caractères, commence par une lettre " A-Z " ou " _ " (underscore) et ne doit pas contenir d'espace(s) ou de symboles spéciaux tels que " & ", " % ", " $ ", " # ", etc. Attention, les lignes de commande destinées à modier un tableau de données SAS doivent être incluse dans une étape data de la façon suivante, an de permettre la modication des données (vous ne pouvez pas modier un jeu de données s'il est ouvert par vous dans une fenêtre viewtable) :
6 data exemple; set exemple; IF nom = 'Jacques' THEN naiss = 50; /*modication d'une valeur*/ instructions supplémentaires ; run; IF nom = 'Jacques' THEN naiss = 50; modication d'une valeur RENAME naiss = naissance; changer le nom d'une variable KEEP nom sin98 sin99; enlever des variables ; INPUT varsup; cards; ; ajouter une variable supplémentaire sintotal = sin98 + sin99; ajouter une variable fonction des précédentes if sin98 = 0 then DELETE; enlever des observations SET TAB1; SET TAB2; MERGE TAB1 TAB2; fusionner 2 tables contenant des variables diérentes et des individus identiques SAS reconnaît les fonctions mathématiques et statistiques suivantes : ABS, ARCOS, ARSIN, ATAN, COS, COSH, SIN, SINH, EXP, LOG (népérien), MIN, MAX, RANGE, SQRT, N (nb de valeurs disponibles), NMISS (nb de valeurs manquantes), SUM, TAN, TANH, MEAN, VAR, STD, etc. Attention! Avant de concaténer 2 tables, les lignes doivent être triées dans le même ordre (avec la PROC SORT et l'instruction BY). 2.6 Exercice 1. Executez le code précédent an de disposer de la table "exemple" dans votre librairie de travail. 2. Ces tables contiennent les résultats du championnat 2007/08 de football de seconde division. Les variables indiquent respectivement pour chaque club : le nom club, le nombre total de victoires vic, de matchs nuls nul et de défaites def, le nombre total de buts marqués bp et encaissés bc. 3. Dans un premier temps, avec la commande INFILE, importer ces données sous SAS dans une table tab1 à partir des deux types de chiers sources. Donner un titre à cette table (avec l'instruction TITLE). 4. Créer ensuite une table clt contenant sur une colonne et par ordre croissant tous les entiers compris de 1 à 20. Acher les tables tab1 et clt. 5. À partir de la table tab1, créer une table tab2 qui comptera 2 variables supplémentaires : pts, le nombre total de points obtenus par une équipe sachant qu'une victoire rapporte 3 points et un match nul 1 point ; di, la diérence entre les nombres de buts marqués et encaissés. Acher la table tab2. 6. À partir de la table tab2, créer une table tab3 qui reprend les données de tab2 triées par ordre décroissant de points pts puis par ordre décroissant de diérence de buts di. Acher la table tab3. 7. Enn, dans une table champ, fusionner les tables clt et tab3 et ajouter une variable result qui vaut " + " si l'équipe est classée dans les trois premières places, " - " si elle est classée dans les trois dernières places ou " = " sinon. Acher la table champ puis eacer les tables tab1, tab2, tab3 et clt.