programmation dans ch. 1. bases de r - udlrisques-environnement.universite-lyon.fr/img/pdf/r... ·...

47
Programmation dans R 2017-18 – Ch. 1. Bases de R Programmation dans Ch. 1. Bases de R M2 CEE Pr. Philippe Polomé, Université Lumière Lyon 2 2017 – 2018

Upload: others

Post on 24-Jul-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Programmation dans Ch. 1. Bases de R - UDLrisques-environnement.universite-lyon.fr/IMG/pdf/r... · Programmation dans R 2017-18 – Ch. 1. Bases de R Gestion de données Création

Programmation dans R 2017-18 – Ch. 1. Bases de R

Programmation dansCh. 1. Bases de R

M2 CEE

Pr. Philippe Polomé, Université Lumière Lyon 2

2017 – 2018

Page 2: Programmation dans Ch. 1. Bases de R - UDLrisques-environnement.universite-lyon.fr/IMG/pdf/r... · Programmation dans R 2017-18 – Ch. 1. Bases de R Gestion de données Création

Programmation dans R 2017-18 – Ch. 1. Bases de R

SWIRL

Sommaire

SWIRL

Gestion de données

R graphique

Meilleurs graphiques : ggplot2

Fonctionalités d’édition de document

Page 3: Programmation dans Ch. 1. Bases de R - UDLrisques-environnement.universite-lyon.fr/IMG/pdf/r... · Programmation dans R 2017-18 – Ch. 1. Bases de R Gestion de données Création

Programmation dans R 2017-18 – Ch. 1. Bases de R

SWIRL

SWIRL

IVous avez fait Course 1 : R programming Lessons 1-9 + 14

I On refait Lesson 1 pour voir si ça marche pour tout le mondeI pour sortir d’une lesson : escI répondez “no” aux propositions de “register”I À la suite de ...

I il faut presser -I Parfois, il s’ensuit pas mal de texte – lisez tout

ISuivre les commandes sur PR2017.R

I Avec les diapos

Page 4: Programmation dans Ch. 1. Bases de R - UDLrisques-environnement.universite-lyon.fr/IMG/pdf/r... · Programmation dans R 2017-18 – Ch. 1. Bases de R Gestion de données Création

Programmation dans R 2017-18 – Ch. 1. Bases de R

SWIRL

SWIRL R programming

IPassez maintenant à R-Studio

I Swirl R programming 1-9 + 14

1 : Basic Building Blocks 2 : Workspace and Files

3 : Sequences of Numbers 4 : Vectors

5 : Missing Values 6 : Subsetting Vectors

7 : Matrices and Data Frames 8 : Logic

9 : Functions 10 : lapply and sapply

11 : vapply and tapply 12 : Looking at Data

13 : Simulation 14 : Dates and Times

15 : Base Graphics

Page 5: Programmation dans Ch. 1. Bases de R - UDLrisques-environnement.universite-lyon.fr/IMG/pdf/r... · Programmation dans R 2017-18 – Ch. 1. Bases de R Gestion de données Création

Programmation dans R 2017-18 – Ch. 1. Bases de R

SWIRL

Quelques commandes hors SWIRL

IOn va voir quelques compléments de bases, hors SWIRL

I Suivre les commandes sur PR2017.RI

Fonctions math communes : log, exp, sign, sqrt, abs, min, max

I log(exp(sin(pi/4)^2)*exp(cos(pi/4)^2))I

Vecteurs spéciaux

I ones <- rep(1, 10)I even <- seq(from = 2, to = 20, by =2)I trend <- 1981 :2005

Idiag(4) matrice identité de taille 4

Page 6: Programmation dans Ch. 1. Bases de R - UDLrisques-environnement.universite-lyon.fr/IMG/pdf/r... · Programmation dans R 2017-18 – Ch. 1. Bases de R Gestion de données Création

Programmation dans R 2017-18 – Ch. 1. Bases de R

SWIRL

Opérations sur matricesI

A<-matrix(1 :6, nrow = 2)

I A regardez à quoi ça ressemble et comment R donne laposition des éléments

It(A) = transposée de A ( pas A’ )

Idim(A) = dimensions de A (L puis C)

Inrow(A) ; ncol(A) nbr L ; C

IA[i,j] extrait l’élément (i,j)

IA[,j] extrait C j (toutes les L) en un vecteur

I A[i,] même chose pour L iI

A1<-A[1 :2, c(1, 3)] A1 a 2 L qui contiennent les 1er et 3eme

éléments de chaque L de A

I autre façon A[,-2]

Page 7: Programmation dans Ch. 1. Bases de R - UDLrisques-environnement.universite-lyon.fr/IMG/pdf/r... · Programmation dans R 2017-18 – Ch. 1. Bases de R Gestion de données Création

Programmation dans R 2017-18 – Ch. 1. Bases de R

SWIRL

Opérations sur matrices

Idet(A1) déterminant

Ieigen(A1) eigenvalues

Ichol(A1) décomposition de Cholesky

Isolve(A1) inverse

IA %*% B produit matriciel

I A*A produit élément-par-élémentI kronecker(A, B) produit de Kronecker ⌦

Icrossprod(A, B) est un calcul efficient de A’B

Idiag(A1) extrait la diag

Page 8: Programmation dans Ch. 1. Bases de R - UDLrisques-environnement.universite-lyon.fr/IMG/pdf/r... · Programmation dans R 2017-18 – Ch. 1. Bases de R Gestion de données Création

Programmation dans R 2017-18 – Ch. 1. Bases de R

SWIRL

Opérations sur matricesI

cbind(1, A1) “combine” une C de 1 et A1

. . .

. ! . .

Irbind(A1, diag(4, 2)) “empile” A1 et une matrice diag de taille

2 avec des 4 sur la diag

. .

. .". .. .

Page 9: Programmation dans Ch. 1. Bases de R - UDLrisques-environnement.universite-lyon.fr/IMG/pdf/r... · Programmation dans R 2017-18 – Ch. 1. Bases de R Gestion de données Création

Programmation dans R 2017-18 – Ch. 1. Bases de R

Gestion de données

Sommaire

SWIRL

Gestion de données

R graphique

Meilleurs graphiques : ggplot2

Fonctionalités d’édition de document

Page 10: Programmation dans Ch. 1. Bases de R - UDLrisques-environnement.universite-lyon.fr/IMG/pdf/r... · Programmation dans R 2017-18 – Ch. 1. Bases de R Gestion de données Création

Programmation dans R 2017-18 – Ch. 1. Bases de R

Gestion de données

Dataframe

I“Frame” = cadre “contexte”

I Dans R, un “Dataframe” est une matrice de donnéesI un ensemble de vecteurs de même longueurI mis l’un à côté de l’autre horizontalement

IChaque vecteur = 1 C = 1 variable

I possiblement de nature 6=I quantitative, numérique mais qualitative, caractères, dates...

I qui contient de plus des méta-informationsI p.e. le type de variable ou le nom des catégories

IChaque L = 1 observations

IRem. Une “array” est, dans R, un objet plus général car elle

peut avoir + de 2 dimensions

Page 11: Programmation dans Ch. 1. Bases de R - UDLrisques-environnement.universite-lyon.fr/IMG/pdf/r... · Programmation dans R 2017-18 – Ch. 1. Bases de R Gestion de données Création

Programmation dans R 2017-18 – Ch. 1. Bases de R

Gestion de données

Création

IUn Dataframe peut être créé de pls façons

I clavier, lecture fichier R, importationI

Création clavier (cfr Swirl programming lesson 7)

I alternative 1I mydata <- data.frame(one = 1 :10, two = 11 :20, three =

21 :30)I alternative 2

I mydata <- as.data.frame(matrix(1 :30, ncol=3)) andnames(mydata) <- c(“one”, “two”, “three”)

I Clairement, R n’est pas le meilleur logiciel pour entrer desdonnées manuellement

Page 12: Programmation dans Ch. 1. Bases de R - UDLrisques-environnement.universite-lyon.fr/IMG/pdf/r... · Programmation dans R 2017-18 – Ch. 1. Bases de R Gestion de données Création

Programmation dans R 2017-18 – Ch. 1. Bases de R

Gestion de données

attach

ILorsqu’un dataframe est “attached”

I en utilisant la commande attach,I alors les noms des variables dans le dataframe peuvent être

utilisés dans des commandesI

Par exemple

I mean(two) produit un message d’erreurI attach(mydata) et puis mean(two) produit la moyenne de la

variable “two”I

detach(mydata) permet de détacher le Dataframe

I p.e. pour éviter des confusions sur les noms de variablesI

Pour attacher pour une seule opération

I with(mydata, mean(two))

Page 13: Programmation dans Ch. 1. Bases de R - UDLrisques-environnement.universite-lyon.fr/IMG/pdf/r... · Programmation dans R 2017-18 – Ch. 1. Bases de R Gestion de données Création

Programmation dans R 2017-18 – Ch. 1. Bases de R

Gestion de données

Sélection de sous-ensemble (subset)

IOn accède à un sous-ensemble du Dataframe par [ ou $

I $ extrait une seule varaibleI

Pour travailler avec un sous-ensemble

I on utilise [ or subsetI

mydata.sub<-subset(mydata, two<=16, select = -two)

I prend toutes les observations des variables one & threeI pour lesquelles les observations correspondantes de la two sont 16

Page 14: Programmation dans Ch. 1. Bases de R - UDLrisques-environnement.universite-lyon.fr/IMG/pdf/r... · Programmation dans R 2017-18 – Ch. 1. Bases de R Gestion de données Création

Programmation dans R 2017-18 – Ch. 1. Bases de R

Gestion de données

Exporter (write) un dataframe

Iwrite.table(mydata, file=“mydata.txt”, col.names=TRUE)

I crée un fichier texte mydata.txt dans le répertoire de travailI Les méta-informations ne passent pas

I Le format du fichier texte est

“one” “two” “three”“1” 1 11 21“2” 2 12 22...

I Rem. on dirait que les intitulés de colonnes sont décalées à GI Selon le logiciel qui servira à ouvrir, il faut parfois insérer un

espace

Page 15: Programmation dans Ch. 1. Bases de R - UDLrisques-environnement.universite-lyon.fr/IMG/pdf/r... · Programmation dans R 2017-18 – Ch. 1. Bases de R Gestion de données Création

Programmation dans R 2017-18 – Ch. 1. Bases de R

Gestion de données

Importer (read) un dataframeI

À parti d’un fichier texte (.txt ou .csv)

I newdata <- read.table(“mydata.txt”, header=TRUE)I lit un fichier texte dont la première ligne porte le nom des

variablesI qui est placé dans un “data.frame” appelé newdata

I Si les titres de col. ne sont pas décalées à GI comme si ça venait d’un tableurI R comprendra la col. avec les numéros de ligne comme une

autre variableI

read.table accepte des options

I sur le séparateur de col. (, ;)I sur le séparateur décimal (. ,)I peut lire du .csvI voir ?read.table

Page 16: Programmation dans Ch. 1. Bases de R - UDLrisques-environnement.universite-lyon.fr/IMG/pdf/r... · Programmation dans R 2017-18 – Ch. 1. Bases de R Gestion de données Création

Programmation dans R 2017-18 – Ch. 1. Bases de R

Gestion de données

Importer un dataframe

Iscan est utilisé pour des données qui ne sont pas en matrice

I ?scan pour les détailsI

Pour importer d’un autre système

I Le + facile exporter de ce système en txt ou csvI perte des méta-donnéesI rarement possible (pas accès à l’autre système)

I R-Studio propose pls formatsI Ne marche pas svt car ces logiciels changent souvent de format

I Google p.e. “R import Stata 17 data”I Voir www.statmethods.net/input/importingdata.html

I pour quelques formats

Page 17: Programmation dans Ch. 1. Bases de R - UDLrisques-environnement.universite-lyon.fr/IMG/pdf/r... · Programmation dans R 2017-18 – Ch. 1. Bases de R Gestion de données Création

Programmation dans R 2017-18 – Ch. 1. Bases de R

Gestion de données

Un peu de pratique : “Journals”

IExemple, les données JOURNALS :

Isouscriptions à des journaux d’économie pour quelques

bibliothèques aux USA en 2000

I 180 observations (les journals) sur 10 variables, entre autres :I subs (# of library subscriptions),I price (subscription price),I citations (total number of cites per journal)

IOn étudie la relation entre le nbr de souscriptions et le prix par

citation

I La citation reflétant l’importance du journalI Donc l’intérêt pour une bibliothèque

Page 18: Programmation dans Ch. 1. Bases de R - UDLrisques-environnement.universite-lyon.fr/IMG/pdf/r... · Programmation dans R 2017-18 – Ch. 1. Bases de R Gestion de données Création

Programmation dans R 2017-18 – Ch. 1. Bases de R

Gestion de données

Un peu de pratique : “Journals”I

data("Journals", package = "AER")

I Journals$citeprice <- Journals$price/Journals$citationsI “ / “ est une division élément par élément pour des vecteurs

Iattach(Journals)

I “attacher” pour utiliser dans les formulesI

Calculez l’estimateur MCO de la régression de log(subs) sur

log(price/citations)

I et ses t-statsI au moyen des formules de mtx

I Difficulté car �̂2 est perçu comme une matrice 1⇥ 1 non

conformable avec⇣X

0X⌘�1

I Pls solutions p.e. ⌦ produit KroneckerI Résultats : 85 et -15 environ ?

Idetach(Journals)

I “détacher” pour éviter des confusions de nom

Page 19: Programmation dans Ch. 1. Bases de R - UDLrisques-environnement.universite-lyon.fr/IMG/pdf/r... · Programmation dans R 2017-18 – Ch. 1. Bases de R Gestion de données Création

Programmation dans R 2017-18 – Ch. 1. Bases de R

R graphique

Sommaire

SWIRL

Gestion de données

R graphique

Meilleurs graphiques : ggplot2

Fonctionalités d’édition de document

Page 20: Programmation dans Ch. 1. Bases de R - UDLrisques-environnement.universite-lyon.fr/IMG/pdf/r... · Programmation dans R 2017-18 – Ch. 1. Bases de R Gestion de données Création

Programmation dans R 2017-18 – Ch. 1. Bases de R

R graphique

PlotI

D’abord SWIRL

I course R-programming, lesson 15 Base graphicsI

Quelques éléments graphiques supplémentaires

I Sur base du package plot

I Packages lattice ggplot2 plus sophistiquésI http ://varianceexplai-

ned.org/RData/code/code_lesson2/#segment1I R est considéré comme ayant de très bons graphiques

I Mais pas très aisésI

La commande plot ( )

I plot( ) est la commande par défaut pour représentergraphiquement beaucoup d’objets :

I dataframes, séries temp, modèles linéaires ajustésI C’est aussi une vielle commande, assez rustique

Page 21: Programmation dans Ch. 1. Bases de R - UDLrisques-environnement.universite-lyon.fr/IMG/pdf/r... · Programmation dans R 2017-18 – Ch. 1. Bases de R Gestion de données Création

Programmation dans R 2017-18 – Ch. 1. Bases de R

R graphique

“Scatterplots” - graphiques de dispersion ou XY

IProbablement les + communs en économétrie

Iattach(Journals)

I plot(log(subs), log(citeprice))I rug(log(subs))

I rug(log(citeprice), side=2)I rug = “tapis” – sert à créer les graduations sur les axes

Idetach(Journals)

Iplot(log(subs)~log(citeprice), data=Journals)

I alternative pour éviter d’avoir à attacher le dataframe

Page 22: Programmation dans Ch. 1. Bases de R - UDLrisques-environnement.universite-lyon.fr/IMG/pdf/r... · Programmation dans R 2017-18 – Ch. 1. Bases de R Gestion de données Création

Programmation dans R 2017-18 – Ch. 1. Bases de R

R graphique

R Paramètres Graphiques

ILes résultats d’un plot peuvent être modifiés de nombreuses

façons

I P.e. argument type contrôle si le plot génère des points (type= p), lignes (type = l), les 2 (type = b), des pas (type = s) oud’autres

IPls douzaines de paramètres modifiables sont disponibles

I Voir ?parI Soit en les fixant avec par( ) après une commande plotI Soit en les fournissant à dans la fonction plot( ) p.e.

plot(log(subs)~log(citeprice), data=Journals, pch=20,col="blue", ylim=c(0,8), xlim=c(-7,4), main="LibrarySubscriptions")

IProchaine diapo : liste de par

Page 23: Programmation dans Ch. 1. Bases de R - UDLrisques-environnement.universite-lyon.fr/IMG/pdf/r... · Programmation dans R 2017-18 – Ch. 1. Bases de R Gestion de données Création

R Paramètres GraphiquesArgument Description

axes should axes be drawn ?

bg background color

cex size of a point or symbol

col color

las orientation of axis label

lty, lwd line type and line width

main, subs main title and subtitle

mar size of margins

mfcol, mfrow array defining layout for several graphs on one plot

pch plotting symbol

type types

xlab, ylab axis labels

xlim, ylim axis ranges

xlog, ylog, log logarithmic scales

Page 24: Programmation dans Ch. 1. Bases de R - UDLrisques-environnement.universite-lyon.fr/IMG/pdf/r... · Programmation dans R 2017-18 – Ch. 1. Bases de R Gestion de données Création

Programmation dans R 2017-18 – Ch. 1. Bases de R

R graphique

R Paramètres Graphiques

IAjouter des couches à un plot : lines( ), points( ), text( ),

legend( )

I Ajouter 1 droite abline(a, b)I a est intercept, b pente

I2 plots l’un sur l’autre

I x <- rnorm(50)I x2 <- rnorm(50, -1)I plot(ecdf(x), xlim = range(c(x, x2)))

I ecdf empirical cumulative density functionI plot(ecdf(x2), add = TRUE, lty = "dashed")

IBarplots, pie charts, boxplots, QQ plots & histograms

I barplot( ), pie( ), boxplot( ), qqplot( ), hist( )I On y reviendra

Page 25: Programmation dans Ch. 1. Bases de R - UDLrisques-environnement.universite-lyon.fr/IMG/pdf/r... · Programmation dans R 2017-18 – Ch. 1. Bases de R Gestion de données Création

Programmation dans R 2017-18 – Ch. 1. Bases de R

R graphique

Exporter des graphiquesI

Pour utiliser les graphiques R dans d’autres logiciels

I il faut les exporterI

Le + simple : bouton “Export” Plots window

IR peut aussi envoyer le graphe sur un “device”

I Au fond : une extension de fichier pdf ou jpgI Tous les devices fonctionnent pareil dans RI Voir ?devices

1. le device est ouvert par une fonction qui porte son nom, p.e.pdf( )

2. Ensuite, le plot est exécuté3. Finalement, le device est fermé dev.off( )I Exemple

I pdf("myfile.pdf", height=5, width=6)I plot(1 :20, pch=1 :20, col=1 :20, cex=2)I dev.off()I Cherchez myfile.pdf sur votre machine

Page 26: Programmation dans Ch. 1. Bases de R - UDLrisques-environnement.universite-lyon.fr/IMG/pdf/r... · Programmation dans R 2017-18 – Ch. 1. Bases de R Gestion de données Création

Programmation dans R 2017-18 – Ch. 1. Bases de R

R graphique

Formules math dans un Plot

IR peut passer une formule dans un plot via L

AT

E

X

I Voir ?plotmathI

Exemple

I plot de la densité normale std avec sa définition mathI curve(dnorm, from=-5, to=5, col="slategray", lwd=3,

main="Density of the Standard Normal Distribution")I text(-5, 0.3, expression(f(x) == frac(1, sigma ~~ sqrt(2*pi))

~~ e^{-frac((x - mu)^2, 2*sigma^2)}), adj=0)I Malheureusement, il faut connaitre LATEXI & les paramètres ne sont pas faciles

Page 27: Programmation dans Ch. 1. Bases de R - UDLrisques-environnement.universite-lyon.fr/IMG/pdf/r... · Programmation dans R 2017-18 – Ch. 1. Bases de R Gestion de données Création

Programmation dans R 2017-18 – Ch. 1. Bases de R

R graphique

Histogrammes & boxplots

Idata("CPS1985")

I jeu de données sur le salaire & ses déterminantsI

summary(CPS1985)

I révèle que certaines variables sont catégoriquesI Catégoriques : appelées factors par R

IFactors = vecteurs de “noms” appelés catégorie

I parfois avec metadata p.e. noms des catégoriesI g <- rep(0 :1, c(2,4))I g <- factor(g, levels=0 :1, labels=c("male", "female"))

I Nomme cat. (0,1) de g en “Male”(=0) & “Female”I donc g est [1] male male female female female female

Page 28: Programmation dans Ch. 1. Bases de R - UDLrisques-environnement.universite-lyon.fr/IMG/pdf/r... · Programmation dans R 2017-18 – Ch. 1. Bases de R Gestion de données Création

Programmation dans R 2017-18 – Ch. 1. Bases de R

R graphique

6 Factors dans CPS1985

IFactors sont comptés (fréquences)

I car la moyenne ne signifie rienI

levels(CPS1985$occupation)[c(2,6)] <- c("techn", "mgmt")

I abrège 2 noms d’occupationI

attach(CPS1985)

I permet d’accéder aux variables de CPS1985 par leurs nomsI

On va voir des graphes selon la nature des données

I Numérique ou cat.I 1 seule variable ou 2 en relation

Page 29: Programmation dans Ch. 1. Bases de R - UDLrisques-environnement.universite-lyon.fr/IMG/pdf/r... · Programmation dans R 2017-18 – Ch. 1. Bases de R Gestion de données Création

Programmation dans R 2017-18 – Ch. 1. Bases de R

R graphique

Une variable numérique : histogramme & densitéI

hist(wage, freq=FALSE)

I option freq=FALSEI fréquences relatives, sinon absolues (comptage)

I option binwidth=xI permet de choisir la longueur des bases

Ihist(log(wage), freq=FALSE)

Ilines(density(log(wage)), col=4)

I La fonction density calcule un histogramme lissé (voir coursnp)

IRemarque

I La distribution du log est moins asymétrique que celle desdonnées brutes

I Les données en log sont svt + proches d’une normale

Page 30: Programmation dans Ch. 1. Bases de R - UDLrisques-environnement.universite-lyon.fr/IMG/pdf/r... · Programmation dans R 2017-18 – Ch. 1. Bases de R Gestion de données Création

Programmation dans R 2017-18 – Ch. 1. Bases de R

R graphique

Une catégorique

ILa moyenne & la variance ne signifient rien

I mais bien les fréquencesI

summary(occupation) : fréquences absolues (comptes)

Itab <- table(occupation) : stocke ces fréq. ds une table

Iprop.table(tab) calcule les proportions (fréq. relatives)

IBarplots & pie visualisent souvent bien les données cat.

I barplot(tab)I pie(tab)

Page 31: Programmation dans Ch. 1. Bases de R - UDLrisques-environnement.universite-lyon.fr/IMG/pdf/r... · Programmation dans R 2017-18 – Ch. 1. Bases de R Gestion de données Création

Programmation dans R 2017-18 – Ch. 1. Bases de R

R graphique

2 catégoriques

IHabituellement présentées ds une Table de Contingence

I xtabs( ) avec une interface formule :I p.e. xtabs(~ gender + occupation, data = CPS1985)I data= optionel car on a attaché

I table(gender, occupation) mêmes résultatsI

Plot de ça est un “spine plot”

I plot(gender ~ occupation)I plot(gender, occupation) regardez les différences

Page 32: Programmation dans Ch. 1. Bases de R - UDLrisques-environnement.universite-lyon.fr/IMG/pdf/r... · Programmation dans R 2017-18 – Ch. 1. Bases de R Gestion de données Création

Programmation dans R 2017-18 – Ch. 1. Bases de R

R graphique

2 numériques

ICoefficient de corrélation r est typique

I Variables positives & asymétriques : Spearman’s ⇢I corrélation des ranks, au lieu des valeurs est souvent préféré

car r n’est pas robuste à l’asymétrie

Icor(log(wage), education)

Icor(log(wage), education, method="spearman")

I Résultats semblables pour ces donnéesI

plot(log(wage)~education)

I Le scatterplot montre peu de corrélation

Page 33: Programmation dans Ch. 1. Bases de R - UDLrisques-environnement.universite-lyon.fr/IMG/pdf/r... · Programmation dans R 2017-18 – Ch. 1. Bases de R Gestion de données Création

Programmation dans R 2017-18 – Ch. 1. Bases de R

R graphique

1 numérique & 1 catégorique

ISouvent, on calcule des moments conditionnels

I p.e. salaire moyen selon le sexeI tapply(log(wage), gender, mean)

I “Appliquer” mean sur les 2 variables gender & log(wage)I Mean peut être remplacé par n’importe quelle fonction valide

ILes Box plots & QQ (quantile-quantile) plots sont souvent

utilisés

Page 34: Programmation dans Ch. 1. Bases de R - UDLrisques-environnement.universite-lyon.fr/IMG/pdf/r... · Programmation dans R 2017-18 – Ch. 1. Bases de R Gestion de données Création

Programmation dans R 2017-18 – Ch. 1. Bases de R

R graphique

1 numérique & 1 catégorique : Box plot

IUn box plot est une représentation grossière d’une distribution

empirique

I Le box est limité par des “charnières” (1º & 3º quartiles) etmontre la médiane

I Hors du box, 2 lignes indiquent les obs. les + petites & +grandes

I à moins de 1.5 ⇥ taille du box à partir de la charnière la +proche

I Toute obs. au-delà est représentées séparément par un pointI

boxplot(log(wage)~gender)

Page 35: Programmation dans Ch. 1. Bases de R - UDLrisques-environnement.universite-lyon.fr/IMG/pdf/r... · Programmation dans R 2017-18 – Ch. 1. Bases de R Gestion de données Création

Programmation dans R 2017-18 – Ch. 1. Bases de R

R graphique

1 numérique & 1 catégorique : QQ plotI

Un QQ plot apareille les quantiles de 2 distributions

I Se rappeler que les quantiles sont des quantitésI p.e. le 1º quartile du salaire féminin est le salaire t.q 25% des

femmes gagnent moins & 75% +I Si les 2 distributions sont identiques

I le QQ plot est la diagonaleI Sinon, si p.e. les hommes tendent à gagner + que les femmes,

alorsI avec les hommes sur l’axe des x, le QQ plot sera sous la diag.I Évoque le graphe du coefficient de Gini

I mwage <- subset(CPS1985, gender == "male")$wageI fwage <- subset(CPS1985, gender == "female")$wageI qqplot(mwage, fwage)I abline(0,1)

Idetach(CPS1985) pour refermer CPS1985

Page 36: Programmation dans Ch. 1. Bases de R - UDLrisques-environnement.universite-lyon.fr/IMG/pdf/r... · Programmation dans R 2017-18 – Ch. 1. Bases de R Gestion de données Création

Programmation dans R 2017-18 – Ch. 1. Bases de R

R graphique

Meilleurs graphiques : ggplot2

Sommaire

SWIRL

Gestion de données

R graphique

Meilleurs graphiques : ggplot2

Fonctionalités d’édition de document

Page 37: Programmation dans Ch. 1. Bases de R - UDLrisques-environnement.universite-lyon.fr/IMG/pdf/r... · Programmation dans R 2017-18 – Ch. 1. Bases de R Gestion de données Création

Programmation dans R 2017-18 – Ch. 1. Bases de R

R graphique

Meilleurs graphiques : ggplot2

Intro

Installez & chargez ggplot2

ggplot2 a des données intégrées

Idata("diamonds")

IView(diamonds)

I Carat = poids, cut, color, clarity, prixI Toutes des mesures du diamant

I Autres attributs : help(diamonds)I

Scatterplot : représenter les liens entre ces caractéristiques

I On peut choisir les axes, mais aussiI couleur, taille & forme des points

Page 38: Programmation dans Ch. 1. Bases de R - UDLrisques-environnement.universite-lyon.fr/IMG/pdf/r... · Programmation dans R 2017-18 – Ch. 1. Bases de R Gestion de données Création

Programmation dans R 2017-18 – Ch. 1. Bases de R

R graphique

Meilleurs graphiques : ggplot2

1º pas

Iggplot(diamonds, aes(x=carat, y=price)) + geom_point()

I Comment marche cette cmd ?I

3 parts ds 1 cmd ggplot

1. data, on écrit "diamonds"2. Organisation des attributs

I aes = “aesthetics”I aesthetics = toute dimension d’un graphe qu’on peut

percevoir visuellementI On utilise des parenthèses

3. On rajoute une “couche” (layer)I Ici, on indique qu’on veut un scatter plot avec “geom_point”I Bcp de couches ont un nom qui commence par "geom"

Page 39: Programmation dans Ch. 1. Bases de R - UDLrisques-environnement.universite-lyon.fr/IMG/pdf/r... · Programmation dans R 2017-18 – Ch. 1. Bases de R Gestion de données Création

Programmation dans R 2017-18 – Ch. 1. Bases de R

R graphique

Meilleurs graphiques : ggplot2

Ajouter la couleur

Iggplot(diamonds, aes(x=carat, y=price, color=clarity)) +

geom_point()

I On rajoute un “aesthetics”, ici la couleurI Qu’on associe au factor “clarity”

I Remarquez que ggplot a créé une légende en couleurI Essayer avec d’autres factors : regardez dans le fichier de

donnéesI

Pour représenter à la fois color & cut

I on rajoute simplement un aestheticI qui peut être la taille du point : size

I Faites-leI Au lieu de “size”, on peut aussi utiliser “shape”

Page 40: Programmation dans Ch. 1. Bases de R - UDLrisques-environnement.universite-lyon.fr/IMG/pdf/r... · Programmation dans R 2017-18 – Ch. 1. Bases de R Gestion de données Création

Programmation dans R 2017-18 – Ch. 1. Bases de R

R graphique

Meilleurs graphiques : ggplot2

Couche supplémentaireI

Le scatter plot est un "layer"

I On peut en rajouter avec le signe +I p.e. une courbe lissée pour la tendance générale :

geom_smoothI En repartant du 1º plot

I ggplot(diamonds, aes(x=carat, y=price)) + geom_point() +geom_smooth()

I La zone grise autour de la courbe est un intervalle de confiance

I On peut l’enlever avec l’option geom_smooth : "se=FALSE"I On peut aussi mettre une ligne de régression simple avec

l’option method="lm"I ln pour “linear model”I refaites la cmd avec les 2 options

ISi on utilise en plus l’aesthetic “color”

I ggplot va estimer une courbe lisse pour chaque couleurI Allez-yI Si vous enlevez geom_point, vous ne verrez que les courbes

Page 41: Programmation dans Ch. 1. Bases de R - UDLrisques-environnement.universite-lyon.fr/IMG/pdf/r... · Programmation dans R 2017-18 – Ch. 1. Bases de R Gestion de données Création

Programmation dans R 2017-18 – Ch. 1. Bases de R

R graphique

Meilleurs graphiques : ggplot2

Faceting : plot multipleI

Une autre façon de communiquer l’information sur un attribut

factor

I Diviser le plot en multiples plotsI un pour chaque niveau du factor (pas trop de niveaux)

I On appelle ça "faceting"I ggplot : couche "facet_wrap"

I P.e. faceting sur “clarity” sur des plots (carat, price, cut)I ggplot(diamonds, aes(x=carat, y=price, color=cut)) +

geom_point() + facet_wrap(~ clarity)I On peut rajouter une dimension de faceting avec p.e.

facet_wrap(cut~ clarity)I Mais ça n’est plus très clair

IOn peut rajouter un titre avec + ggtitle("My scatter plot")

I changer la légende de x + xlab("Weight (carats)")I Limiter la longueur des axes, mettre en log...

Page 42: Programmation dans Ch. 1. Bases de R - UDLrisques-environnement.universite-lyon.fr/IMG/pdf/r... · Programmation dans R 2017-18 – Ch. 1. Bases de R Gestion de données Création

Programmation dans R 2017-18 – Ch. 1. Bases de R

R graphique

Meilleurs graphiques : ggplot2

Histogrammes & Densités

IHistogramme : on ne regarde qu’un seul attribut

I ggplot(diamonds, aes(x=price)) + geom_histogram()I Il suffit de changer + geom_point() en + geom_histogram()I R renvoie un signal sur “binwidth” = taille de la base du

rectangleI Défaut = 30I On peut changer, p.e.

ggplot(diamonds, aes(x=price)) +geom_histogram(binwidth=2000)

IOn peut faire à peu près la même chose qu’avec un scatterplot

ISi on écrit geom_density au lieu de geom_histogram

I on a une densité lissée au lieu d’un histogrammeI Comment calculer cette densité n’est pas évident

Page 43: Programmation dans Ch. 1. Bases de R - UDLrisques-environnement.universite-lyon.fr/IMG/pdf/r... · Programmation dans R 2017-18 – Ch. 1. Bases de R Gestion de données Création

Programmation dans R 2017-18 – Ch. 1. Bases de R

R graphique

Meilleurs graphiques : ggplot2

Boxplot & Violons

IBoxplot du prix selon les niveaux de couleur

I ggplot(diamonds, aes(x=color, y=price)) + geom_boxplot()I Il y a bcp d’outliers

I En rajoutant + scale_y_log10() on les voit moinsI

Si la distribution empirique ne suit pas ± une normale

I Le box plot est pas terribleI p.e. si on a 2 modes

IUne image possiblement + fidèles est le “violin”

I On remplace geom_boxplot() par geom_violin()I Pas super clair si on ne passe pas aux logI La largeur en chaque prix est la fréquence de ce prix

Page 44: Programmation dans Ch. 1. Bases de R - UDLrisques-environnement.universite-lyon.fr/IMG/pdf/r... · Programmation dans R 2017-18 – Ch. 1. Bases de R Gestion de données Création

Devoir 1I

PARADE

I Supplément du dimanche de 500 quotidiens USI Tous les ans, un échantillon de 120-150 citoyens sélectionnés

“aléatoirement”I variables : profession, hometown, state & yearly earnings.

I dataframe PARADE2005 contient la version 2005 versionI avec une dichotomique “celebrity status” fortement

sur-échantillonnéI

Devoir 1

I Earning moyen en Californie, discuterI Nombre d’échantillonnés en Idaho

I Qu’en dire sur l’échantillon ?I Earning

I moyen & médian des célébrités, commenterI Fréquence & densitéI Boxplot selon statut célébritéI Répéter avec log

I Trouver un autre jeu de données sur lequel vous adapterezl’analyse exploratoire ci-dessus

Page 45: Programmation dans Ch. 1. Bases de R - UDLrisques-environnement.universite-lyon.fr/IMG/pdf/r... · Programmation dans R 2017-18 – Ch. 1. Bases de R Gestion de données Création

Programmation dans R 2017-18 – Ch. 1. Bases de R

Fonctionalités d’édition de document

Sommaire

SWIRL

Gestion de données

R graphique

Meilleurs graphiques : ggplot2

Fonctionalités d’édition de document

Page 46: Programmation dans Ch. 1. Bases de R - UDLrisques-environnement.universite-lyon.fr/IMG/pdf/r... · Programmation dans R 2017-18 – Ch. 1. Bases de R Gestion de données Création

Programmation dans R 2017-18 – Ch. 1. Bases de R

Fonctionalités d’édition de document

SWeave – Knitr – Markdown

IQuelques packages servent à connecter R avec des éditeurs

I “literate programming”1. On écrit le texte y compris formules en latex & commandes R

(graphiques, régressions...)2. Si les données changent, ou bien le modèle économétrique,

tout est ajusté automatiquement3. LATEXpermet de choisir un format approprié : rapport, article,

présentation & d’avoir des math bien écrites

ISWeave permet d’envoyer tout le script dans L

AT

E

X

Iknitr fait la même chose, mais combine d’autres packages et

résoud quelques problèmes de SWeave

IMarkdown convertit du texte simple en html (p.e. SPIP)

Page 47: Programmation dans Ch. 1. Bases de R - UDLrisques-environnement.universite-lyon.fr/IMG/pdf/r... · Programmation dans R 2017-18 – Ch. 1. Bases de R Gestion de données Création

Programmation dans R 2017-18 – Ch. 1. Bases de R

Fonctionalités d’édition de document

Markdown

IMarkdown dans R-Studio pour convertir un document texte

avec des instructions R-Studio en divers formats

I HTML, PDF, MS Word, LATEX, diapo...I

Auto-apprentissage

I http ://rmarkdown.rstudio.com/lesson-1.htmlI selon votre processeur

I Je ne poursuis pasI

“Compile notebook” (bouton ds éditeur)

I permet de tester en html, pdf & wordI http ://rmarkdown.rstudio.com/r_notebook_format.html