Les dictionnaires sont des tableaux associatifs dans lesquels chaque clés est reliée à une valeur.
Un dictionnaire se crée avec des accolades.
dico = {} # Création d'une dictionnaire vide
dico = {'clé1' : 'valeur1', 'clé2' : 'valeur1', 'clé3' : 'valeur3'} # Création d'une dictionnaire avec 3 valeurs
Pour ajouter une valeur dans un dictionnaire, il faut indiquer une clé entre crochets.
mon_dico[clé] = valeur # Ajout de valeur à la "position" clé
Si on ajoute une valeur à une clé existante, cela remplacera l'ancienne valeur par la nouvelle.
À savoir : si on boucle sur un dictionnaire, Python nous renverra les clés :
for element in dico:
print(element) # Affiche clé1 puis clé2 puis clé3
Les dictionnaires sont des tableaux associatifs dans lesquels chaque clés est reliée à une valeur.
Un dictionnaire se crée avec des accolades.
dico = {} # Création d'une dictionnaire vide
dico = {'clé1' : 'valeur1', 'clé2' : 'valeur1', 'clé3' : 'valeur3'} # Création d'une dictionnaire avec 3 valeurs
Pour ajouter une valeur dans un dictionnaire, il faut indiquer une clé entre crochets.
mon_dico[clé] = valeur # Ajout de valeur à la "position" clé
Si on ajoute une valeur à une clé existante, cela remplacera l'ancienne valeur par la nouvelle.
À savoir : si on boucle sur un dictionnaire, Python nous renverra les clés :
for element in dico:
print(element) # Affiche clé1 puis clé2 puis clé3
REPORTING
Pour faire du reporting (présentation des résultat d’une analyse statistique) il faut être synthétique et sélectionner les informations pertinentes.
Sous SAS, le reporting se fait avec le système ODS (Output Delivery System). C’est un système qui organise la mise en forme et la diffusion des sortie SAS. Il permet de récupérer les sorties (tables, graphiques, tableaux, etc) de SAS.
La plupart du temps, il y a une balise ODS d’ouverture et une balise ODS de fermeture. On écrit nos procédures (PROC) entre ces deux balises ODS.
Avec les balises ODS, on peut préciser une destination (format d’enregistrement de la sortie). On distingue deux types de balises de destination :
- Balises créant des objet interne à SAS, comme une table par exemple (ODS OUTPUT).
ODS OUTPUT Nom_Objet_ODS=Nom_Table;
Procédure PROC;
... ;
RUN;
ODS OUTPUT CLOSE;
Exemple :
ODS OUTPUT MesQuantiles=Table1; /* SAS va créer une table nommé Table1 dans laquelle il va enregistrer l’objet ODS nommé MesQuantiles. */
Procédure PROC;
... ;
RUN;
ODS OUTPUT CLOSE;
- Balises créant des fichiers externes à SAS (ODS PDF, ODS HTML, ODS RTF (document Word), etc). À savoir qu'il existe de nombreuses options. Cependant, je ne les présenterai pas ici.
ODS destination FILE="chemin-vers-fichier-à-créer/nom-fichier.extension";
Procédure PROC;
... ;
RUN;
ODS destination CLOSE;
Exemple :
ODS HTML FILE="/folders/myfolders/Programmation Statistique/TP8/sortie.html"; /* SAS va créer un fichier html dans le dossier TP8 dans lequel il va enregistrer les sorties de la procédure PROC. */
Procédure PROC;
... ;
RUN;
ODS HTML CLOSE;
Quand on exécute une procédure, cela génère plusieurs objets ODS. Il est possible d’inclure ou d’exclure des objets ODS avec les instructions SELECT et EXCLUDE.
ODS RTF FILE="/folders/myfolders/Programmation Statistique/TP8/sortie.rtf";
ODS EXCLUDE Objet1 Objet2 ; /* Sauvegarde dans un fichier Word tous les objets ODS de la procédure sauf les objets nommés Objet1 et Objet2. */
Procédure PROC;
... ;
RUN;
ODS RTF CLOSE;
Enfin, pour lister tous les objets ODS d’une procédure, on faut encadrer votre procédure des balises ODS TRACE ON et ODS TRACE OFF.
ODS TRACE ON;
Procédure PROC;
... ;
RUN;
ODS TRACE OFF;
Je vous ai présenté les balises ODS, maintenant il va voir les procédures à mettre entre les balises ODS. On distingue plusieurs procédures PROC comme MEANS, UNIVARIATE, FREQ, REPORT, TABULATE, PRINT ou bien SGPLOT.
Pour réaliser une analyse descriptive, on utilise la procédure PROC MEANS ou PROC UNIVARIATE (plus d'options) pour avoir un tableau de statistiques pour les variables quantitatives, et la procédure PROC FREQ pour avoir un tableau de statistiques pour les variables qualitatives.
Exemple pour PROC MEANS / PROC UNIVARIATE :
PROC MEANS DATA=Table1; /* Statistiques quantitatives des salaires en fonction de l'âge */
CLASS age;
VAR salaire;
RUN;
Exemple pour PROC FREQ :
PROC FREQ DATA=Table1; /* Statistiques qualitatives de l'âge */
TABLE age;
RUN;
Si vous voulez avoir plus d’information sur les options de ces deux procédures, vous pouvez allez voir la fiche sur les procédures usuelles de SAS.
La procédure PRINT permet de visualiser le contenu de tables SAS. La structure est la suivante.
PROC PRINT DATA=Table1;
Options ...;
RUN;
Il y a des dizaines d'options pour cette procédure. Si vous voulez avoir la liste de toutes ces options, vous pouvez sur l'aider de SAS.
La procédure PROC TABULATE permet de créer des tableaux personnalisés de résultats. Il y a trois principales instructions :
- CLASS : pour indiquer les variables qualitatives du tableau.
- VAR : pour indiquer les variables quantitatives du tableau.
- TABLE : pour définir la structure du tableau.
L’instruction TABLE a des règles de ponctuations importantes qu’il faut connaître :
- Virgule : pour séparer les variables que l’on veut représenter en ligne (à gauche de la virgule) et les variables que l’on veut représenter en colonnes (à droite de la virgule).
- Espace : pour juxtaposer (mettre côte à côte) en lignes ou en colonnes des variables.
- Astérisque : pour imbriquer / croiser en lignes ou en colonnes des variables.
- Parenthèses : pour regrouper et renommer les statistiques que l’on veut faire apparaître dans le tableau.
Exemple :
PROC TABULATE DATA=Table1;
CLASS var1_qualitative var2_qualitative;
VAR var1_quantitative ;
TABLE var1_qualitative, var2_qualitative * var1_quantitative * (N="Effectifs" MEAN="Moyenne" STD="Ecart-type");
RUN;
Avec l'option ALL dans l'instruction TABLE, on calcule le total des lignes ou des colonnes.
TABLE (var1_qualitative ALL="Total) * (N="Effectifs" MEAN="Moyenne" STD="Ecart-type"), (var2_qualitative ALL="Total);
La procédure PROC REPORT permet de créer des tableaux plus détaillés que ceux des procédures précédentes (PROC PRINT et PROC TABULATE).
PROC REPORT a deux paramètres importants : COLUMNS et DEFINE.
PROC REPORT DATA=Table1 NOWD; /* On utilise les données de la table nommée Table1. */
COLUMNS var1 var2 var3; /* On précise les variables que l’on veut utiliser */
DEFINE var1 / ORDER; /* ORDER : range la variable var1 par ordre alphabétique */
RUN;
Donc avec la commande COLUMNS, on précise les variables à traiter qui apparaître dans le tableau.
Avec la commande DEFINE, on modifie l'apparence et le contenu des colonnes du tableau.
Exemple :
PROC REPORT DATA=Voitures NOWD;
COLUMNS type (conso_auto conso_ville poids),(MEAN STD Q1 Q3); /* Calcule la moyenne, l'écart-type, le 1er quartile et le 3ème quartile pour les 3 variables en fonction de la variable type. */
DEFINE type / GROUP; /* Regroupe les données par rapport à la variable type. */
DEFINE MEAN / "Moyenne" FORMAT=7.1; /* Renomme la moyenne et précise que l'on veut maximum 7 chiffres avant virgules et 1 après */
DEFINE STD / "Ecart-type" FORMAT=10.2; /* Renomme l'écart-type et précise que l'on veut maximum 10 chiffres avant virgules et 2 après */
RUN;