logo

SAS expliqué à ma fille

La procédure SGPLOT, sa vie, son œuvre

A partir de SAS 9.2, la procédure SGPLOT (et ses sœurs SGPANEL et SGSCATTER) vient proposer une autre manière de créer des graphiques depuis SAS. Cette présentation ne suppose aucune connaissance du fonctionnement « historique » de SAS/GRAPH. Quelqu’un qui n’a jamais utilisé une procédure GPLOT ou GCHART peut tout à fait comprendre la logique de SGPLOT, aussi bien qu’un familier de ces procédures (qui sera peut-être même dérouté par sa simplicité). En SAS 9.3, les procédures SG… sont directement rattachées au […]

Les tables des matières expliquées à ma fille

Vos plus beaux documents produits via l’ODS (PDF, RTF, HTML, Excel) méritent, s’ils sont complexes, d’avoir une aide à la navigation. Ce document fait un tour d’horizon des possibilités, avec leurs pièges et leurs options, tout d’abord pour chacune des « destinations » de l’ODS, puis avec la procédure DOCUMENT et sa faculté de réorganiser les sorties, ainsi que leur arborescence, et donc de créer une table des matières totalement sur mesure. Les exemples proposés dans ce document ont été construits avec […]

La proc GREPLAY expliquée à ma fille

La procédure GREPLAY permet d’associer plusieurs graphiques en un seul, en jouant sur leurs emplacements et leur distribution. Elle utilise des mises en forme prédéfinies, les templates. Voici une petite introduction à son fonctionnement. Étape n° 1 : générer des graphiques et les sauvegarder Les graphiques SAS sont stockés dans des catalogues, sous formes d’entrées de type GRSEG. Pour choisir le nom et l’emplacement de ces sauvegardes, il faut ajouter aux procédures graphiques deux options : GOUT qui est le nom du […]

L’export de SAS vers Excel expliqué à ma fille

SAS est un logiciel merveilleux, mais tous n’y ont pas accès. Pour contenter la soif de données de vos collègues qui n’auraient pas d’autre outil à disposition, vous envisagez d’envoyer vos données SAS dans une feuille Excel. Et là, le drame se noue : comment vous y prendre ? Nous passons en revue 6 méthodes qui nécessitent des installations, des manipulations et des licences différentes : il y en aura forcément une qui vous conviendra. L’export en fichier plat La procédure Export permet […]

Le hash expliqué à ma fille

Ma fille vient me trouver pour m’expliquer qu’elle se met au hash. Elle a lu je ne sais où que c’était excellent, « surtout pour les joints ». Je n’avais que deux bémols avant d’acquiescer : d’abord qu’il ne faut pas en abuser, et qu’ensuite on ne dit pas joints mais jointures, en bon français. C’est donc à une nouvelle manière de rédiger des jointures via l’étape DATA que le hash (également appelé hash object ou table de hachage) nous donne accès. La […]

La proc TRANSPOSE expliquée à ma fille

De nombreux cas de figure dans SAS nécessitent de réorganiser les données de manière à changer ce que représente une observation dans une table. Des pivots (en général partiels) dans les données sont alors à envisager ; la procédure TRANSPOSE est l’outil privilégié pour les pivots. C’est quoi un pivot ? L’exemple ci-dessous illustre un pivot partiel de la variable Y selon la variable IDENT. La variable X, elle, est perdue. A l’intérieur de chaque bloc de IDENT dans la table d’origine, […]

La proc GCHART expliquée à ma fille

Produire des diagrammes en bâtons ne semble pas une tâche ardue. Les options disponibles dans la procédure GCHART de SAS ne sont d’ailleurs pas si nombreuses. Mais pour obtenir quelques graphiques complexes, il vaut souvent mieux réfléchir à l’organisation de la table SAS en entrée, que chercher une option qui n’existe peut-être pas. Quelques exemples pour illustrer cette manière de penser (pour agrandir les images, cliquer dessus). La syntaxe de base : bâtons, groupes et sous-groupes La procédure GCHART définit 4 […]

Les dates SAS expliquées à ma fille

Éternel sujet de questionnements, les dates SAS ont un fonctionnement qui a tout pour surprendre. Petite série d’explications avant qu’il vous prenne l’envie de passer toutes vos dates au goudron et aux plumes. Comment sont stockées les dates SAS ? Il existe deux types de variables qui contiennent des dates dans SAS : toutes deux sont de type numérique. On distingue les simples dates et les « datetimes ». Les simples dates sont stockées comme des nombres de jours depuis le 1er janvier 1960. […]

Les formats expliqués à ma fille

Pour certains, le format, ce n’est qu’une cochonnerie qui complique passablement le travail sur les dates, ou sur les nombres, en n’affichant pas les données telles qu’elles sont stockées. On sait moins que, dans SAS, les formats sont également un formidable outil de recodage de variables. Quel est le rôle du format ? Le format est un moyen de présenter (à l’affichage principalement) les données différemment de la façon dont elles sont physiquement stockées. L’exemple le plus frappant est celui des […]

Le RETAIN expliqué à ma fille

L’intrigante instruction RETAIN devient parfois indispensable dans une étape Data. Quelques mots pour vous aider à savoir si, comme l’ami Ricoré, elle vient toujours au bon moment. Que se passe-t-il dans une étape Data ? Lors de la lecture de données dans une étape Data (que ce soit avec une instruction SET, MERGE ou INFILE), les informations qui composent les observations sont stockées de manière temporaire dans un espace appelé Vecteur de Travail (ou PDV dans les documents en anglais). Le […]

Le LAG expliqué à ma fille

La fonction LAG est souvent présentée comme un cas de sorcellerie appliquée à l’étape DATA. Elle fonctionne de manière caractérielle, un peu à son humeur, et pas toujours de manière cohérente. Pourtant, de nombreuses personnes en donnent une définition simple : « la fonction qui renvoie la valeur de l’observation précédente ». Petite enquête au pays du LAG pour savoir si elle a vraiment mauvais caractère, ou si son comportement n’est pas abusivement simplifié par la définition précédente. Que se passe-t-il dans une […]

Les picture expliqués à ma fille

Déjà qu’ils sont nombreux, ceux qui pestent contre les formats ! Mais s’ils connaissaient tous l’abominable syntaxe des picture, ces formats « calculés », quel serait leur nombre ? En même temps, ce serait l’occasion de trouver mille manipulations bien pratiques pour formater élégamment et en évitant d’inutiles étapes DATA. Un picture est un format particulier destiné à des variables de type numérique ; il peut s’appliquer à des nombres, des dates, des heures ou des datetimes. Il n’existe pas d’équivalent pour les variables de […]

Les macro-fonctions expliquées à ma fille

Beaucoup de programmeurs SAS connaissent les macro-variables, pratiques pour véhiculer de l’information (des paramètres) d’un point à un autre d’un programme. Également populaires, les macro-programmes, qui permettent d’encapsuler du code et de s’en resservir aussi souvent que nécessaire en changeant seulement quelques paramètres. Mais les macro-fonctions ? A quoi servent-elles ? Peuvent-elles m’être utiles ? Quelle différence avec une fonction SAS ? Il y en a principalement deux : une fonction SAS s’applique à la valeur d’une variable, stockée dans […]

L’ODS expliqué à ma fille

Depuis la version 7 de SAS, la syntaxe s’est enrichie d’une vaste série d’instructions ODS (Output Delivery System). Le concept associé sous-tend le fonctionnement de l’ensemble des procédures de SAS. Ce court document se veut une introduction à ce qu’est l’ODS et comment il fonctionne. Principe de l’ODS La procédure SAS n’est plus dépositaire de la mise en forme des sorties. Elle se contente de faire les calculs demandés, et transmet les éléments à mettre en forme à l’ODS. Le […]

La procédure GPLOT expliquée à ma fille

La production de graphiques depuis SAS a mauvaise presse. Pourtant sa syntaxe n’est pas si compliquée qu’on le dit, et son rendu graphique est largement acceptable, surtout si on ne joue pas au jeu des 10 erreurs avec un graphique sous Excel.   Le cœur de chauffe : la procédure elle-même   PROC GPLOT DATA = tableLue ; PLOT variableAxeVertical * variableAxeHorizontal ; RUN ; QUIT ; A la lecture de cette syntaxe : deux questions viennent souvent à l’esprit. […]

La procédure TABULATE, sa vie, son œuvre

Dotée d’une syntaxe joueuse, dont la ponctuation est un vrai casse-tête chinois, on ne peut pas dire que la procédure TABULATE génère spontanément la sympathie. Cela dit, dans tous les casses-têtes, on trouve une logique implacable – le but de ces pages est de décortiquer celle de TABULATE. Petit itinéraire de vacances au pays des tableaux sous SAS.   Les préparatifs : syntaxe de base   PROC TABULATE DATA = tableLue ; CLASS variables1 ; VAR variables2 ; TABLE … […]

L’analyse discriminante expliquée à ma fille

Principe géométrique de l’analyse discriminante linéaire   Ce qu’on cherche : Une droite (un hyperplan / une séparation linéaire) entre deux groupes d’observations. Cette droite est une combinaison linéaire des variables explicatives, toutes continues, qui décrivent les deux groupes d’observations. Comment on s’y prend : Chacun des deux groupes d’observations est « remplacé » (synthétisé) par son barycentre (point de coordonnées moyennes de toutes les variables explicatives). La séparation entre les deux populations est faite selon une droite perpendiculaire au […]

Les réseaux de neurones expliqués à ma fille

Le but de cette annexe n’est pas d’expliquer en détail toute la théorie et la pratique des réseaux de neurones, mais seulement d’en définir les principaux termes : • Neurone • Poids synaptiques • Apprentissage • Réseau de neurones • Couche cachée • Linéarité • Données d’apprentissage et de validation Principe du neurone artificiel Le neurone artificiel (neurone informatique) est un petit modèle statistique à lui tout seul. Il doit accomplir deux tâches : 1) la synthèse des informations qui […]

Les tables Annotate expliquées à ma fille

Pour améliorer un graphique SAS, il n’est forcément payant de passer des heures à éplucher la documentation pour trouver une option magique. Il est souvent plus simple de donner à SAS des instructions de dessin pour qu’il surcharge la version « brute » du graphique. Ces instructions de dessin sont consignées dans une table appelée Annotate ; pour faire des merveilles, il suffit généralement d’une étape Data et d’un peu d’organisation. Comment se présente une table Annotate ? Il s’agit […]