logo

MLR Tests (16 minutes)

MLR Tests (16 minutes)

library(ggplot2) # graphiques library(reshape2) # transpositions # library(DescTools) # mesures de liaison variables quali (Cramer, Tschuprow) library(FactoMineR) # caractérisation # V de Cramer —- cramer

MLR Graphiques (19 minutes)

library(ggplot2) # graphiques library(reshape2) # transpositions # library(DescTools) # mesures de liaison variables quali (Cramer, Tschuprow) library(FactoMineR) # caractérisation # distribution des variables quanti —- train.quanti % summarise(woe=logit(y=reponse,event= »oui »), n=n()) ggplot(woe) + aes(x=value2, y=woe) + geom_hline(yintercept=0) + geom_point(aes(size=n), alpha=0.3) + geom_smooth(method= »lm », se=FALSE, aes(weight=n)) + facet_wrap(~ variable, scales= »free »)

MLR Échantillonnage (9 minutes)

library(wrapr) # fonction qc = c + quotes library(caret) # équilibrage et échantillonnage library(skimr) # stats descriptives library(dplyr) # manipulation de données # équilibrage —- set.seed(123) conso.eq

MLR Les données (20 minutes)

library(wrapr) # fonction qc = c + quotes library(caret) # équilibrage et échantillonnage library(skimr) # stats descriptives library(dplyr) # manipulation de données # chargement des données —- load(« conso.Rdata ») conso$reponse

MLR Compréhension du problème (28 minutes)

Organisation de la leçon (valable pour toutes les pages de ce cours, sauf les exercices et les QCM) 1) Un support Powerpoint à lire (pas de son). Possibilité de le télécharger ou de le passer en plein écran (en bas à droite du diaporama). Pour faire défiler les diapos, il suffit de cliquer dessus. 2) Une vidéo (avec du son) pour expliciter le propos du support avec des explications complémentaires et des exemples. Possibilité de plein écran (en bas à […]

SASOPTIM Jointure par format (12 minutes)

DATA work.format_dispos_15_08 ; SET airbnb.calendar (RENAME=(listing_id=start) WHERE=(date= »15AUG2016″D)) ; fmtname = « DISPO_15_AOUT » ; type = « N » ; label = CATX(« @ », « Dispo », price) ; RUN ; PROC FORMAT CNTLIN=work.format_dispos_15_08 ; RUN ; DATA work.libres_quinze_aout_5 ; SET airbnb.flats (DROP=price) ; IF PUT(id, dispo_15_aout.) =: « Dispo » THEN DO ; price = INPUT(SCAN(PUT(id, dispo_15_aout.), 2, « @ »), 32.) ; OUTPUT ; END ; RUN ;

SASOPTIM Jointure par table hash (13 minutes)

DATA work.libres_quinze_aout_4 ; IF _N_=1 THEN DO ; DECLARE HASH apparts (DATASET: »airbnb.flats ») ; apparts.DEFINEKEY(« id ») ; apparts.DEFINEDATA(« accommodates », « neighbourhood_cleansed », « room_type ») ; apparts.DEFINEDONE() ; END ; IF 0 THEN SET airbnb.flats (KEEP=accommodates neighbourhood_cleansed room_type) ; SET airbnb.calendar (RENAME=(listing_id=id) WHERE=(date= »15AUG2016″D)) ; IF apparts.FIND()=0 THEN OUTPUT ; RUN ;

SASOPTIM Jointure SET SET (11 minutes)

PROC SQL ; CREATE INDEX id ON airbnb.flats ; QUIT ; DATA work.libres_quinze_aout_3 ; SET airbnb.calendar (RENAME=(listing_id=id) WHERE=(date= »15AUG2016″D)) ; SET airbnb.flats (DROP=price) KEY=id / UNIQUE ; IF _iorc_=0 THEN OUTPUT ; ELSE _error_=0 ; RUN ; PROC SQL ; DROP INDEX id FROM airbnb.flats ; QUIT ;

SASOPTIM Jointure SQL (6 minutes)

PROC SQL ; CREATE TABLE work.libres_quinze_aout_2 AS SELECT app.*, cal.price FROM airbnb.flats (DROP=price) AS app INNER JOIN airbnb.calendar AS cal ON app.id = cal.listing_id WHERE cal.date = « 15AUG2016″D ; QUIT ; PROC SQL ; CREATE TABLE work.libres_quinze_aout_2b AS SELECT app.*, cal.price FROM airbnb.flats (DROP=price) AS app INNER JOIN airbnb.calendar (WHERE=(date = « 15AUG2016″D)) AS cal ON app.id = cal.listing_id ; QUIT ;

SASOPTIM Jointure MERGE (6 minutes)

OPTIONS FULLSTIMER ; PROC SORT DATA=airbnb.calendar (WHERE=(date = « 15AUG2016″D)) OUT=work.dispos (DROP=date) ; BY listing_id ; RUN ; PROC SORT DATA=airbnb.flats (RENAME=(id = listing_id)) OUT=work.flats ; BY listing_id ; RUN ; DATA work.libres_quinze_aout_1 ; MERGE work.flats (IN=logements) work.quinze_aout (IN=libres) ; BY listing_id ; IF logements AND libres THEN OUTPUT ; RUN ;

SASOPTIM Proc MEANS ou SQL ? (11 minutes)

OPTIONS FULLSTIMER ; PROC SQL ; SELECT neighbourhood_cleansed, MEAN(price) AS prix_moyen FORMAT=12.2 , SUM(accommodates) AS capacite_totale FORMAT=NLNUM12., MEAN(price/accommodates) AS prix_par_personne_moyen FORMAT=12.2, COUNT(*) AS nb_logements FORMAT=NLNUM12., COUNT(DISTINCT host_id) AS nb_proprietaires FORMAT=NLNUM12., SUM(price < 50) AS nb_inf_50_euros FORMAT=NLNUM12., MEAN(price < 50) AS pct_inf_50_euros FORMAT=PERCENT12., SUM(price < 100) AS nb_inf_100_euros FORMAT=NLNUM12., MEAN(price < 100) AS pct_inf_100_euros FORMAT=PERCENT12. FROM airbnb.flats GROUP BY neighbourhood_cleansed ORDER BY nb_logements DESC ; QUIT ; PROC MEANS DATA=airbnb.flats MEAN Q1 MEDIAN Q3 MAXDEC=2 ; VAR price ; CLASS neighbourhood_cleansed […]

SASOPTIM Gérer les croisements de CLASS (7 minutes)

PROC MEANS DATA=airbnb.flats MEAN MEDIAN MAXDEC=2 ; VAR price ; CLASS accommodates bedrooms beds neighbourhood_cleansed room_type ; WAYS 0 1 ; RUN ; PROC SUMMARY DATA=airbnb.flats ; VAR price ; CLASS accommodates bedrooms beds neighbourhood_cleansed room_type ; WAYS 0 1 ; OUTPUT OUT=work.prix1 MEAN=moy MEDIAN=med ; RUN ; PROC SUMMARY DATA=airbnb.flats CHARTYPE ; VAR price ; CLASS accommodates bedrooms beds neighbourhood_cleansed room_type ; WAYS 0 1 ; OUTPUT OUT=work.prix2 MEAN=moy MEDIAN=med ; RUN ;

SASOPTIM BY vs CLASS (11 minutes)

OPTIONS FULLSTIMER ; /* BY + tri */ PROC SORT DATA=airbnb.calendar OUT=work.calendar ; BY listing_id ; RUN ; PROC SUMMARY DATA=work.calendar ; BY listing_id ; VAR price ; OUTPUT OUT=work.prix_moyen1 MEAN= ; RUN ; /* BY + blocs */ PROC SUMMARY DATA=airbnb.calendar ; BY listing_id NOTSORTED ; VAR price ; OUTPUT OUT=work.prix_moyen2 MEAN= ; RUN ; /* BY + index */ PROC SQL ; CREATE INDEX listing_id ON airbnb.calendar ; QUIT ; PROC SUMMARY DATA=airbnb.calendar ; BY listing_id ; VAR […]

SASOPTIM Limiter la mémoire utilisée (14 minutes)

PROC CONTENTS DATA=airbnb.lis ; RUN ; PROC TRANSPOSE DATA=airbnb.lis OUT=work.varTxt ; BY id NOTSORTED ; VAR _CHARACTER_ ; RUN ; DATA work.varTxt ; SET work.varTxt ; longueur = LENGTH(col1) ; RUN ; PROC MEANS DATA=work.varTxt MIN MAX MAXDEC=0 ; VAR longueur ; CLASS _name_ ; RUN ; DATA work.lis ; LENGTH accommodates 3 amenities $ 600 bathrooms 3 bedrooms 3 cancellation_policy $ 8 ; SET airbnb.lis ; RUN ; PROC CONTENTS DATA=work.lis ; RUN ; PROC CONTENTS DATA=airbnb.lis POSITION ; […]

SASOPTIM Limiter les données lues (16 minutes)

PROC SORT DATA=airbnb.calendar OUT=work.cal ; BY listing_id DESCENDING price ; RUN ; PROC SORT DATA=airbnb.calendar (DROP=date) OUT=work.cal ; BY listing_id DESCENDING price ; RUN ; PROC SORT DATA=airbnb.calendar OUT=work.cal (DROP=date) ; BY listing_id DESCENDING price ; RUN ; DATA work.apparts30 ; SET airbnb.flats (OBS=30 WHERE=(prix > 500) RENAME=(price = prix)) ; RUN ; DATA work.apparts30 ; SET airbnb.flats (RENAME=(price = prix) WHERE=(prix > 500) OBS=30) ; RUN ; DATA work.apparts5 (RENAME=(price = prix) WHERE=(ppp > 500) OBS=5) ; SET airbnb.flats […]

SASOPTIM Comment fonctionne l’étape DATA (10 minutes)

DATA work.flats1 ; SET airbnb.flats ; ppp = price / accommodates ; DROP price ; RUN ; DATA work.flats2 ; SET airbnb.flats ; DROP price ; ppp = price / accommodates ; RUN ; DATA work.flats3 ; SET airbnb.flats ; ppp = price / accommodates ; ATTRIB ppp LABEL= »Prix par personne » ; RUN ; DATA work.flats4 ; ATTRIB ppp LABEL= »Prix par personne » ; SET airbnb.flats ; ppp = price / accommodates ; RUN ; DATA work.flats5 ; ATTRIB ppp LABEL= »Prix […]

SASOPTIM Lecture des données (26 minutes)

Organisation de la leçon (valable pour toutes les pages de ce cours, sauf les exercices et les QCM) 1) Un support Powerpoint à lire (pas de son). Possibilité de le télécharger ou de le passer en plein écran (en bas à droite du diaporama). Pour faire défiler les diapos, il suffit de cliquer dessus. 2) Une vidéo (avec du son) pour expliciter le propos du support avec des explications complémentaires et des exemples. Possibilité de plein écran (en bas à […]

SASOPTIM Correction – EXERCICE N°4

LIBNAME conso « c:/olivier/conso » ; /* avec MERGE */ PROC SORT DATA=conso.transactions (KEEP=ca id_mag date_trans WHERE=(YEAR(date_trans)=2014)) OUT=work.trans2014 (DROP=date_trans) ; BY id_mag ; RUN ; PROC SORT DATA=conso.magasins OUT=work.magasins PRESORTED ; BY id_mag ; RUN ; DATA work.trans2014 ; MERGE work.trans2014 (IN=activite) work.magasins (IN=en_magasin) ; BY id_mag ; IF activite AND en_magasin THEN OUTPUT ; RUN ; PROC MEANS DATA=work.trans2014 SUM MAXDEC=0 NONOBS ; VAR ca ; CLASS numCom ; FORMAT numCom $2. ; RUN ; /* en SQL */ PROC SQL […]

SASOPTIM Correction – EXERCICE N°3

PROC MEANS DATA=conso.transactions (KEEP=id_mag date_trans ca WHERE=(date_trans BETWEEN « 01APR2013″D AND « 30JUN2013″D)) SUM MAXDEC=0 NONOBS ; VAR ca ; CLASS id_mag date_trans ; FORMAT date_trans FRADFMN. ; WAYS 0 1 ; RUN ;

SASOPTIM Correction – EXERCICE N°2

LIBNAME conso « c:/olivier/conso » ; DATA work.transactions_2012 ; SET conso.transactions (KEEP=date_trans ca WHERE=(YEAR(date_trans)=2012)) ; LENGTH annee_trans mois_trans 3 ; annee_trans = YEAR(date_trans) ; mois_trans = MONTH(date_trans) ; DROP date_trans ; /* on pourrait même éliminer ANNEE_TRANS dont la création n’a pas d’utilité */ RUN ; PROC MEANS DATA=work.transactions_2012 SUM MAXDEC=0 NONOBS ; VAR ca ; CLASS mois_trans ; RUN ;

SASOPTIM Correction – EXERCICE N°1

LIBNAME conso « c:/olivier/conso » ; PROC CONTENTS DATA=conso.transactions ; RUN ; /* les données sont par blocs de transactions */ DATA work.tickets_2009 work.tickets_2010 work.tickets_2011 ; SET conso.transactions (DROP=id_item prix quantite WHERE=(YEAR(date_trans) BETWEEN 2009 AND 2011)) ; BY id_trans NOTSORTED ; RETAIN ca_total ; IF FIRST.id_trans THEN ca_total = 0 ; ca_total = ca_total + ca ; IF LAST.id_trans THEN DO ; SELECT(YEAR(date_trans)) ; WHEN(2009) OUTPUT work.tickets_2009 ; WHEN(2010) OUTPUT work.tickets_2010 ; WHEN(2011) OUTPUT work.tickets_2011 ; OTHERWISE ; END ; END ; […]

SASOPTIM EXERCICE N°4

Les données pour les exercices sont décrites dans cette page. En croisant les tables TRANSACTIONS et MAGASINS, sortir le chiffre d’affaires (somme de CA) par département (les deux premiers caractères de NUMCOM) pour l’année 2014. Bien sûr votre code doit être le plus rapide possible à s’exécuter, votre hiérarchie attend les chiffres aussi vite que possible !

SASOPTIM EXERCICE N°3

Les données pour les exercices sont décrites dans cette page. A partir des données de TRANSACTIONS, calculer pour le deuxième trimestre 2013 les montants totaux de chiffres d’affaires (CA) par Mois (à partir de DATE_VENTE) Magasin (ID_MAG) Trimestre (à partir de DATE_VENTE).

SASOPTIM EXERCICE N°2

Les données pour les exercices sont décrites dans cette page. Ajouter aux données TRANSACTIONS deux nouvelles colonnes, ANNEE_TRANS et MOIS_TRANS dérivées de DATE_TRANS. Les utiliser pour calculer le chiffre d’affaires mensuel en 2012 (somme de la variable CA).

SASOPTIM EXERCICE N°1

Les données pour les exercices sont décrites dans cette page. Calculer par passage en caisse (identifié par ID_TRANS dans TRANSACTIONS) le montant total du ticket (c’est la somme de CA) pour les passages en caisse des années 2009 à 2011. Conserver les variables ID_TRANS, ID_MAG, DATE_TRANS et CLIENT dans le résultat. Celui-ci sera stocké dans 3 tables selon l’année : TICKETS_2009, TICKETS_2010 et TICKETS_2011.

DATAVIZ DEPP Correction – EXERCICE N°9

library(ggplot2) library(ggthemes) exercice9

DATAVIZ DEPP Correction – EXERCICE N°8

library(ggplot2) exercice8

DATAVIZ DEPP Correction – EXERCICE N°7

Proposition : un radar. Les données sont sur 100, il y a 6 axes, peut-être un peu trop de trajectoires (6) mais tous les indicateurs ont un sens de lecture commun et la surface d’une trajectoire est un bon indicateur. Sous Excel, faire un copier / collage spécial transposé pour avoir les items en colonnes et les pays en ligne. Puis graphique radar et modifier les couleurs des trajectoires (pastel sauf France) et les graduations de l’axe (simplifier les graduations, diminuer […]

DATAVIZ DEPP Correction – EXERCICE N°6

library(ggplot2) library(ggrepel) lycees$LP

DATAVIZ DEPP Correction – EXERCICE N°5

library(reshape2) library(ggplot2) exercice5 <- melt(effectifs, id.vars = « Degré », measure.vars = as.character(1995:2019), value.name = « indice », variable.name = « annee ») ggplot(exercice5) + aes(x=annee, y=indice, group=Degré, linetype=Degré, colour=Degré) + geom_line(show.legend = FALSE) + geom_text(data=exercice5[which(exercice5$annee==2008),], aes(x=annee, y=indice, label=Degré, colour=Degré), size=3, show.legend = FALSE) + geom_text(data=exercice5[which(exercice5$annee==2019),], aes(x=annee, y=indice, label=round(indice)), nudge_x=1, size=2.5, show.legend = FALSE) + scale_x_discrete(expand=expansion(add=c(0,3))) + theme_classic()

DATAVIZ DEPP Correction – EXERCICE N°4

idf_2018

DATAVIZ DEPP Correction – EXERCICE N°3

library(ggplot2) # graphiques exercice3

DATAVIZ DEPP Correction – EXERCICE N°2

Saisir les données en tableau : une ligne par poste, une colonne par degré. Barres côte à côte pour encourager les comparaisons. Tri des données pour que les barres soient par longueur décroissante de haut en bas, selon le % du 1er degré. Mettre la légende dans l’espace vide sous les barres. Choisir des couleurs pastel.

DATAVIZ DEPP Correction – EXERCICE N°1

Calculer une évolution entre 2008 et 2018 et compléter par une Sparkline courbe. Masquer les colonnes des années intermédiaires (attention à les utiliser quand même dans la Sparkline (menu Création > Modifier les données > Cellules masquées et vides… il faut cocher la case Afficher les données des lignes et colonnes masquées). Trait léger pour séparer l’en-tête du reste du tableau, alignement à droite des années. Ajouter un titre. Trier par évolution décroissante, sortir les données de Mayotte qui sont […]

DATAVIZ DEPP EXERCICE N°9

Les données pour les exercices sont décrites dans cette page. A partir des données IVAL, comparer l’évolution du taux de réussite au bac GT par secteur et par académie, en se limitant à celles d’Ile de France. Soigner particulièrement les détails, le graphique doit être prêt à publier !

DATAVIZ DEPP EXERCICE N°8

Les données pour les exercices sont décrites dans cette page. A partir des données BAC_GT, représenter l’évolution des taux de réussite moyens par académie sous forme de multiples. (Avec R.)

DATAVIZ DEPP EXERCICE N°7

Les données pour les exercices sont décrites dans cette page. A partir de l’onglet AUTO-EFFICACITE Le graphique ci-dessous est tiré de l’Etat de l’Ecole 2020 (page 41) ; faites-en une analyse critique et proposez, si vous l’estimez nécessaire, une meilleure représentation. (Avec R ou Excel.)

DATAVIZ DEPP EXERCICE N°6

Les données pour les exercices sont décrites dans cette page. A partir des données  LYCEES, faire un graphique équivalent à celui-ci. Il représente la part du public par les lycées pro (en abscisses) et parmi les lycées GT (en ordonnées), par académie. (Avec R ou Excel.)

DATAVIZ DEPP EXERCICE N°5

Les données pour les exercices sont décrites dans cette page. A partir des données EFFECTIFS, obtenir l’équivalent de ce graphique tiré du RERS 2020. Il n’est pas forcément nécessaire d’en reproduire tous les détails (la correction donne cependant des pistes dans ce sens). (Avec R ou Excel)

DATAVIZ DEPP EXERCICE N°4

Les données pour les exercices sont décrites dans cette page. A partir des données IVAL, créez un graphique en boîtes à moustaches pour représenter les distributions des taux de réussite en 2018 par département pour les trois académies d’Ile de France. (Avec R, éventuellement avec Excel)  

DATAVIZ DEPP EXERCICE N°3

Les données pour les exercices sont décrites dans cette page. A partir des données BAC_GT, représenter les taux moyens de réussite 2018 par académie par des barres horizontales. (sur Excel ou R)

DATAVIZ DEPP EXERCICE N°2

Pour cet exercice vous devez saisir les données directement dans Excel. Si vous utilisez R, vous pouvez créer un data.frame contenant les données avec le code suivant. struct <- data.frame(degre=c(rep(« 1er degré »,4), rep(« 2nd degré »,4)), poste=rep(c(« Investissement », « Fonctionnement », « Rémunération des personnels enseignants », « Rémunération des personnels non enseignants »), 2), pct=c(8.3,14.7,51.3,25.7, 8.2,15.6,55.9,20.4)) A partir de ces deux graphiques tirés de l’Etat de l’Ecole 2020, proposez une autre visualisation permettant de comparer les répartitions des dépenses selon les niveaux d’établissements.

DATAVIZ DEPP EXERCICE N°1

Les données pour les exercices sont décrites dans cette page. A partir de l’onglet REUSSITE AU BAC GT. Présentez de la manière la plus efficace possible le tableau montrant l’évolution du taux de réussite au baccalauréat GT par département entre 2008 et 2018. L’objectif est de montrer clairement l’évolution entre ces deux périodes (2018 vs 2008).

données DataViz DeppPrésentation des données DataViz Depp

Les données sont regroupées dans le classeur dataviz_depp.xlsx. Les mêmes données sont disponibles sous forme de data.frames R qu’on récupère avec la fonction load. Toutes sont issues de publications de la DEPP. Réussite au bac GT = taux de réussite au bac Général et Technologique (moyenne des taux des établissements du département) par département, de 2008 à 2018 (sauf Mayotte : de 2012 à 2018). Source : Les indicateurs de résultats des lycées, compilation des données annuelles + traitement pour […]

SASODS Correction – EXERCICE N°5

LIBNAME airbnb « c:/olivier/airbnb/ » ; ODS ESCAPECHAR= »^ » ; OPTIONS PRINTERPATH = PDF ; ODS PDF FILE= »c:/temp/exercice 5.pdf » STYLE=dove STARTPAGE=NEVER ; TITLE J=R ‘Page ^{thisPage} sur ^{lastPage}’ ; PROC ODSTEXT ; P « Appartements en location sur Airbnb à Paris » / STYLE=systemTitle ; P CATX( » « , « Le tableau ci-dessous chiffre par quartier », « le nombre d’appartements en location. », « Sont prises en compte toutes les annonces », « disponibles sur le site en date du 05/07/2020. ») ; RUN ; TITLE ; PROC TABULATE DATA=airbnb.flats ; CLASS neighbourhood_cleansed […]

SASODS EXERCICE N°5

Les données pour les exercices sont décrites dans cette page. Reproduire le document PDF ci-dessous à partir de la table flats et de la procédure TABULATE dont le code de base est fourni. Le style utilisé est DOVE. PROC TABULATE DATA=airbnb.flats ;   CLASS neighbourhood_cleansed ;   TABLE neighbourhood_cleansed= » »,         N= »Nombre d’annonces d’appartements »         F=NLNUM12. /      BOX= »Quartier » ; RUN ;  

SASODS Correction – EXERCICE N°4

LIBNAME airbnb « c:/olivier/airbnb/ » ; PROC TEMPLATE ; DEFINE STYLE styles.exercice4 / STORE=work.exercices ; PARENT=styles.journal ; CLASS systemTitle / COLOR=DARKBLUE FONTFAMILY= »Calibri » ; CLASS data / COLOR=DARKBLUE FONTFAMILY= »Calibri » ; CLASS header / COLOR=DARKBLUE FONTFAMILY= »Calibri » ; END ; RUN ; ODS PATH(PREPEND) work.exercices ; ODS EXCEL FILE= »c:/temp/exercice4.xlsx » STYLE=exercice4 ; ODS RTF FILE= »c:/temp/exercice4.doc » STYLE=exercice4 ; ODS PDF FILE= »c:/temp/exercice4.pdf » STYLE=exercice4 ; TITLE1 « Liste des 10 premiers appartements » ; TITLE2 « On pourrait faire plus long mais à quoi bon ? » ; PROC PRINT DATA=airbnb.flats (OBS=10) ; […]

SASODS EXERCICE N°4

Les données pour les exercices sont décrites dans cette page. Créer un style basé sur JOURNAL mais où les titres, en-têtes et contenus de tableaux sont écrits en bleu foncé, police Calibri. Le tester sur les destinations de votre choix.

SASODS Correction – EXERCICE N°3

LIBNAME airbnb « c:/olivier/airbnb/ » ; PROC SORT DATA=airbnb.flats OUT=work.flats ; BY neighbourhood_cleansed ; RUN ; ODS EXCEL FILE= »c:/temp/exercice 3.xlsx » OPTIONS(SHEET_INTERVAL= »BYGROUP » SHEET_NAME= »Quartier #byVal1″ AUTOFILTER= »ALL » FROZEN_HEADERS= »YES ») ; PROC TABULATE DATA=work.flats ; BY neighbourhood_cleansed ; CLASS room_type ; VAR price ; TABLE room_type= » », (N= »Nombre de locations » price= » »*(MEAN= »Prix moyen » MEDIAN= »Prix médian » MIN= »Prix minimum » MAX= »Prix maximum »))*F=12. ; RUN ; ODS EXCEL CLOSE ;

SASODS EXERCICE N°3

Les données pour les exercices sont décrites dans cette page. Créer un classeur Excel à partir de la table flats, avec un onglet par quartier (NEIGHBOURHOOD_CLEANSED). Chaque onglet contiendra des statistiques sur le prix en fonction du type de location, avec la procédure TABULATE ci-dessous. PROC TABULATE DATA=… ;   CLASS room_type ;   VAR price ;   TABLE room_type= » »,        (N= »Nombre de locations »           price= » »*(MEAN= »Prix moyen »                     MEDIAN= »Prix médian »                        MIN= »Prix minimum »                        MAX= »Prix maximum »))*F=12. ; RUN […]

SASODS Correction – EXERCICE N°2

LIBNAME airbnb « c:/olivier/airbnb/ » ; OPTIONS NODATE NONUMBER ; ODS RTF FILE= »c:/temp/exercice 2.doc » COLUMNS=2 STYLE=journal ; PROC TABULATE DATA=airbnb.flats ; CLASS neighbourhood_cleansed ; VAR price ; TABLE neighbourhood_cleansed= » », price= » »*MEAN= »Prix moyen »*F=NLNUM12.2 N= »Nb appartements »*F=NLNUM12. / BOX= »Quartier » ; RUN ; ODS GRAPHICS / NOBORDER HEIGHT=18CM WIDTH=9CM ; PROC SGPLOT DATA=airbnb.flats ; HBAR neighbourhood_cleansed / STAT=MEAN RESPONSE=price CATEGORYORDER=RESPDESC ; YAXIS DISPLAY=(NOLABEL NOTICKS) ; XAXIS LABEL= »Prix moyen dans le quartier » ; RUN ; ODS GRAPHICS / RESET ; ODS RTF CLOSE ;

SASODS EXERCICE N°2

Les données pour les exercices sont décrites dans cette page. A partir de la table flats, créer un document Word contenant les prix (PRICE) moyens par quartier (NEIGHBOURHOOD_CLEANSED), sous forme d’un table avec la procédure TABULATE et d’un graphique avec la procédure SGPLOT. Les codes pour ces deux procédures sont donnés ci-dessous. PROC TABULATE DATA=airbnb.flats ;   CLASS neighbourhood_cleansed ;   VAR price ;   TABLE neighbourhood_cleansed= » »,         price= » »*MEAN= »Prix moyen »*F=NLNUM12.2           N= »Nb appartements »*F=NLNUM12. /     BOX= »Quartier » ; RUN ; ODS […]

SASODS Correction – EXERCICE N°1

LIBNAME airbnb « c:/olivier/airbnb/ » ; PROC UNIVARIATE DATA=airbnb.flats ; ID id accommodates ; VAR price ; CLASS neighbourhood_cleansed ; ODS OUTPUT extremeObs = work.prix_extremes ; RUN ;

SASODS EXERCICE N°1

Les données pour les exercices sont décrites dans cette page. A part de la table flats et d’une procédure UNIVARIATE, stockez dans une table SAS les 5 appartements offrant les prix (PRICE) les plus bas et les  5 plus élevés, ainsi que les identifiants (ID) et capacité d’accueil (ACCOMMODATES). Ces dernières informations seront recueillies via une instruction ID. On récupèrera ces informations par quartier (NEIGHBOURHOOD_CLEANSED).

SASODS Caractères spéciaux (13 minutes)

ODS ESCAPECHAR= »^ » ; PROC FORMAT ; VALUE prix LOW-15 = « ^{UNICODE ‘2264’x} 15″ ; RUN ; ODS RTF FILE= »c:/temp/pagination.doc » ; TITLE1 J=R « Page ^{thispage} sur ^{lastpage} » ; TITLE2 « Extrait du catalogue » ; TITLE3 « La suite sur demande ^{STYLE [FONTSIZE=18PT]^{unicode ‘263a’x}} » ; FOOTNOTE1 J=L « ^{super 1}y compris TVA 20% » ; PROC PRINT DATA=vins.produits (OBS=100) LABEL ; LABEL prixTTC= »Prix en euros^{super 1} » numCatalogue= »Référence^ndans notre catalogue » ; FORMAT prixTTC prix. ; RUN ; TITLE ; FOOTNOTE ; ODS RTF CLOSE ;

SASODS Procédures pour insérer du texte (16 minutes)

OPTIONS NODATE NONUMBER ; DATA _NULL_ ; SET vins.produits NOBS=n ; CALL SYMPUTX(« nRef », n) ; STOP ; RUN ; ODS PDF FILE= »c:/temp/catalogue.pdf » STARTPAGE=NEVER ; PROC ODSTEXT ; P « Notre catalogue compte &nRef références. » ; P « Voici les(*ESC*){STYLE [FONTWEIGHT=BOLD] 10} premières » ; P «  » ; P « Nous tenons le reste à votre disposition… » / STYLE=[FONTSTYLE=ITALIC] ; P «  » ; P « Extrait » / STYLE=systemTitle ; RUN ; PROC PRINT DATA=vins.produits (OBS=10) ; RUN ; ODS PDF STARTPAGE=NOW ; PROC ODSLIST ; ITEM […]

SASODS Instructions pour insérer du texte (6 minutes)

ODS TEXT= »Premier texte » ; PROC PRINT DATA=vins.produits (OBS=10) ; RUN ; ODS TEXT= »Second texte » ; PROC PRINT DATA=vins.produits (OBS=10) LABEL NOOBS ; VAR millesime prixTTC couleur etiquette ; LABEL prixTTC= »Prix (*) » ; RUN ; ODS TEXT= »(*) y compris TVA 20% » ; TITLE1 COLOR=RED « un titre en rouge » ; TITLE2 COLOR=BLUE « un titre en bleu » ; FOOTNOTE1 J=LEFT HEIGHT=8PT « (*) y compris TVA 20% » ; PROC PRINT DATA=vins.produits (OBS=10) LABEL NOOBS ; VAR millesime prixTTC couleur etiquette ; LABEL prixTTC= »Prix (*) » […]

SASODS Style ponctuel (8 minutes)

TITLE1 « Catalogue des vins (extrait) » ; PROC PRINT DATA=vins.produits (OBS=10) ; VAR numCatalogue prixTTC region couleur ; RUN ; TITLE ; TITLE1 « Catalogue des vins (*ESC*){STYLE [FONTSTYLE=ITALIC] (extrait)} » ; PROC PRINT DATA=vins.produits (OBS=10) ; VAR numCatalogue prixTTC region couleur ; RUN ; TITLE ; PROC FORMAT ; VALUE $couleur « blanc » = « (*ESC*){STYLE [COLOR=CREAM] blanc} » « rouge » = « (*ESC*){STYLE [COLOR=DARKRED] rouge} » ; RUN ; TITLE1 « Catalogue des vins (extrait) » ; PROC PRINT DATA=vins.produits (OBS=30) ; VAR numCatalogue prixTTC region couleur ; FORMAT […]

SASODS Style local (24 minutes)

PROC PRINT DATA=vins.produits (OBS=10) ; RUN ; PROC PRINT DATA=vins.produits (OBS=10) STYLE(TABLE)=[WIDTH=80%] ; RUN ; PROC PRINT DATA=vins.produits (OBS=10) ; VAR numCatalogue ; VAR prixTTC / STYLE=[BACKGROUND=GRAY] ; VAR couleur millesime / STYLE=[FONTWEIGHT=BOLD] ; RUN ; PROC FORMAT ; VALUE prix_couleur LOW-50 = « BLACK » 50<-HIGH = « RED » ; RUN ; PROC PRINT DATA=vins.produits (OBS=10) ; VAR numCatalogue ; VAR prixTTC / STYLE=[COLOR=prix_couleur.] ; VAR couleur millesime ; RUN ; PROC TABULATE DATA=vins.produits ; CLASS couleur ; VAR prixTTC millesime ; […]

SASODS Style global (10 minutes)

ODS RTF FILE= »c:/temp/style originel.doc » STYLE=analysis STARTPAGE=NEVER ; TITLE1 « Catalogue des vins » ; PROC PRINT DATA=vins.produits (OBS=10) ; RUN ; PROC SGPLOT DATA=vins.produits ; HBAR region / CATEGORYORDER=RESPDESC ; RUN ; TITLE ; ODS RTF CLOSE ; PROC TEMPLATE ; DEFINE STYLE styles.formation_ods / STORE=work.style ; PARENT=styles.analysis ; CLASS systemTitle / FONTFAMILY= »Calibri » FONTSIZE=18PT ; CLASS header / COLOR=WHITE BACKGROUNDCOLOR=DARKRED ; END ; RUN ; ODS PATH(PREPEND) work.style ; ODS RTF FILE= »c:/temp/style modifié.doc » STYLE=formation_ods STARTPAGE=NEVER ; TITLE1 « Catalogue des vins » ; PROC […]

SASODS Les niveaux de mise en forme (6 minutes)

SASODS ODS EXCEL (15 minutes)

ODS EXCEL FILE= »c:/temp/classeur.xlsx » OPTIONS(AUTOFILTER= »ALL » SHEET_NAME= »Catalogue des vins » FROZEN_HEADERS= »YES » FROZEN_ROWHEADERS= »3″ HIDDEN_COLUMNS= »4,7,8″ ABSOLUTE_COLUMN_WIDTH= »12,50,12,30,30,30,30,30″) ; TITLE1 « Notre catalogue des vins » ; PROC PRINT DATA=vins.produits LABEL NOOBS ; RUN ; TITLE ; ODS EXCEL CLOSE ; ODS EXCEL FILE= »c:/temp/onglet par région.xlsx » OPTIONS(SHEET_INTERVAL= »BYGROUP » SHEET_NAME= »#byVal1″) ; PROC SORT DATA=vins.produits OUT=work.produits ; BY region DESCENDING prixTTC ; RUN ; PROC PRINT DATA=work.produits LABEL ; BY region ; RUN ; ODS EXCEL CLOSE ;

SASODS ODS RTF (29 minutes)

ODS RTF FILE= »c:/temp/mise en page.doc » STYLE=statistical ; TITLE1 « Différentes options de mise en page » ; PROC PRINT DATA=vins.produits (OBS=10) ; RUN ; OPTIONS ORIENTATION=LANDSCAPE ; ODS RTF ; PROC PRINT DATA=vins.produits (OBS=10) ; RUN ; OPTIONS ORIENTATION=PORTRAIT NOCENTER ; ODS RTF ; PROC PRINT DATA=vins.produits (OBS=10) ; RUN ; ODS RTF COLUMNS=2 ; PROC PRINT DATA=work.extreme (WHERE=(couleur= »blanc »)) NOOBS ; VAR etiquette_High high ; RUN ; PROC PRINT DATA=work.extreme (WHERE=(couleur= »rouge »)) NOOBS ; VAR etiquette_High high ; RUN ; ODS RTF COLUMNS=1 […]

SASODS Sélectionner une partie des sorties (9 minutes)

ODS SELECT quantiles ; PROC UNIVARIATE DATA=vins.produits ; VAR prixTTC ; CLASS couleur ; RUN ; ODS EXCLUDE quantiles ; PROC UNIVARIATE DATA=vins.produits ; VAR prixTTC ; CLASS couleur ; RUN ; ODS EXCLUDE oneWayFreqs (PERSIST) ; PROC FREQ DATA=vins.produits NLEVELS ; TABLE couleur region ; RUN ; PROC FREQ DATA=vins.produits ; TABLE couleur couleur*region ; RUN ; ODS SELECT ALL ; ODS EXCLUDE ALL ; PROC UNIVARIATE DATA=vins.produits ; VAR prixTTC ; CLASS couleur ; RUN ; ODS SELECT […]

SASODS Créer une table SAS (10 minutes)

ODS TRACE ON ; PROC UNIVARIATE DATA=vins.produits ; VAR prixTTC ; RUN ; ODS TRACE OFF ; PROC UNIVARIATE DATA=vins.produits ; VAR prixTTC ; ODS OUTPUT quantiles = work.quant extremeObs = work.extreme ; RUN ; PROC UNIVARIATE DATA=vins.produits ; VAR prixTTC millesime ; ODS OUTPUT Quantiles = work.quant ExtremeObs = work.extreme ; RUN ; PROC UNIVARIATE DATA=vins.produits ; VAR prixTTC ; CLASS couleur ; ID etiquette ; ODS OUTPUT quantiles = work.quant (WHERE=(quantile =: « 9 »)) extremeObs = work.extreme (DROP=low etiquette_low […]

SASODS Grands principes (12 minutes)

Organisation de la leçon (valable pour toutes les pages de ce cours, sauf les exercices et les QCM) 1) Un support Powerpoint à lire (pas de son). Possibilité de le télécharger ou de le passer en plein écran (en bas à droite du diaporama). Pour faire défiler les diapos, il suffit de cliquer dessus. 2) Une vidéo (avec du son) pour expliciter le propos du support avec des explications complémentaires et des exemples. Possibilité de plein écran (en bas à […]

SASGRAPH Correction – EXERCICE N°5

LIBNAME airbnb « c:/olivier/airbnb/ » ; PROC SGPLOT DATA=airbnb.calendar ; WHERE date BETWEEN « 01DEC2016″D AND « 31DEC2016″D ; VBAR date / NAME= »barres » FILLATTRS=(COLOR=lightblue) LEGENDLABEL= »Nombre de logements disponibles (échelle de gauche) » ; VLINE date / RESPONSE=price STAT=MEAN Y2AXIS LINEATTRS=(THICKNESS=2 COLOR=BLACK) LEGENDLABEL= »Prix moyen (échelle de droite) » ; XAXIS TYPE=TIME DISPLAY=(NOLABEL) VALUES=(« 01DEC2016″D « 15DEC2016″D « 25DEC2016″D « 31DEC2016″D) ; YAXIS LABEL= »Nombre de logements disponibles »; Y2AXIS MIN=100 MAX=150 LABEL= »Prix moyen en € » ; DISCRETELEGEND / LOCATION=INSIDE POSITION=BOTTOM OPAQUE ; RUN ;

SASGRAPH Correction – EXERCICE N°4

LIBNAME airbnb « c:/olivier/airbnb/ » ; /* solution 1 */ PROC SGPLOT DATA=airbnb.flats ; STYLEATTRS DATACOLORS=(ORANGE GREEN BLUE) ; HBAR neighbourhood_cleansed / GROUP=room_type CATEGORYORDER=RESPDESC ; RUN ; /* solution 2 */ DATA work.couleurs ; INFILE DATALINES DLM= », » DSD MISSOVER ; INPUT id $ value :$20. fillColor $ ; DATALINES ; roomtype,Entire home/apt,ORANGE roomtype,Private room,GREEN roomtype,Shared room,BLUE ; RUN ; PROC SGPLOT DATA=airbnb.flats DATTRMAP=work.couleurs ; HBAR neighbourhood_cleansed / GROUP=room_type CATEGORYORDER=RESPDESC ATTRID=roomtype ; RUN ;

SASGRAPH Correction – EXERCICE N°3

LIBNAME airbnb « c:/olivier/airbnb/ » ; PROC SUMMARY DATA=airbnb.calendar (WHERE=(date BETWEEN « 01SEP2016″D AND « 30JUN2017″D)) NWAY ; CLASS date ; VAR price ; OUTPUT OUT=work.prix_moyens MEAN= ; RUN ; PROC SGPLOT DATA=work.prix_moyens ; SERIES X=date Y=price ; RUN ;

SASGRAPH Correction – EXERCICE N°2

LIBNAME airbnb « c:/olivier/airbnb/ » ; PROC SGPLOT DATA=airbnb.flats (WHERE=(price < 1000)) ; HBOX price / CATEGORY=neighbourhood_cleansed EXTREME ; RUN ;

SASGRAPH Correction – EXERCICE N°1

LIBNAME airbnb « c:/olivier/airbnb/ » ; PROC SGPLOT DATA=airbnb.flats ; HBAR neighbourhood_cleansed / RESPONSE=price STAT=MEDIAN CATEGORYORDER=RESPDESC ; RUN ;

SASGRAPH EXERCICE N°5

A partir des données calendar, construire le graphique ci-dessous. Ce sont les données du mois de décembre 2016, avec en bâtons le nombre de logements disponibles (= le nombre de lignes) par jour (colonne DATE), et en courbe le prix moyen (colonne PRICE). On soignera particulièrement les axes et la légende.

SASGRAPH EXERCICE N°4

A partir de la table flats construire un diagramme en bâtons horizontaux, où la longueur des barres représente le nombre de logements avec une barre par quartier (colonne NEIGHBOURHOOD_CLEANSED). Les barres seront présentées par longueur décroissante et subdivisées selon le type de location (ROOM_TYPE). Les logements privatisés seront en orange, les chambres privatisées en vert et les chambres partagées en bleu.

SASGRAPH EXERCICE N°3

A partir des données calendar agrégez par date les prix des logements pour en faire une moyenne. On se limitera aux dates comprises entre le 1er septembre 2016 et le 30 juin 2017. Représenter ensuite ces moyennes sous forme de courbe.

SASGRAPH EXERCICE N°2

A partir de la table flats construire une série de boîtes à moustaches décrivant les prix par quartier. On se limitera aux appartements où le prix est inférieur à 1000 euros la nuit. Les moustaches iront jusqu’au maximum et minimum des données.

SASGRAPH EXERCICE N°1

Les données pour les exercices sont décrites dans cette page. A partir de la table flats construire un diagramme en bâtons horizontaux, où la longueur des barres représente la médiane du prix (colonne PRICE) avec une barre par quartier (colonne NEIGHBOURHOOD_CLEANSED). Les barres seront présentées par longueur décroissante comme ceci.

données AirBnB SASPrésentation des données AirBnB

Les données concernent des locations sur le site d’AirBnB à Paris, à la date du 03/07/2016. Elles ont été collectées par InsideAirBnB. Les données sont regroupées dans trois tables SAS (lis, flats et calendar). lis et flats sont bâties sur le même modèle, flats étant un sous-ensemble de lis. Seul le type de logement diffère. flats contient uniquement des appartements (valeurs “Apartment”, “Condominium” et “Loft” de la colonne property_type). On trouve également dans le fichier zip des versions csv et […]

SASGRAPH Proc SGPANEL (11 minutes)

  PROC SGPANEL DATA=vins.produits ; WHERE millesime > 1995 AND region IN: (« A », »B ») ; PANELBY region ; HBAR millesime ; RUN ; PROC SGPLOT DATA=vins.produits ; WHERE millesime > 1995 AND region IN: (« A », »B ») ; HBAR millesime / GROUP=region GROUPDISPLAY=CLUSTER ; RUN ; PROC SGPANEL DATA=vins.produits ; WHERE millesime > 1995 AND region IN: (« A », »B ») ; PANELBY region / NOVARNAME ; HBAR millesime ; RUN ; PROC SGPANEL DATA=vins.produits ; WHERE millesime > 1995 AND region IN: (« A », »B ») ; PANELBY […]

SASGRAPH Comment organiser ses données (11 minutes)

  PROC SUMMARY DATA=vins.produits (KEEP=region prixTTC millesime WHERE=(region IN (« Bordeaux », « Bourgogne »))) ; VAR prixTTC ; CLASS millesime region ; WAYS 2 ; OUTPUT OUT=work.prix_moyens MEAN=prix ; RUN ; PROC SGPLOT DATA=work.prix_moyens ; SERIES X=millesime Y=prix / GROUP=region ; RUN ; PROC SGPLOT DATA=work.prix_moyens ; STYLEATTRS DATALINEPATTERNS=(SOLID DASH) ; SERIES X=millesime Y=prix / GROUP=region ; RUN ; ODS GRAPHICS / ATTRPRIORITY=NONE ; PROC SGPLOT DATA=work.prix_moyens ; STYLEATTRS DATALINEPATTERNS=(SOLID DASH) ; SERIES X=millesime Y=prix / GROUP=region ; RUN ; ODS GRAPHICS / […]

SASGRAPH Axes (22 minutes)

  PROC SGPLOT DATA=vins.produits ; WHERE millesime BETWEEN 1995 AND 2002 ; VBAR millesime / RESPONSE=prixTTC STAT=MEAN ; YAXIS LABEL= »Prix moyen / bouteille » ; XAXIS DISPLAY=(NOLABEL) ; RUN ; PROC SGPLOT DATA=vins.produits ; WHERE millesime BETWEEN 1995 AND 2002 ; VBAR millesime / RESPONSE=prixTTC STAT=MEAN ; YAXIS MAX=100 ; RUN ; PROC SGPLOT DATA=vins.produits ; WHERE millesime BETWEEN 1995 AND 2002 ; VBAR millesime / RESPONSE=prixTTC STAT=MEAN ; YAXIS VALUES=(0 TO 100 BY 25) ; RUN ; PROC SGPLOT DATA=vins.produits […]

SASGRAPH Inserts de texte (11 minutes)

PROC SGPLOT DATA=vins.produits ; WHERE millesime BETWEEN 1995 AND 2002 ; VLINE millesime / RESPONSE=prixTTC STAT=MEAN ; INSET « Prix moyen » ; RUN ; PROC SGPLOT DATA=vins.produits ; WHERE millesime BETWEEN 1995 AND 2002 ; VLINE millesime / RESPONSE=prixTTC STAT=MEAN ; INSET « Prix moyen » / POSITION=TOP TEXTATTRS=(SIZE=16PT) ; RUN ; PROC SGPLOT DATA=vins.produits ; WHERE millesime BETWEEN 1995 AND 2002 ; SCATTER X=millesime Y=prixTTC ; INSET « N=673 » « r= -0.16 » / POSITION=TOPRIGHT ; RUN ; PROC SGPLOT DATA=vins.produits ; WHERE millesime BETWEEN […]

SASGRAPH Légende (11 minutes)

  PROC SGPLOT DATA=work.prix ; SERIES X=millesime Y=prixTTC_median / GROUP=region ; KEYLEGEND / POSITION=RIGHT ; RUN ; PROC SGPLOT DATA=work.prix ; SERIES X=millesime Y=prixTTC_median / GROUP=region ; KEYLEGEND / POSITION=TOPRIGHT LOCATION=INSIDE ACROSS=1 ; RUN ; PROC SGPLOT DATA=vins.produits ; WHERE millesime BETWEEN 1995 AND 2002 ; VBAR millesime / NAME= »nb » ; VLINE millesime / RESPONSE=prixTTC STAT=MEAN NAME= »prix » Y2AXIS LEGENDLABEL= »Prix moyen » ; KEYLEGEND « prix » ; RUN ; PROC SGPLOT DATA=vins.produits ; WHERE millesime BETWEEN 1995 AND 2002 ; VBAR millesime / […]

SASGRAPH Couleurs et symboles (20 minutes)

  PROC SGPLOT DATA=vins.produits ; VBAR region / GROUP=couleur ; RUN ; /* et changer le style pour Journal */ PROC SGPLOT DATA=vins.produits ; STYLEATTRS DATACOLORS=(« CREAM » « DARK_RED ») ; VBAR region / GROUP=couleur ; RUN ; PROC SGPLOT DATA=vins.produits ; WHERE region IN: (« Beaujolais », « Languedoc ») ; STYLEATTRS DATACOLORS=(« CREAM » « DARK_RED ») ; VBAR region / GROUP=couleur ; RUN ; DATA work.attributs ; INPUT value $ fillColor $ ; id = « ATTR_COULEUR » ; lineColor = fillColor ; show= »ATTRMAP » ; DATALINES ; blanc cream rouge […]

SASGRAPH Courbes et lissages (10 minutes)

  PROC MEANS DATA=vins.ventes MIN MEAN MEDIAN MAX SUM ; WHERE YEAR(dateVente) BETWEEN 2000 AND 2002 ; VAR nbVendus ; CLASS dateVente ; FORMAT dateVente MMYYS7. ; ODS OUTPUT summary = work.ventes ; RUN ; PROC SGPLOT DATA=work.ventes ; SERIES X=dateVente Y=nbVendus_sum ; RUN ; PROC SGPLOT DATA=work.ventes ; SERIES X=dateVente Y=nbVendus_sum / LINEATTRS=(PATTERN=DASH) ; RUN ; PROC MEANS DATA=vins.produits MEDIAN ; WHERE millesime > 1995 AND region =: « Bo » ; VAR prixTTC ; CLASS region millesime ; ODS OUTPUT […]

SASGRAPH Nuages de points (18 minutes)

  PROC SGPLOT DATA=vins.produits ; WHERE millesime > 1980 ; SCATTER X=millesime Y=prixTTC ; RUN ; PROC SGPLOT DATA=vins.produits ; WHERE millesime > 1980 ; SCATTER X=millesime Y=prixTTC / MARKERATTRS=(SYMBOL=TRIANGLE) ; RUN ; PROC SGPLOT DATA=vins.produits ; WHERE millesime > 1980 AND prixTTC > 100 ; SCATTER X=millesime Y=prixTTC / GROUP=couleur MARKERATTRS=(SYMBOL=CIRCLEFILLED) TRANSPARENCY=0.4 ; RUN ; PROC SGPLOT DATA=vins.produits ; WHERE prixTTC > 100 AND millesime > 1980 ; SCATTER X=millesime Y=prixTTC / GROUP=couleur ; RUN ; PROC SGPLOT DATA=vins.produits […]

SASGRAPH Boîtes à moustaches (9 minutes)

  PROC SGPLOT DATA=vins.produits ; HBOX prixTTC ; RUN ; PROC SGPLOT DATA=vins.produits ; HBOX prixTTC / EXTREME ; RUN ; PROC SGPLOT DATA=vins.produits ; HBOX prixTTC / WHISKERPCT=25 OUTLIERATTRS=(SIZE=0) ; RUN ; PROC SGPLOT DATA=vins.produits ; HBOX prixTTC / SPREAD ; RUN ; PROC SGPLOT DATA=vins.produits ; HBOX prixTTC / DATALABEL=millesime ; RUN ; PROC SGPLOT DATA=vins.produits ; HBOX prixTTC / DATALABEL=millesime LABELFAR ; RUN ; PROC SGPLOT DATA=vins.produits ; HBOX prixTTC / CATEGORY=couleur ; RUN ; PROC SGPLOT […]

SASGRAPH Histogrammes (7 minutes)

  PROC SGPLOT DATA=vins.produits ; HISTOGRAM prixTTC ; RUN ; PROC SGPLOT DATA=vins.produits ; HISTOGRAM prixTTC / NBINS=10 ; RUN ; PROC SGPLOT DATA=vins.produits ; HISTOGRAM prixTTC / BINSTART=0 BINWIDTH=25 ; RUN ; PROC SGPLOT DATA=vins.produits ; HISTOGRAM prixTTC ; DENSITY prixTTC / TYPE=KERNEL ; RUN ; PROC MEANS DATA=vins.produits MEAN ; VAR prixTTC ; CLASS region couleur ; ODS OUTPUT summary = work.moyennes ; RUN ; PROC SGPLOT DATA=work.moyennes ; HISTOGRAM prixTTC_mean ; DENSITY prixTTC_mean / TYPE=NORMAL ; RUN […]

SASGRAPH Autres graphiques qualitatifs (9 minutes)

  PROC SGPLOT DATA=vins.produits ; WHERE couleur = « blanc » ; DOT region / RESPONSE=prixTTC STAT=MEAN ; RUN ; PROC SGPLOT DATA=vins.produits ; WHERE couleur = « blanc » ; DOT region / RESPONSE=prixTTC STAT=MEAN LIMITSTAT=CLM ; RUN ; PROC SGPLOT DATA=vins.produits ; WHERE millesime BETWEEN 1998 AND 2002 ; VBAR millesime ; VLINE millesime ; RUN ; PROC SGPLOT DATA=vins.produits ; WHERE millesime BETWEEN 1998 AND 2002 ; VBAR millesime ; VLINE millesime / RESPONSE=prixTTC STAT=MEAN Y2AXIS ; RUN ; PROC SGPLOT […]

SASGRAPH Diagrammes en bâtons (15 minutes)

  PROC SGPLOT DATA=vins.produits ; VBAR couleur ; RUN ; PROC SGPLOT DATA=vins.produits ; VBAR couleur / FILLATTRS=(COLOR=ORANGE) ; RUN ; PROC SGPLOT DATA=vins.produits ; VBAR couleur / STAT=PERCENT ; RUN ; PROC SGPLOT DATA=vins.produits ; VBAR couleur / STAT=MEAN RESPONSE=prixTTC ; RUN ; /* jouer sur le format de la date */ PROC SGPLOT DATA=vins.ventes ; WHERE dateVente BETWEEN « 01JAN2000″D AND « 31JAN2000″D ; VBAR dateVente / RESPONSE=nbVendus STAT=SUM ; RUN ; /* ici par mois */ PROC SGPLOT DATA=vins.ventes […]

SASGRAPH Instructions graphiques (12 minutes)

  https://vimeo.com/502675983 PROC SQL ; CREATE TABLE work.ventes AS SELECT INTNX(« MONTH »,dateVente,0, »BEGINNING ») AS mois FORMAT=MMYYS7., SUM(nbVendus) AS quantites FROM vins.ventes GROUP BY CALCULATED mois ; QUIT ; PROC SGPLOT DATA=work.ventes ; SERIES X=mois Y=quantites ; RUN ; PROC SGPLOT DATA=work.ventes ; SERIES X=mois Y=quantites ; SCATTER X=mois Y=quantites ; RUN ; DATA work.ventes ; LENGTH txt $ 40 ; SET work.ventes ; IF mois= »01SEP2003″D THEN txt = CATX(« 0A »x, « Ouverture », « d’un magasin », « concurrent ») ; RUN ; PROC SGPLOT DATA=work.ventes ; SERIES X=mois […]

SASGRAPH Syntaxe de la procédure SGPLOT (7 minutes)

  PROC SGPLOT DATA=vins.produits ; VBAR region / GROUP=region ; RUN ; PROC SGPLOT DATA=vins.produits ; VBAR region / GROUP=couleur ; RUN ; PROC SGPLOT DATA=vins.produits ; VBAR region ; VLINE region / RESPONSE=prixTTC STAT=MEAN Y2AXIS ; RUN ; PROC SGPLOT DATA=vins.produits NOAUTOLEGEND ; VBAR region ; VLINE region / RESPONSE=prixTTC STAT=MEAN Y2AXIS ; RUN ; PROC SGPLOT DATA=vins.produits NOAUTOLEGEND ; VBAR region ; VLINE region / RESPONSE=prixTTC STAT=MEAN Y2AXIS ; Y2AXIS MIN=0 MAX=100 ; RUN ;

SASGRAPH ODS Graphics, paramétrage (11 minutes)

PROC SGPLOT DATA=vins.produits ; HBAR region ; RUN ; ODS GRAPHICS / WIDTH=100MM HEIGHT=100MM ; PROC SGPLOT DATA=vins.produits ; HBAR region ; RUN ; ODS LISTING GPATH= »c:/temp » ; ODS GRAPHICS / NOBORDER OUTPUTFMT=PNG IMAGENAME= »vins_par_region » ; PROC SGPLOT DATA=vins.produits ; HBAR region ; RUN ; ODS LISTING CLOSE ; ODS GRAPHICS / RESET=ALL ; PROC SGPLOT DATA=vins.produits ; HBAR region ; RUN ;

SASGRAPH ODS Graphics, principe (10 minutes)

Organisation de la leçon (valable pour toutes les pages de ce cours, sauf les exercices et les QCM) 1) Un support Powerpoint à lire (pas de son). Possibilité de le télécharger ou de le passer en plein écran (en bas à droite du diaporama). Pour faire défiler les diapos, il suffit de cliquer dessus. 2) Une vidéo (avec du son) pour expliciter le propos du support avec des explications complémentaires et des exemples. Possibilité de plein écran (en bas à […]

données Vins Présentation des données Vins

Les données correspondent à deux tables SAS appelées VENTES et PRODUITS. Elles décrivent le catalogue et les ventes d’un caviste. Table « PRODUITS » Composée de 750 lignes et 8 colonnes, elle présente les références du catalogue de notre caviste. REGION : la région de production du vin, avec une majuscule au début de chaque mot (Bordeaux, Languedoc Roussillon, …) ETIQUETTE : la dénomination détaillée de ce vin MILLESIME : l’année de la récolte de ce vin APPELLATION : l’appellation (AOC) […]

DATAVIZ Correction – EXERCICE N°3

Faire un TCD avec les types de taux et les destinations en lignes, et la somme des montants comme statistiques. Eliminer les sous-totaux et coller en tant que valeur le contenu du tableau dans d’autres cellules. Séparer le type de taux et la destination en 2 colonnes distinctes et faire un treemap sur cette base. La légende n’est pas nécessaire.

DATAVIZ Correction – EXERCICE N°2

Je supprime la ligne de total qui n’apporte rien. Barres côte à côte pour encourager les comparaisons. Tri des données pour que les barres soient par longueur décroissante de haut en bas, selon le % de décembre 2013, en gardant Autres en premier. Mettre la légende dans l’espace vide sous les barres. Choisir des couleurs pastel, la période la plus récente en plus foncée.

DATAVIZ Correction – EXERCICE N°1

Calculer une évolution entre 1990 et 2015 et compléter par une Sparkline courbe. Masquer les colonnes des années intermédiaires (attention à les utiliser quand même dans la Sparkline (menu Création > Modifier les données > Cellules masquées et vides… il faut cocher la case Afficher les données des lignes et colonnes masquées). Trait léger pour séparer l’en-tête du reste du tableau, alignement à droite des années, titre et source.

DATAVIZ EXERCICE N°3

A partir de l’onglet CREDIT AUX ENTREPRISES Présentez par le graphique de votre choix la répartition des montants prêtés selon le type de taux et la destination du crédit (montant = colonne C, destination = colonne F, type de taux = colonne I). Le but est de bien visualiser les types de taux associés aux plus fortes sommes et pour chaque taux, à quelles destinations ils sont associés le plus souvent.

DATAVIZ EXERCICE N°2

A partir de l’onglet STRUCTURE DU CREDIT CONSO Cet onglet inclut un graphique proposé par la Banque de France comme illustration des données. Pouvez-vous en proposer un autre qui permet de visualiser au mieux les différences de structure (répartition des types de crédits) entre les deux périodes ?

DATAVIZ EXERCICE N°1

A partir de l’onglet SURENDETTEMENT. Présentez de la manière la plus efficace possible le tableau montrant l’évolution du surendettement en France entre 1990 et 2015. L’objectif est de montrer clairement l’évolution entre ces deux périodes (2015 vs 1990).