Cours 5 - Procedures SAS
Transcription
Cours 5 - Procedures SAS
STT1682 – Progiciels en Statistique et Actuariat Cours 5 – Procédures SAS Procédures Une procédure est un traitement SAS affecttant une base de donnée dans son ensemble. Ce sera avec des procédures qu'on va sommariser,trier,analyses... des bases SAS. Elles seront généralement utilisés à la suite d'étapes DATA. PROC SUMMARY La procédure PROC SUMMARY est une des procédures les plus pratique en programmation SAS. À l'aide d'un PROC SUMMARY, on peut sommariser une base de donnée SAS par rapport aux variables qu'on désire. Elle peut aussi être utilisé pour extraire d'autres statististiques descriptives autre que la somme. Syntaxe : PROC SUMMARY DATA=BASEENTRANTE OPTIONS; CLASS VAR1 VAR2...;*Facultatif si on veut aucun bris; VAR VAR1 VAR2...;*Facultatif si on veut aucune statistiques descriptives; OUTPUT OUT=BASESORTANTE STAT_DESC1(VAR1 VAR2...)= STAT_DESC2(VAR1 VAR2...)=; RUN; Le PROC SUMMARY ci-dessus va calculer les variables statististiques STAT_DESC... pour chacune des variables spécifiés dans la ligne VAR selon le bris de variable spécifiés dans CLASS. La base résultante contenant les statistiques souhaités sera BASESORTANTE. Options utiles - NWAY : Calcule les statistiques descriptives selon seulement le bris le plus fin spécifié dans CLASS (IMPORTANT) - MISSING : Traite les valeurs "missing" comme des 0 - Tout autre options appris précédement (WHERE,KEEP...) peuvent êtres appliqués à la BASEENTRANTE/BASESORTANTE à l'aide de parenthèses. Statistiques Descriptives (STAT_DESC) - SUM : Sommarise chaque variable spécifiées dans la ligne VAR séparément - MIN : Calcule le minimum de chaque variable spécifiées dans la ligne VAR séparément - MAX : Calcule le maximum...(idem) - MEAN : Calcule la moyenne...(idem) - N : Calcule le nombre...(idem) - MEDIAN : Calcule la médiane...(idem) - STD : Calcule l'écart type...(idem) ... Note: Plus d'une statistique descriptive peuvent être calculé à l'aide d'un seul PROC SUMMARY David Langlois – notes STT1682 1 PROC SORT La procédure PROC SORT sert à trier une base de donnée selon un bris de variables spécifiés. Syntaxe : PROC SORT DATA= BASEENTRANTE OPTIONS OUT=BASESORTANTE; BY VAR1 VAR2...; RUN; Le PROC SORT ci-dessus va trier la BASEENTRANTE selon les variables VAR1 VAR... L'ordre des variables est important, car il spécifie quel trie sera priorisé. La base résultante sera BASESORTANTE. Note: Si on veut trier une variable de façon décroissante, on doit spécifier DESCENDING précédent la variable Options utiles - NODUPKEY: Élimine les observations "dupliqués" une foit triée - Tout autre options appris précédement (WHERE,KEEP...) peuvent êtres appliqués à la BASEENTRANTE/BASESORTANTE à l'aide de parenthèses. Lire une base triée Si on veut effectuer du traitement de donné sur une base de donnée utilisant le fait qu'elle est triéfois une base de donnée trié, il faut spécifié à SAS que la base de donnée est en effet triée à l'aide de la déclaration BY tel que démontré ci-dessous : Syntaxe : DATA BASESORTANTE; SET BASEENTRANTE_TRIE; BY VAR1 VAR...; ... RUN; Déclarations nécessitant un trie (FIRST/LAST) - FIRST.VAR1 retourne VRAI seulement si la valeur de VAR1 est la première de son bris - LASTVAR1 retourne VRAI seulement si la valeur de VAR1 est la première de son bris Exemple : DATA BASE2; SET BASE1_TRIE; BY POLICE RISQUE; IF FIRST.RISQUE THEN OUTPUT; RUN; L'exemple ci-dessus va sortir toutes les combinaisons différentes de POLICE/RISQUE. À noter qu'on peut obtenir le même résultat avec un PROC SUMMARY, mais de façon beaucoup plus rapide. David Langlois – notes STT1682 2 PROC FREQ La procédure PROC FREQ sert à sortir la distribution des valeurs d'une variable ou d'un croisement de variable. Très utile pour bien comprendre le contenu d'une base de donnée SAS. Syntaxe #1 (pour sortir la distribution de variables une à la fois): PROC FREQ DATA=BASEENTRANTE; TABLES VAR1 VAR2...; RUN; Syntaxe #2(pour sortir la distribution de variables croisés): PROC FREQ DATA=BASEENTRANTE; TABLES VAR1*VAR2...; RUN; PROC CONTENTS La procédure PROC CONTENT est utilisée pour sortir le contenu de la base donnée tel que le nom de chacune des variables, leur longueur, leur format... Syntaxe : PROC CONTENTS DATA=BASEENTRANTE; RUN; PROC RANK La procédure PROC RANK sert à calculer le rang des valeurs d'une variable selon une division spécifiée (quintile, quartile, percentile...). Syntaxe : PROC RANK DATA=BASEENTRANTE GROUPS=X OUT=BASESORTANTE; BY VAR1 VAR2...; *Si on veut des sous=categories, necessite que le base soit trie; VAR VAR1 VAR2...; *Variables qu on veut le rang; RUN; Note: L'option GROUP spécifie quelle division on veut (5,20,100 groupes...) Exemple : PROC RANK DATA=BASE1 GROUPS=100 OUT=BASE2; VAR PRIME; RUN; L'exemple ci-dessus va calculer le percentile de chaque valeur de la variable PRIME, les résultats seront mis dans BASE2. David Langlois – notes STT1682 3