SlideShare une entreprise Scribd logo
1  sur  87
Introduction au logiciel
R
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 1
Objectifs
 Comprendre pour quoi R est une compétence demandée pour un profil Data Scientist
 Connaître les structure de données et les fonctionnalités de base du logiciel R
 Avoir une connaissance plus approfondie sur la structure de données data.frame, à la base
de l’analyse de données
 Savoir effectuer de la manipulation de données avec un package spécialisé: dplyr
 Savoir faire de la statistique descriptive
 Savoir afficher des graphique utiles à l’exploration de données avec un package spécialisé:
ggplot2
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 2
Sommaire
• Le logiciel R, pour quoi R ?
• Installation
• Fichiers et dossiers
• Opérations mathématiques et logiques
• Déclaration de variables
• Structures de données:
• vector, list,
• data.frame, matrix, array
• Import /Export de données
•Visualisation de données et de métadonnées
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 3
• Manipulation et sélection de données
• package dplyr
• model.matrix()
• données tidy
• Fonctions mathématiques
• Fonctions statistiques, distributions
• moyenne, médiane, variance, écart-type
• symétrie, boîte à moustaches
• histogramme, fonction de densité
• loi normale, théorème de limite centrale
• loi binomiale
• hypothèse statistique
• Fonctions graphiques, package ggplot2
Le logiciel R
• logiciel de statistique, gratuit et à code source ouvert (open source)
• langage informatique
• environnement de travail
• orientée objet
• syntaxe proche de C
• multiplateforme (Linux, Windows, Mac)
• système de documentation intégrée
• fonctions de traitement de données et capacité de stockage de données
• vaste et cohérente collection de procédures statistiques et de librairies de machine learning
• capacités graphiques évoluées
• peut s’interfacer avec un éventail de sources et de bases de données (SGBDR, NoSQL, URL, …)
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 4
Pour quoi R ?
• Approche pédagogique
• maîtrise des méthodes statistiques pour parvenir à les mettre en œuvre
• création de ses propre outils ou « produits de données » avec des analyses très sophistiquées et
customisées sur les données
• Compétence demandée pour les profils Data Scientist
• Adaptations réussies et toujours en cours avec le Big Data (cluster de machines)
• RHadoop
• SparkR (API R de Spark)
• Microsoft Azure Machine Learning (AML)
• Microsoft R Services: R Open, DistributedR, ScaleR, ConnectR, DevelopR, DeployR
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 5
Installation
• R est disponible à l’URL suivante : https://cran.r-project.org/
• Linux: utilisez le gestionnaire de packages habituel plutôt que d’installer à partir du site CRAN (Ubuntu
[Synaptic], dpkg [Debian], pkg [Mac OS X], RPM [Red Hat]...)
• Windows: préférez la version 64-bits, sinon 32-bits mais pas les deux
• Rstudio est disponible à l’URL suivante : : https://www.rstudio.com/products/RStudio/
• télécharger RStudio Desktop (pas Server)
• support Windows, Mac, and Linux
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 6
Rstudio avec R déjà installé
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 7
Fichiers et dossiers
• Afficher le environnement de travail courant (working directory)
• Afficher les objets de l’espace de travail locale (local workspace)
• Fonctions de gestion de fichiers et de dossiers
• Elles peuvent s’exécuter également dans RStudio
• Documentation toujours accessible: ?file.info
• Windows: le backslash « » ne marche pas, utilisez « / »
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 8
Ryan G., R Essentials Refcard #232, DZone
Opérations arithmétiques et logiques
• Calculatrice, essayez !
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 9
Lafaye et al., Le logiciel R, ISBN 9782817801148, Springer, 2012
Déclaration de variables
• a <- 12; b <- 0.6; c <- 1+2i; d <- NA; e <- FALSE; f <- "abc"
• L’égalité a = 12 marche aussi; utilisation de "<-" bien répandue dans la communauté
• Types
• numeric: integer, double
• complex
• logical
• NA (logical)
• character
• raw (binaire)
• Différences entre typeof() et class() … et mode()
• Conversions avec as.integer("3.4"), as.character(2.3), as.raw(10), …
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 10
donnée manquante
Structures de données
• vector
• list
• data.frame
• matrix
• array (matrices multidimensionnelles)
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 11
Structures de données: vector
• Une suite de données de même type
• Création avec
• la fonction c()
• la fonction seq(from=, to=, by=)
• les deux points ":"
• Si plusieurs types différents alors R opère une conversion
implicite vers le type le plus général
• Opérations
• c(1,2,3) + c(2,1,2)
• c(1,2,3) * c(2,1,2)
• c(1,2,3) * c(2,2) … oops
• c(1,2,3,4) * c(2,2)
• Accès
• x <- c(1,2,58,5); a[1]; a[1:3]; a[1,c(3:4)]
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 12
Ryan G., R Essentials Refcard #232, DZone
Structures de données: list
• La plus souple et la plus riche
• Regroupe dans une même structure des types différents
• A <- list(2.5, c(1:5), "toto")
• A[[1]]; A[2:3]
• B <- list(nom="dupont",
notes=c(10,15,18))
• A <- setNames(object = A, c("x1", "x2", "x3"))
• Vous pouvez ajouter vos modèles afin d’effectuer de comparaisons par exemple
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 13
Structures de données: data.frame
• Tableau d’individus ou observations x variables
• imc <- data.frame(sexe=c("H", "F", "F", "H"),
taille=c(1.83,1.76,1.60,1.78),
poids=c(67, 58, 48, 66),
row.names=c("Guy", "Lola", "Cécile", "Franck"))
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 14
Structures de données: data.frame
• Organiser les chaînes de caractères avec factor() et ordered()
• imc$classe <- factor(c("A", "B", "A", "B"), levels=c("A", "B"))
• imc$taillec <- ordered(c("Grand", "Grand", "Petit", "Grand"),
levels=c("Petit", "Moyen", "Grand"))
• Essayez imc[order(imc$taillec),]; imc[order(imc$taillec, imc$poids),]
• Concaténation de lignes et de colonnes: rbind(), cbind()
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 15
visualisation de méta-données, on verra plus loin …
Structures de données: data.frame
• Afficher le nombre d’observations et le nombre de variables; afficher les noms des variables
• Afficher l’observation « Lola » avec les valeurs de toutes les variables
• Afficher la 3e observation avec les valeurs de toutes les variables
• Afficher la 3e observation avec les valeurs de la 1ère et 3e variables
• Afficher la valeur de « poids » pour la dernières observation
• Afficher les deux dernières observations avec les valeurs de toutes les variables
• Afficher les valeurs la 3e variable pour toutes les observations, 2 solutions au moins
• quelle est le type du résultat retourné ?
• Afficher les valeurs de la 1ère et 3e variables pour toutes les observations, 2 solutions au moins
• quelle est le type du résultat retourné ?
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 16
Structures de données: matrix
• Généralisation de la notion de vecteur: suite à 2 indices, dimension = 2
• Les éléments doivent avoir le même type
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 17
Structures de données: matrix
• Afficher les dimensions de la matrice
• Afficher uniquement le nombre de lignes
• Afficher uniquement le nombre de colonnes
• Afficher les valeurs d’une ligne quelconque;
idem pour une colonne quelconque
• rowSums(X)
• colSums(X)
• rowMeans(X)
• colMeans(X)
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 18
Opérations matricielles
Chiquet J., Commandes usuelles de R
Structures de données: array
• Généralisation de la notion de vecteur: suite à multiples indices, dimension = n > 2
• Une matrix est un array de dimension 2
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 19
3 dimensions
3 dimensions
Import / Export de données
• RStudio
• Import Dataset ou Text File …
• Import Web URL
• Les fonctions d’import
• read.table
• read.csv
• read.delim
• read.csv2
• read.delim2
• scan
• Import de fichiers Excel et SAS
• packages gdata et gremisc pour Excel
• package foreign pour SAS
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 20
• La fonction d’export
• write.table
Import / Export de données
• RStudio: Import Dataset
• exécution d’un read.delim()
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 21
Import / Export de données
• RStudio: Import Web URL
• exécution d’un read.table()après téléchargement du fichier
• Alternative avec le package repmis
>myurl <- paste0("https://dl.dropboxusercontent.com/u/187053213/ds/knn/knn_fraude_data.txt")
>fraude_data <- repmis::source_data(myurl, sep = " ", header = TRUE)
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 22
trying URL 'https://dl.dropboxusercontent.com/u/187053213/ds/knn/knn_fraude_data.txt'
Content type 'text/plain; charset=utf-8' length 236 bytes
downloaded 236 bytes
> knn_fraude_data <- read.table("C:UsersuserAppDataLocalTempRtmpiMhs4rdata306824ad7c05", header=TRUE, quote=""")
Import / Export de données
• La fonction read.table
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 23
nom de fichier, chemin absolue entouré par " " ou des ' '
peut être un accès distant: URL(http://...)
inclure ou pas les noms des variables
séparateur: " " ou "t" ou ";" ou …
contrôle la conversion de chaines de caractères e facteurs (FALSE) ou les conserve (TRUE)
remplace les valeurs manquantes par la chaîne de caractères spécifiée
vecteur spécifiant les noms des observations ou lignes
nombre maximum de lignes à lire
si séparateur spécifié, alors les espaces blancs avant et après les chaînes
de caractères seront considérées comme faisant partie de la chaîne de
caractères. Pour éviter cela, on met à TRUE.
Import / Export de données
• On peut utiliser indifféremment les fonctions
suivantes si l’on modifie les valeurs par
défaut de sep et dec:
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 24
Niang Keita D., CNAM Module STA115 - Outils informatique de la statistique
Import / Export de données
• Import fichier Excel avec la package gdata
• le fichier fichier.xls a été placé dans le répertoire C:Program FilesRR.2.2.1librarygdataxls
xlsfile <- file.path(.path.package('gdata'), 'xls', 'fichier.xls')
donnees <- read.xls(xlsfile)
• on a créé un répertoire « rep » dans C:Program FilesRR.2.2.1librarygdata où on place le fichier
xlsfile <- file.path(.path.package('gdata'), 'rep', 'fichier.xls')
donnees <- read.xls(xlsfile)
• Import fichier SAS avec la package foreign
sasfilehome = "C:/Users/user/Dropbox/MySAS/Cours SAS"
sasexehome = "C:/Program Files/SASHome/x86/SASFoundation/9.3"
G=read.ssd(file.path(sasfilehome),"paysniv3",sascmd=file.path(sasexehome,"sas.exe"))
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 25
Import / Export de données
• Export d’objet (data.frame, vector, matrix, …) en fichier
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 26
Traitement des guillemets doubles incluses dans les
chaînes de caractères; si quote=TRUE:
• si « escape » chaque " est remplacé par "
• si « double » chaque " est remplacé par ""
si TRUE, les variables de mode caractère et les
facteurs sont écrits entre ""
nom du fichier en spécifiant le chemin absolue
"C:/../../fichier.txt"
Visualisation de données et de
métadonnées
•
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 27
Ryan G., R Essentials Refcard #232, DZone
Manipulation et sélection de données
• Fonctions de base
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 28
Chiquet J., Commandes usuelles de R
Manipulation et sélection de données:
package dplyr
• install.packages("dplyr")
• Sélection de colonnes select()
• Nouvelles colonnes mutate()
• Filtrage des observations filter()
• Trie des observations arrange()
• Summarise summarise()
• Agrégation group_by()
• Jointures inner_join(), left_join(),
right_join(), full_join(),
semi_join(), anti_join()
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 29
Manipulation et sélection de données:
package dplyr
hflights %>%
filter(Dest == "DFW", DepTime < 800) %>%
arrange(desc(AirTime))
hflights %>%
group_by(UniqueCarrier) %>%
summarise(n_flights = n(),
n_canc = sum(Cancelled == 1),
p_canc = mean(Cancelled == 1) * 100,
avg_delay = mean(ArrDelay, na.rm = TRUE)) %>%
arrange(avg_delay, p_canc)
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 30
Manipulation et sélection de données:
fonction model.matrix()
• as.data.frame(model.matrix(object = ~ ., data = Credit ))
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 31
Manipulation et sélection de données:
package tidy
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 32
• package« tidy » (tidy data)
Fonctions mathématiques
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 33
Chiquet J., Commandes usuelles de R
Fonctions statistiques et distributions
Les résumés numériques
• La fonction summary()
• La fonction stat.desc()
• package « pastecs »
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 34
Les résumés numériques
• stat.desc(iris[,1:4], basic = TRUE, desc = TRUE, norm = TRUE, p = 0.95)
1. nb d’observations
2. nb de valeurs NULL
3. nb de valeurs NA
4. minimum
5. maximum
6. différence entre max et min
7. somme des valeurs non manquantes
8. médiane
9. moyenne
10. écart-type de la moyenne
11. intervalle de confiance de la moyenne (p)
12. variance
13. écart-type
14. coefficient de variation
15. coefficient de symétrie
16. et son critère de significativité
17. coefficient de concentration
18. et son critère de significativité
19. statistique test de normalité Shapiro-Wilk
20. et sa probabilité associée
Fonctions statistiques et distributions
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 35
•b
Médiane et moyenne
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 36
ggplot(data = iris, mapping = aes(x=Sepal.Width)) +
geom_histogram(aes(y=..density..)) +
geom_density() +
geom_vline(xintercept = mean(iris$Sepal.Width), colour="blue") +
geom_vline(xintercept = median(iris$Sepal.Width), colour="red")
Boîte à moustaches
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 37
Coursera , MOOC Data Analysis and Statistical Inference, Duke University
Coefficient de symétrie (skewness) et
d’aplatissement (kurtosis)
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 38
Coursera , MOOC Data Analysis and Statistical Inference, Duke University
skewness < 1
kurtosis > 0
skewness ~ 0
kurtosis ~ 0
skewness > 1
kurtosis > 0
Variance, écart-type
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 39
Exemple avec la courbe de Gauss ou loi normale
Coursera , MOOC Data Analysis and Statistical Inference, Duke University
on peut dire qu’en moyenne, les individus s’écartent de la moyenne d’un écart-type
•b
Intervalle de confiance
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 40
Pour une distribution normale:
IC à 95% = moyenne ± 1.96 * SE
IC à 95% = 3.0573 ± 1.96 * 0.0355
µ
Coursera , MOOC Data Analysis and Statistical Inference, Duke University
Distributions
• d-: fonction de masse ou de densité
• donne les valeurs P(X=j)
• r-: génération de nombres pseudo-aléatoires
• donne les échantillons
• p-: fonction de répartition
• donne les valeurs P(X<=x)
• q-: fonction quantile
• donne la valeur y telle que P(X=x) = y
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 41
Chiquet J., Commandes usuelles de R
Exemple: loi normale
• dnorm()
• rnorm()
• pnorm()
• qnorm()
Histogramme
• une variable quantitative continue: iris$Sepal.Length
• ggplot(iris, aes(x=Sepal.Length)) + geom_histogram(binwidth = 0.25, fill = 'black')
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 42
binwidth = 5 binwidth = 1
binwidth = 0.25
binwidth = 0.1
Courbe de densité
• Une variable quantitative continue: iris$Sepal.Length
• ggplot(iris, aes(x=Sepal.Length)) + geom_density()
• On s’intéresse à la forme de la courbe, pas aux valeurs sur les ordonnées
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 43
aire sous la
courbe = 1
l’axe des ordonnées
(y) n’a pas d’unités,
on ne cherche pas à
l’interpréter !
elle nous servira à calculer
des probabilités
La loi normale
• La loi normale
• l'une des lois de probabilité les plus adaptées pour
modéliser des phénomènes naturels issus de
plusieurs événements aléatoires.
• loi gaussienne, loi de Gauss ou loi de Laplace-
Gauss.
• 𝜨(𝝁, 𝝈 𝟐), deux paramètres:
• moyenne 𝝁
• écart-type 𝝈
• Densité de probabilité
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 44
courbe de densité ou de
Gauss
La loi normale
• Deux échantillons de 1000 observations chacun générés par rnorm()
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 45
df <- data.frame(X1 = rnorm(n = 10000, mean = 7, sd = 1),
X2 = rnorm(n = 10000, mean = 7, sd = 3))
head(df$X1, n = 10)
6.663734 6.319440 6.364606 5.808029 7.481073 8.357453 7.632734 7.525970
7.168708 8.118269
head(df$X2, n = 10)
10.260346 8.288047 7.271359 8.745277 10.877368 4.741585 6.883856
8.892518 4.373987 9.141098
ggplot() +
geom_density(aes(x=df$X1, y=..density..),col='red') +
geom_density(aes(x=df$X2, y=..density..),col='blue') +
labs(x="valeurs de X1 et X2")
La loi normale
• Deux échantillons de 1000 observations chacun générés par rnorm()
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 46
df <- data.frame(X1 = rnorm(n = 10000, mean = 7, sd = 1),
X2 = rnorm(n = 10000, mean = 7, sd = 3))
ggplot() +
geom_line(aes(x=df$X1, y=dnorm(df$X1, 7, 1)), col='red') +
geom_line(aes(x=df$X2, y=dnorm(df$X2, 7, 3)), col='blue') +
labs(x="valeurs de X1 et X2", y ="dnorm()")
La loi normale
• Distribution centrée et réduite: N(0, 1)
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 47
𝑧 =
𝑋 − 𝜇
𝜎
𝑧 =
64−71
20.25
= −1.56
Griffiths D., Head First Statistics, O’Reilly, ISBN 9780596527587,2008
La loi normale
• Distribution centrée et réduite: N(0, 1)
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 48
df <- data.frame(Z1 = scale(rnorm(n = 10000, mean = 7, sd = 1)),
Z2 = scale(rnorm(n = 10000, mean = 7, sd = 3)))
ggplot() +
geom_line(aes(x=df$X1, y=dnorm(df$X1)), col='red') +
geom_line(aes(x=df$X2, y=dnorm(df$X2)), col='blue') +
labs(x="valeurs de Z1 et Z2", y ="dnorm()")
deux courbes
superposées: même
moyenne (0) et écart-
type (1)
l’axe des x à l’échelle des
valeurs de la statistique Z𝑧 =
𝑋 − 𝜇
𝜎
La loi normale
• Probabilité P(Z > z) = 1 – P(Z < z)
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 49
# P(z < -1.56)
pnorm(q = -1.56) # par défaut mean=0, sd=1
0.0593
# Alors P(z > -1.56) = 1 - pnorm(q = -1.56) = 0.9406201
# Alternative 1 (q = Z)
pnorm(q = -1.56, lower.tail = FALSE)
0.9406201
# Alternative 2 (q = X)
pnorm(q = 64, mean = 71, sd = sqrt(20.25), lower.tail = FALSE)
0.9400931
calculée par défaut
avec pnorm()
Griffiths D., Head First Statistics, O’Reilly, ISBN 9780596527587,2008
La loi normale
• Cherchons z sachant la probabilité
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 50
qnorm(p = 0.94, mean = 71, sd = sqrt(20.25), lower.tail = FALSE)
64.00352
qnorm(p = 0.94, mean = 0, sd = 1, lower.tail = FALSE)
-1.554774
𝑧 =
𝑋 − 𝜇
𝜎
Griffiths D., Head First Statistics, O’Reilly, ISBN 9780596527587,2008
La loi normale
• Soient n variables aléatoires X1, X2, …, Xn
• indépendantes et identiquement distribuées (noté i.d.d.)
de la loi normale
• de moyenne 𝝁 = 7
• d’écart-type 𝝈 = 1
• Soit ത𝑋 𝑛 =
1
𝑛
σ𝑖=1
𝑛
𝑋𝑖
• ത𝑋 𝑛 est une variable aléatoire
• ҧ𝑥 𝑛 sont les réalisations de ത𝑋 𝑛
• 𝜇 = Ε 𝑋 est l’espérance théorique
• Loi des grands nombres
• lorsque n → ∞, ത𝑋 𝑛 → Ε 𝑋 = 𝜇
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 51
X1 <- rnorm(n = 1, mean = 7, sd = 1)
X2 <- rnorm(n = 1, mean = 7, sd = 1)
X3 <- rnorm(n = 1, mean = 7, sd = 1)
X4 <- rnorm(n = 1, mean = 7, sd = 1)
mean(c(X1, X2, X3, X4))
6.626811
X1 <- rnorm(n = 1, mean = 7, sd = 1)
X2 <- rnorm(n = 1, mean = 7, sd = 1)
X3 <- rnorm(n = 1, mean = 7, sd = 1)
X4 <- rnorm(n = 1, mean = 7, sd = 1)
mean(c(X1, X2, X3, X4))
6.712035
X1 <- rnorm(n = 1, mean = 7, sd = 1)
X2 <- rnorm(n = 1, mean = 7, sd = 1)
X3 <- rnorm(n = 1, mean = 7, sd = 1)
X4 <- rnorm(n = 1, mean = 7, sd = 1)
mean(c(X1, X2, X3, X4))
7.181946
est une réalisation ҧ𝑥4 de ത𝑋4
est une réalisation ҧ𝑥4 de ത𝑋4
est une réalisation ҧ𝑥4 de ത𝑋4
3 réalisations
successives et
imprévisibles fluctuant
autour de 𝜇 = 7
Théorème de la limite centrale
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 52
population
N
échantillon
n obs.
échantillon
n obs.
échantillon
n obs.
échantillon
n obs.
moyenne
ഥ𝒙1
moyenne
ഥ𝒙2
moyenne
ഥ𝒙3
moyenne
ഥ𝒙18
Exemple:
population des femmes en
France; on s’intéresse à leur
taille en mètres
𝜇 =
𝑥1 + 𝑥2 + … + 𝑥𝑁
𝑁
𝜎 =
σ𝑖=1
𝑁
𝑥𝑖 − 𝜇 2
𝑁
Exemple:
échantillons par région
Distribution d’échantillonnage
(sampling distribution)
la distribution de la moyenne
suit une loi normale
• de moyenne ~ 𝜇
• d’écart-type SE =
𝜎
𝑛
< 𝜎
Condition d’indépendance
• échantillonnage aléatoire
• taille d’échantillons n < 10% de N
Condition taille/symétrie
• soit la distribution de la
population suit une loi normale
• soit elle est pas trop « skewed »
avec n > 30
… …
Théorème de la limite centrale
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 53
taille des
échantillons
la distribution de la population ne
suit pas forcément une loi normale
courbe rouge: loi normale
plus grande la taille des
échantillons, plus on se rapproche
de la loi normale
Coursera , MOOC Data Analysis and Statistical Inference, Duke University
Théorème de la limite centrale
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 54
population
N
échantillon
n obs.
échantillon
n obs.
échantillon
n obs.
échantillon
n obs.
proportion
𝒑1
proportion
𝒑2
proportion
𝒑3
proportion
𝒑18
Exemple:
proportion de fumeurs en
France
Exemple:
échantillons par région
Distribution d’échantillonnage
(sampling distribution)
la distribution de la moyenne
suit une loi normale
• de moyenne ~ 𝑝
• d’écart-type SE =
𝑝(𝑝−1)
𝑛
Condition d’indépendance
• échantillonnage aléatoire
• taille d’échantillons n < 10% de N
Condition taille/symétrie
• np > 10 et n(1-p) ≥ 10
𝑝 =
𝑛𝑏 𝑑𝑎𝑛𝑠 𝑢𝑛𝑒 𝑠𝑜𝑢𝑠 𝑝𝑜𝑝𝑢𝑙𝑎𝑡𝑖𝑜𝑛
𝑁
… …
La loi binomiale
• Loi de probabilité discrète qui modélise le
nombre de succès obtenus lors de la répétition
indépendante de plusieurs expériences
aléatoires identiques.
• Arbre de probabilité : à chaque génération de
l'arbre, deux branches partent de chaque nœud,
une pour le succès et une pour l'échec.
• Probabilité de k succès dans une répétition de n
expériences
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 55
une épreuve de Bernoulli: on utilise une variable
aléatoire qui prend la valeur 1 (succès) ou 0 (échec).
La v.a. X « somme de toutes ces variables aléatoires »
Wikipedia, La loi binomaile
La loi binomiale
• « D’après une enquête Gallup 2013, seulement 13% d’employés (au niveau mondiale) sont
motivés par leur travail. Si l’on prend un échantillon de 10 employés, quelles est la probabilité
que 8 employés soient motivés par leur travail ? »
• Probabilité de succès: p = 0.13
• Probabilité d’échec: 1 - p = 0.87
• Nombre d’épreuves: n = 10
• Nombre de succès: k = 8
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 56
>dbinom(x = 8, size = 10, prob = 0.13)
>2.77842e-06
>choose(n = 10, k = 8)
>45
Note:
>choose(n = 10,k = 8) * 0.13^8 * 0.87^2
>2.77842e-06
La loi binomiale
• Fonction de masse
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R
x <- 0:10
qplot(x = factor(x), ymin = 0, ymax = dbinom(x,10,0.13), geom = 'linerange')
La loi binomiale
• Probabilité P(1 ≤ X ≤ 3)
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R
sum(dbinom(x = 1:3, size = 10, prob = 0.13))
0.7202718 # égale à l’aire
La loi binomiale
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 59
• dbinom(x, size, prob)
• donne la valeur P(X=k) sachant que X suit une loi B(n, p)
• dbinom(x = 8, size = 10, prob = 0.13)  2.77842e-06
• rbinom(n = 10, size, prob)
• donne un échantillon de taille 10 extrait d’une population suivant une loi B(n, p)
• rbinom(n = 10, size = 10, prob = 0.13)  3 1 1 1 2 4 1 0 1 1
• pbinom(q, size, prob)
• donne P(X ≤ k) sachant que X suit une loi B(n, p), c’est-à-dire la valeur de la fonction de répartition F(k)
• pbinom(q = 0:10, size = 10, prob = 0.13)
0.2484234 0.6196308 0.8692358 0.9686952 0.9947033 0.9993668 0.9999475 0.9999971 0.9999999
1.0000000 1.0000000
• qbinom(p, size, prob)
• est le quantile, c’est-à-dire la plus petite valeur x telle que F(x) = P(X ≤ x) ≥ q
• qbinom(p = 0.5, size = 10, prob = 0.13)  1
• qbinom(p = 0.9, size = 10, prob = 0.13)  3
L’hypothèse statistique
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 60
• Exemple d’une démarche classique; test d’hypothèse sur la moyenne d’une population:
• Recherches sur les enfants surdoués.
• Des chercheurs ont collecté des données provenant des écoles d’une grande ville. Ils ont sélectionné au hasard un échantillon de 36
enfants identifiés come surdoués juste après l’âge de 4 ans. Durant l’étude, en plus de la collecte des données des enfants, le QI de
leur mères respectives a été également collecté. Voir l’histogramme des QI des mères ci-dessous.
• Effectuer un test d’hypothèse afin d’évaluer si les données apportent suffisamment de preuves sur une différence existante entre la
moyenne des QI des mères d’enfants surdoués et celle, connue et égale à 100, d’une population plus large de mères. Considérer un
seuil de signification de 1%. »
1. Etablir les hypothèses: nulle (H0) et alternative (HA)
2. Estimation de la moyenne à partir des données ( ҧ𝑥 = 118.2)
3. Check des conditions: indépendance + n>30 + symétrie de
la distribution
4. Calculer la statistique Z = ( ҧ𝑥 − µ)/𝑆𝐸
5. Déterminer la p-value et la comparer à 1%
6. Prendre une décision (rejet ou pas de H0), interprétation
L’hypothèse statistique
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 61
• La finalité d’un test est de prendre une décision:
rejeter ou non l’hypothèse nulle.
• Définir un seuil de signification (α) du test:
pourcentage de chances de rejeter l’hypothèse
nulle, alors qu’en réalité celle-ci était vraie.
• lié au niveau du risque accepté (usuellement 5%).
• C’est la puissance du test (1 - β) qui donne une
estimation de la probabilité de trouver des
différences significatives (si elles existent) dans les
données.
1 - α
α 1 - β
β
L’hypothèse statistique
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 62
1. Etablir les hypothèses: nulle (H0) et alternative (HA)
• H0 : µ = 100; HA : µ ≠ 100
2. Estimation de la moyenne à partir des données
• ҧ𝑥 = 118.2
3. Check des conditions:
• indépendance et 36 < 10% population, n>30, symétrie de la distribution
• alors ത𝑋 ~ N(µ = 100, SE =
𝜎
𝑛
=
6.5
36
= 1.083)
4. Calculer la statistique
• Z = ( ҧ𝑥 − µ)/𝑆𝐸 = (118.2 - 100)/1.083 = 16.8
5. Déterminer la p-value et la comparer à α = 1% = 0.01
• p-value = P( ത𝑋 > 100 ou ത𝑋 < 100 | H0 : µ = 100) = P(Z < -16.8) + P(Z > 16.8)
• pnorm(q = -16.8) + pnorm(q = 16.8, lower.tail = FALSE) ~ 0
6. Prendre une décision (rejet ou pas de H0), interprétation
• p-value ~ 0 < α = 0.01  on rejette H0
Tableau de contingence
• 2 variables catégorielles
• départements d’IDF (IDF)
• type de voiture (TV)
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 63
Ber23Neuve Ber45Neuve BreakNeuf MonospNeuf Bar23Occas Ber45Occas BreakOccas MonospOccas
Paris 7 592 29 211 5 743 15 016 18 946 41 123 4 181 9 824
Seine-et-Marne 5 058 17 810 2 604 10 216 23 794 60 408 5 410 13 865
Yvelines 9 371 35 977 7 707 21 133 23 741 58 578 5 474 14 870
Essonne 5 121 18 230 2 702 10 653 21 935 54 347 4 589 13 073
Hauts-de-Seine 8 187 35 629 7 565 24 885 20 464 45 076 4 237 11 839
Seine-Saint-Denis 2 738 12 803 1 746 7 286 23 872 62 764 4 336 11 705
Val-de-Marne 4 072 14 977 1 977 8 057 19 683 45 512 3 288 10 541
Val-d'Oise 4 227 15 380 2 306 8 151 21 738 53 258 4 111 11 595
Cette table peut être importée à partir d’un fichier texte: voitures_IDF.txt
Etant donnée que le format d’importation est un data.frame alors on doit convertir ce dernier au
format table afin d’effectuer les manipulations qui suivent
table_IDF <- as.table(as.matrix(df))
1092307
total
effectifs
Distributions marginales (1)
• A partir du tableau de contingence précédent, on rajoute les marges en bas et à droite, resp.
• addmargins(table_IDF, margin = 1, FUN = sum, quiet = TRUE)
• addmargins(table_IDF, margin = 2, FUN = sum, quiet = TRUE)
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 64
Ber23Neuve Ber45Neuve BreakNeuf MonospNeuf Bar23Occas Ber45Occas BreakOccas MonospOccas
Paris 7 592 29 211 5 743 15 016 18 946 41 123 4 181 9 824
Seine-et-Marne 5 058 17 810 2 604 10 216 23 794 60 408 5 410 13 865
Yvelines 9 371 35 977 7 707 21 133 23 741 58 578 5 474 14 870
Essonne 5 121 18 230 2 702 10 653 21 935 54 347 4 589 13 073
Hauts-de-Seine 8 187 35 629 7 565 24 885 20 464 45 076 4 237 11 839
Seine-Saint-Denis 2 738 12 803 1 746 7 286 23 872 62 764 4 336 11 705
Val-de-Marne 4 072 14 977 1 977 8 057 19 683 45 512 3 288 10 541
Val-d'Oise 4 227 15 380 2 306 8 151 21 738 53 258 4 111 11 595
Total
131 636
139 165
176 851
130 650
157 882
127 250
108 107
120 766
Ber23Neuve Ber45Neuve BreakNeuf MonospNeuf Bar23Occas Ber45Occas BreakOccas MonospOccas
Paris 7 592 29 211 5 743 15 016 18 946 41 123 4 181 9 824
Seine-et-Marne 5 058 17 810 2 604 10 216 23 794 60 408 5 410 13 865
Yvelines 9 371 35 977 7 707 21 133 23 741 58 578 5 474 14 870
Essonne 5 121 18 230 2 702 10 653 21 935 54 347 4 589 13 073
Hauts-de-Seine 8 187 35 629 7 565 24 885 20 464 45 076 4 237 11 839
Seine-Saint-Denis 2 738 12 803 1 746 7 286 23 872 62 764 4 336 11 705
Val-de-Marne 4 072 14 977 1 977 8 057 19 683 45 512 3 288 10 541
Val-d'Oise 4 227 15 380 2 306 8 151 21 738 53 258 4 111 11 595
Total 46366 180017 32350 105397 174173 421066 35626 97312
Distributions marginales (2)
• A partir du tableau de contingence précédent, obtient uniquement les marges en bas et à droite
• margin.table(table_IDF, margin = 1)
• margin.table(table_IDF, margin = 2)
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 65
Total
131 636
139 165
176 851
130 650
157 882
127 250
108 107
120 766
Total 46366 180017 32350 105397 174173 421066 35626 97312
Distribution conjointe
• P(TV, IDF) : à partir du tableau de contingence, on divise par le total d’effectifs:
tdjoint <- table_IDF/sum(table_IDF)
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 66
Ber23Neuve Ber45Neuve BreakNeuf MonospNeuf Bar23Occas Ber45Occas BreakOccas MonospOccas
Paris 0.0070 0.0267 0.0053 0.0137 0.0173 0.0376 0.0038 0.0090
Seine-et-Marne 0.0046 0.0163 0.0024 0.0094 0.0218 0.0553 0.0050 0.0127
Yvelines 0.0086 0.0329 0.0071 0.0193 0.0217 0.0536 0.0050 0.0136
Essonne 0.0047 0.0167 0.0025 0.0098 0.0201 0.0498 0.0042 0.0120
Hauts-de-Seine 0.0075 0.0326 0.0069 0.0228 0.0187 0.0413 0.0039 0.0108
Seine-Saint-Denis 0.0025 0.0117 0.0016 0.0067 0.0219 0.0575 0.0040 0.0107
Val-de-Marne 0.0037 0.0137 0.0018 0.0074 0.0180 0.0417 0.0030 0.0097
Val-d'Oise 0.0039 0.0141 0.0021 0.0075 0.0199 0.0488 0.0038 0.0106
Total
0.1205
0.1274
0.1619
0.1196
0.1445
0.1165
0.0990
0.1106
Total 0.0424 0.1648 0.0296 0.0965 0.1595 0.3855 0.0326 0.0891 1
Distributions conditionnelles
• Profils lignes: à partir du tableau de contingence, on divise les effectifs par le total ligne
• Distribution conditionnelle de TV sachant IDF
• P(TV | IDF) = prop.table(x = table_IDF, margin = 1)
Ber23Neuve Ber45Neuve BreakNeuf MonospNeuf Bar23Occas Ber45Occas BreakOccas MonospOccas
Paris 0.05767419 0.22190738 0.04362788 0.11407214 0.14392719 0.31239934 0.03176183 0.07463004
Seine_et_Marne 0.03634535 0.12797758 0.01871160 0.07340926 0.17097690 0.43407466 0.03887472 0.09962994
Yvelines 0.05298811 0.20343114 0.04357906 0.11949607 0.13424295 0.33122798 0.03095261 0.08408208
Essonne 0.03919633 0.13953310 0.02068121 0.08153846 0.16789131 0.41597398 0.03512438 0.10006123
Hauts_de_Seine 0.05185518 0.22566854 0.04791553 0.15761771 0.12961579 0.28550436 0.02683650 0.07498638
Seine_Saint_Denis 0.02151670 0.10061297 0.01372102 0.05725737 0.18759921 0.49323379 0.03407466 0.09198428
Val_de_Marne 0.03766639 0.13853867 0.01828744 0.07452801 0.18206962 0.42099032 0.03041431 0.09750525
Val_dOise 0.03500157 0.12735373 0.01909478 0.06749416 0.18000099 0.44100161 0.03404104 0.09601212
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 67
Distributions conditionnelles
• Profils colonnes: à partir du tableau de contingence, on divise les effectifs par le total colonne
• Distribution conditionnelle de IDF sachant TV
• P(IDF | TV) = prop.table(x = table_IDF, margin = 2)
Ber23Neuve Ber45Neuve BreakNeuf MonospNeuf Bar23Occas Ber45Occas BreakOccas MonospOccas
Paris 0.16374067 0.16226801 0.17752705 0.14247085 0.10877691 0.09766402 0.11735811 0.10095363
Seine_et_Marne 0.10908856 0.09893510 0.08049459 0.09692876 0.13661130 0.14346445 0.15185539 0.14247986
Yvelines 0.20210930 0.19985335 0.23823802 0.20050855 0.13630701 0.13911833 0.15365183 0.15280746
Essonne 0.11044731 0.10126821 0.08352396 0.10107498 0.12593800 0.12907003 0.12881042 0.13434109
Hauts_de_Seine 0.17657335 0.19792020 0.23384853 0.23610729 0.11749238 0.10705210 0.11892999 0.12166023
Seine_Saint_Denis 0.05905189 0.07112106 0.05397218 0.06912910 0.13705913 0.14905977 0.12170886 0.12028321
Val_de_Marne 0.08782297 0.08319770 0.06111283 0.07644430 0.11300833 0.10808757 0.09229215 0.10832169
Val_dOise 0.09116594 0.08543638 0.07128284 0.07733617 0.12480694 0.12648373 0.11539325 0.11915283
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 68
Fonctions graphiques
• pour les variables quantitatives continues
histogramme, boîte à moustache (boxplot)
• pour les variables quantitatives discrètes
• tuyaux d’orgue, mosaïque
• pour les variables qualitatives
• diagramme de Pareto, empilé, circulaire
• pour les variables ordinales
• tuyaux d’orgue avec courbe de fréquence cumulée
• dans un cadre bivarié
• Croisement de deux variables quantitatives: nuage de points
• Croisement d’une variable quantitative et d’une variable qualitative: boxplot, stripchart
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 69
R package ggplot2
• library(ggplot2)
• Wilkinson, L., Grammar of Graphics, 1999
• 2 principes
• Graphiques = différentes couches d’éléments
« grammaticaux »
• couches = noms, adjectifs, etc.
• Visualisations pertinentes via un mapping
d’esthétiques (aesthetic)
• règles grammaticales
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 70
Elément Description
Data Les données à visualiser
Esthétique
(Aesthetics)
Les échelles sur lesquelles on
mappe les données
Géométrie Les éléments visuels utilisés pour les
données
Facettes (Facets) comment diviser notre graphique
Statistiques Représentation des données pour
faciliter la compréhension
Coordonnées L’espace dans lequel les données
seront affichées
Thèmes Tout élément « non data »
R package ggplot2
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 71
o Coordinates
o Statistics
o Facets
o Geometries
o Aesthetics
o Data
R package ggplot2
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 72
• >View(iris)
R package ggplot2
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 73
ggplot(iris, aes(x=Sepal.Length, y=Sepal.Width)) +
geom_point()
o Geometries
o Aesthetics
o Data
R package ggplot2
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 74
ggplot(iris, aes(x=Sepal.Length, y=Sepal.Width, col=Species)) +
geom_point()
o Geometries
o Aesthetics
o Data
R package ggplot2
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 75
ggplot(iris, aes(x=Sepal.Length, y=Sepal.Width, col=Species)) +
geom_jitter()
o Geometries
o Aesthetics
o Data
R package ggplot2
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 76
ggplot(iris, aes(x=Sepal.Length, y=Sepal.Width)) +
geom_jitter() +
facet_grid(. ~ Species)
o Facets
o Geometries
o Aesthetics
o Data
R package ggplot2
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 77
ggplot(iris, aes(x=Sepal.Length, y=Sepal.Width)) +
geom_jitter() +
facet_grid(. ~ Species) +
stat_smooth(method="lm", se=F, col="red")
o Statistics
o Facets
o Geometries
o Aesthetics
o Data
R package ggplot2
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 78
ggplot(iris, aes(x=Sepal.Length, y=Sepal.Width)) +
geom_jitter() +
facet_grid(. ~ Species) +
stat_smooth(method="lm", se=F, col="red") +
scale_y_continuous("Sepal Width (cm)", limits=c(2,5), expand=c(0,0)) +
scale_x_continuous("Sepal Length (cm)", limits=c(4,8), expand=c(0,0)) +
coord_equal()
R package ggplot2
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 79
DataCamp, MOOC Data Visualization with ggplot2 (1)
R package ggplot2
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 80
Elément Exemples d’éléments
Data variables d’intérêt
Aesthetics x-axis
y-axis
colour
fill
size
labels
alpha
shape
line width
line type
Géométrie point line histogram bar boxplot
Facets columns rows
Statistiques binning smoothing descriptive inferential
Coordonnées cartesian fixed polar limits
Thèmes
R package ggplot2
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 81
• Notion de données « tidy » (tidy data)
Comment changer la structure de vos données
pour réaliser le graphique désiré ?
DataCamp, MOOC Data Visualization with ggplot2 (1)
R package ggplot2
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 82
• package« tidy » (tidy data)
R package ggplot2
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 83
Wong B., Nat Met, 2010, p665
R package ggplot2
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 84
• Statistics: stat_
• stat_bin()compte le nombre d’observations
dans un groupe
• les fonctions suivantes appellent sta_bin()
• geom_histogram()
• geom_bar()
• geom_freqploy()
• stat_smooth()dessine une courbe avec un
standard error (intervalle de confiance à 95%)
• les fonctions suivantes appellent stat_smooth()
• geom_smooth()
voir message
« warning »
voir message
« warning »
datasets de
grande taille
DataCamp, MOOC Data Visualization with ggplot2 (1)
R package ggplot2
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 85
• Statistics: stat_
• Données mammals du package MASS
DataCamp, MOOC Data Visualization with ggplot2 (1)
DataCamp, MOOC Data Visualization with ggplot2 (1)
R package ggplot2
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 86
• Q-Q plot
• Données mammals du package MASS
DataCamp, MOOC Data Visualization with ggplot2 (1)
DataCamp, MOOC Data Visualization with ggplot2 (1)
Bibliographie
• Lafaye et al., Le logiciel R, ISBN 9782817801148, Springer, 2012
• Chiquet J., Commandes usuelles de R,
http://www.math.unicaen.fr/~chesneau/RCarte_Commandes-R.pdf, octobre 2015
• Griffiths D., Head First Statistics, O’Reilly, ISBN 9780596527587, 2008
• Ryan G., R Essentials Refcard #232, DZone, https://dzone.com/refcardz/r-essentials-1
• Site « Quick-R », http://www.statmethods.net/
• Coursera , MOOC Data Analysis and Statistical Inference, Duke University
• DataCamp, MOOC Data Visualization with ggplot2 (1)
• Niang Keita D., CNAM Module STA115 - Outils informatique de la statistique
30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 87

Contenu connexe

Tendances

Ecole ESMA : Rapport de projet - Application de gestion d'une bibliotheque
Ecole ESMA : Rapport de projet - Application de gestion d'une bibliothequeEcole ESMA : Rapport de projet - Application de gestion d'une bibliotheque
Ecole ESMA : Rapport de projet - Application de gestion d'une bibliothequeMehdi Hamime
 
Le passage du diagramme de classe vers le model objet relationnel
Le passage du diagramme de classe vers le model objet relationnelLe passage du diagramme de classe vers le model objet relationnel
Le passage du diagramme de classe vers le model objet relationnelHassen Sic
 
exercices base de données - sql
exercices  base de données - sql exercices  base de données - sql
exercices base de données - sql Yassine Badri
 
Présentation data warehouse etl et olap
Présentation data warehouse etl et olapPrésentation data warehouse etl et olap
Présentation data warehouse etl et olapCynapsys It Hotspot
 
Chp5 - Diagramme d'Etat Transition
Chp5 - Diagramme d'Etat TransitionChp5 - Diagramme d'Etat Transition
Chp5 - Diagramme d'Etat TransitionLilia Sfaxi
 
exercices business intelligence
exercices business intelligence exercices business intelligence
exercices business intelligence Yassine Badri
 
03 Apprentissage statistique
03 Apprentissage statistique03 Apprentissage statistique
03 Apprentissage statistiqueBoris Guarisma
 
Chp1 - Introduction aux méthodologies de Conception
Chp1 - Introduction aux méthodologies de ConceptionChp1 - Introduction aux méthodologies de Conception
Chp1 - Introduction aux méthodologies de ConceptionLilia Sfaxi
 
Seminaire datamining Ecole de Statistique et d'Economie Appliquée
Seminaire datamining Ecole de Statistique et d'Economie AppliquéeSeminaire datamining Ecole de Statistique et d'Economie Appliquée
Seminaire datamining Ecole de Statistique et d'Economie AppliquéeJean Roger Mably
 
Introduction au datamining, concepts et techniques
Introduction au datamining, concepts et techniquesIntroduction au datamining, concepts et techniques
Introduction au datamining, concepts et techniquesIsmail CHAIB
 
Présentation sur le Data Mining
Présentation sur le Data MiningPrésentation sur le Data Mining
Présentation sur le Data MiningTakfarinas KENOUCHE
 
Gestion De Production Implantation
Gestion De Production ImplantationGestion De Production Implantation
Gestion De Production Implantationcharkaoui abdelkabir
 
Chp1 - Introduction aux ERP
Chp1 - Introduction aux ERPChp1 - Introduction aux ERP
Chp1 - Introduction aux ERPLilia Sfaxi
 
Ma présentation PFE : Application Android & Site Web
Ma présentation PFE : Application Android & Site WebMa présentation PFE : Application Android & Site Web
Ma présentation PFE : Application Android & Site WebHarrathi Mohamed
 
Application web de gestion de recrutement- Recruitement managment system
Application web de gestion de recrutement- Recruitement managment systemApplication web de gestion de recrutement- Recruitement managment system
Application web de gestion de recrutement- Recruitement managment systemSarra ERRREGUI
 
La Recherche d'information sur Internet
La Recherche d'information sur InternetLa Recherche d'information sur Internet
La Recherche d'information sur InternetSandrine Michel
 
Réussir son analyse des besoins dans la conduite d'un projet informatique (2007)
Réussir son analyse des besoins dans la conduite d'un projet informatique (2007)Réussir son analyse des besoins dans la conduite d'un projet informatique (2007)
Réussir son analyse des besoins dans la conduite d'un projet informatique (2007)Ardesi Midi-Pyrénées
 

Tendances (20)

Prez PFE
Prez PFEPrez PFE
Prez PFE
 
Ecole ESMA : Rapport de projet - Application de gestion d'une bibliotheque
Ecole ESMA : Rapport de projet - Application de gestion d'une bibliothequeEcole ESMA : Rapport de projet - Application de gestion d'une bibliotheque
Ecole ESMA : Rapport de projet - Application de gestion d'une bibliotheque
 
Le passage du diagramme de classe vers le model objet relationnel
Le passage du diagramme de classe vers le model objet relationnelLe passage du diagramme de classe vers le model objet relationnel
Le passage du diagramme de classe vers le model objet relationnel
 
exercices base de données - sql
exercices  base de données - sql exercices  base de données - sql
exercices base de données - sql
 
Présentation data warehouse etl et olap
Présentation data warehouse etl et olapPrésentation data warehouse etl et olap
Présentation data warehouse etl et olap
 
Chp5 - Diagramme d'Etat Transition
Chp5 - Diagramme d'Etat TransitionChp5 - Diagramme d'Etat Transition
Chp5 - Diagramme d'Etat Transition
 
exercices business intelligence
exercices business intelligence exercices business intelligence
exercices business intelligence
 
Modele rapport pfe esprit
Modele rapport pfe  espritModele rapport pfe  esprit
Modele rapport pfe esprit
 
Cours Génie Logiciel - Introduction
Cours Génie Logiciel - IntroductionCours Génie Logiciel - Introduction
Cours Génie Logiciel - Introduction
 
03 Apprentissage statistique
03 Apprentissage statistique03 Apprentissage statistique
03 Apprentissage statistique
 
Chp1 - Introduction aux méthodologies de Conception
Chp1 - Introduction aux méthodologies de ConceptionChp1 - Introduction aux méthodologies de Conception
Chp1 - Introduction aux méthodologies de Conception
 
Seminaire datamining Ecole de Statistique et d'Economie Appliquée
Seminaire datamining Ecole de Statistique et d'Economie AppliquéeSeminaire datamining Ecole de Statistique et d'Economie Appliquée
Seminaire datamining Ecole de Statistique et d'Economie Appliquée
 
Introduction au datamining, concepts et techniques
Introduction au datamining, concepts et techniquesIntroduction au datamining, concepts et techniques
Introduction au datamining, concepts et techniques
 
Présentation sur le Data Mining
Présentation sur le Data MiningPrésentation sur le Data Mining
Présentation sur le Data Mining
 
Gestion De Production Implantation
Gestion De Production ImplantationGestion De Production Implantation
Gestion De Production Implantation
 
Chp1 - Introduction aux ERP
Chp1 - Introduction aux ERPChp1 - Introduction aux ERP
Chp1 - Introduction aux ERP
 
Ma présentation PFE : Application Android & Site Web
Ma présentation PFE : Application Android & Site WebMa présentation PFE : Application Android & Site Web
Ma présentation PFE : Application Android & Site Web
 
Application web de gestion de recrutement- Recruitement managment system
Application web de gestion de recrutement- Recruitement managment systemApplication web de gestion de recrutement- Recruitement managment system
Application web de gestion de recrutement- Recruitement managment system
 
La Recherche d'information sur Internet
La Recherche d'information sur InternetLa Recherche d'information sur Internet
La Recherche d'information sur Internet
 
Réussir son analyse des besoins dans la conduite d'un projet informatique (2007)
Réussir son analyse des besoins dans la conduite d'un projet informatique (2007)Réussir son analyse des besoins dans la conduite d'un projet informatique (2007)
Réussir son analyse des besoins dans la conduite d'un projet informatique (2007)
 

Similaire à 04 Introduction au logiciel R

support_cours.pdf
support_cours.pdfsupport_cours.pdf
support_cours.pdfMbarkiIsraa
 
Analyse_desDonnées_sousR.pptx
Analyse_desDonnées_sousR.pptxAnalyse_desDonnées_sousR.pptx
Analyse_desDonnées_sousR.pptxanashoummas
 
P8 03 presentation
P8 03 presentationP8 03 presentation
P8 03 presentationrajiasellami
 
PostgreSQL, plus qu'une base de données, une plateforme aux multiples usages
PostgreSQL, plus qu'une base de données, une plateforme aux multiples usagesPostgreSQL, plus qu'une base de données, une plateforme aux multiples usages
PostgreSQL, plus qu'une base de données, une plateforme aux multiples usagesOpen Source Experience
 
Meetup juin2013
Meetup juin2013Meetup juin2013
Meetup juin2013nperu
 
Gardez vos projets R organisés avec le package "project"
Gardez vos projets R organisés avec le package "project"Gardez vos projets R organisés avec le package "project"
Gardez vos projets R organisés avec le package "project"parisraddicts
 
Data Mining (Partie 2).pdf
Data Mining (Partie 2).pdfData Mining (Partie 2).pdf
Data Mining (Partie 2).pdfOuailChoukhairi
 
Data Modeling Power BI [SqlSat '18]
Data Modeling Power BI [SqlSat '18]Data Modeling Power BI [SqlSat '18]
Data Modeling Power BI [SqlSat '18]Joël Crest
 
Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017)
Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017) Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017)
Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017) univalence
 
Webinaire 1 de la série Retour aux fondamentaux : Introduction à NoSQL
Webinaire 1 de la série Retour aux fondamentaux : Introduction à NoSQLWebinaire 1 de la série Retour aux fondamentaux : Introduction à NoSQL
Webinaire 1 de la série Retour aux fondamentaux : Introduction à NoSQLMongoDB
 
Oxalide MorningTech #1 - BigData
Oxalide MorningTech #1 - BigDataOxalide MorningTech #1 - BigData
Oxalide MorningTech #1 - BigDataLudovic Piot
 
[MAP-MEEDM] Présentation Spatial Data Integrator
[MAP-MEEDM] Présentation Spatial Data Integrator[MAP-MEEDM] Présentation Spatial Data Integrator
[MAP-MEEDM] Présentation Spatial Data Integratormathieuraj
 
20150402 meetup r addicts du printemps
20150402  meetup r addicts du printemps20150402  meetup r addicts du printemps
20150402 meetup r addicts du printempsduretteb
 
Découvrez le parcours de vos données : lignage de données de bout en bout ...
Découvrez le parcours de vos données : lignage de données de bout en bout ...Découvrez le parcours de vos données : lignage de données de bout en bout ...
Découvrez le parcours de vos données : lignage de données de bout en bout ...Wiiisdom
 
6 t130g formation-ibm-websphere-transformation-extender-v8-3-fundamentals
6 t130g formation-ibm-websphere-transformation-extender-v8-3-fundamentals6 t130g formation-ibm-websphere-transformation-extender-v8-3-fundamentals
6 t130g formation-ibm-websphere-transformation-extender-v8-3-fundamentalsCERTyou Formation
 
USI 2013 : 7 changements nécessaires pour sauver vos SI décisionnels
USI 2013 : 7 changements nécessaires pour sauver vos SI décisionnelsUSI 2013 : 7 changements nécessaires pour sauver vos SI décisionnels
USI 2013 : 7 changements nécessaires pour sauver vos SI décisionnelsJoseph Glorieux
 
SQL Debug avec Django @ PyConFr 2015
SQL Debug avec Django @ PyConFr 2015SQL Debug avec Django @ PyConFr 2015
SQL Debug avec Django @ PyConFr 2015Rodolphe Quiédeville
 
[GAB2016] Azure DocumentDB - Jean-Luc Boucho
[GAB2016] Azure DocumentDB - Jean-Luc Boucho[GAB2016] Azure DocumentDB - Jean-Luc Boucho
[GAB2016] Azure DocumentDB - Jean-Luc BouchoCellenza
 

Similaire à 04 Introduction au logiciel R (20)

support_cours.pdf
support_cours.pdfsupport_cours.pdf
support_cours.pdf
 
Analyse_desDonnées_sousR.pptx
Analyse_desDonnées_sousR.pptxAnalyse_desDonnées_sousR.pptx
Analyse_desDonnées_sousR.pptx
 
P8 03 presentation
P8 03 presentationP8 03 presentation
P8 03 presentation
 
PostgreSQL, plus qu'une base de données, une plateforme aux multiples usages
PostgreSQL, plus qu'une base de données, une plateforme aux multiples usagesPostgreSQL, plus qu'une base de données, une plateforme aux multiples usages
PostgreSQL, plus qu'une base de données, une plateforme aux multiples usages
 
Meetup juin2013
Meetup juin2013Meetup juin2013
Meetup juin2013
 
Gardez vos projets R organisés avec le package "project"
Gardez vos projets R organisés avec le package "project"Gardez vos projets R organisés avec le package "project"
Gardez vos projets R organisés avec le package "project"
 
Data Mining (Partie 2).pdf
Data Mining (Partie 2).pdfData Mining (Partie 2).pdf
Data Mining (Partie 2).pdf
 
Data Modeling Power BI [SqlSat '18]
Data Modeling Power BI [SqlSat '18]Data Modeling Power BI [SqlSat '18]
Data Modeling Power BI [SqlSat '18]
 
Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017)
Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017) Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017)
Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017)
 
Webinaire 1 de la série Retour aux fondamentaux : Introduction à NoSQL
Webinaire 1 de la série Retour aux fondamentaux : Introduction à NoSQLWebinaire 1 de la série Retour aux fondamentaux : Introduction à NoSQL
Webinaire 1 de la série Retour aux fondamentaux : Introduction à NoSQL
 
Oxalide MorningTech #1 - BigData
Oxalide MorningTech #1 - BigDataOxalide MorningTech #1 - BigData
Oxalide MorningTech #1 - BigData
 
[MAP-MEEDM] Présentation Spatial Data Integrator
[MAP-MEEDM] Présentation Spatial Data Integrator[MAP-MEEDM] Présentation Spatial Data Integrator
[MAP-MEEDM] Présentation Spatial Data Integrator
 
MariaDB une base de donnees NewSQL
MariaDB une base de donnees NewSQLMariaDB une base de donnees NewSQL
MariaDB une base de donnees NewSQL
 
20150402 meetup r addicts du printemps
20150402  meetup r addicts du printemps20150402  meetup r addicts du printemps
20150402 meetup r addicts du printemps
 
Découvrez le parcours de vos données : lignage de données de bout en bout ...
Découvrez le parcours de vos données : lignage de données de bout en bout ...Découvrez le parcours de vos données : lignage de données de bout en bout ...
Découvrez le parcours de vos données : lignage de données de bout en bout ...
 
6 t130g formation-ibm-websphere-transformation-extender-v8-3-fundamentals
6 t130g formation-ibm-websphere-transformation-extender-v8-3-fundamentals6 t130g formation-ibm-websphere-transformation-extender-v8-3-fundamentals
6 t130g formation-ibm-websphere-transformation-extender-v8-3-fundamentals
 
USI 2013 : 7 changements nécessaires pour sauver vos SI décisionnels
USI 2013 : 7 changements nécessaires pour sauver vos SI décisionnelsUSI 2013 : 7 changements nécessaires pour sauver vos SI décisionnels
USI 2013 : 7 changements nécessaires pour sauver vos SI décisionnels
 
SQL Debug avec Django @ PyConFr 2015
SQL Debug avec Django @ PyConFr 2015SQL Debug avec Django @ PyConFr 2015
SQL Debug avec Django @ PyConFr 2015
 
Pensez objets avec java
Pensez objets avec javaPensez objets avec java
Pensez objets avec java
 
[GAB2016] Azure DocumentDB - Jean-Luc Boucho
[GAB2016] Azure DocumentDB - Jean-Luc Boucho[GAB2016] Azure DocumentDB - Jean-Luc Boucho
[GAB2016] Azure DocumentDB - Jean-Luc Boucho
 

Plus de Boris Guarisma

Base de données graphe et Neo4j
Base de données graphe et Neo4jBase de données graphe et Neo4j
Base de données graphe et Neo4jBoris Guarisma
 
5.4 Arbres et forêts aléatoires
5.4 Arbres et forêts aléatoires5.4 Arbres et forêts aléatoires
5.4 Arbres et forêts aléatoiresBoris Guarisma
 
5.3 Régression logistique
5.3 Régression logistique5.3 Régression logistique
5.3 Régression logistiqueBoris Guarisma
 
5.2 Régression linéaire
5.2 Régression linéaire5.2 Régression linéaire
5.2 Régression linéaireBoris Guarisma
 
5.1 K plus proches voisins
5.1 K plus proches voisins5.1 K plus proches voisins
5.1 K plus proches voisinsBoris Guarisma
 
05 Sélection de modèle linéaire
05 Sélection de modèle linéaire05 Sélection de modèle linéaire
05 Sélection de modèle linéaireBoris Guarisma
 
Base de données graphe et Neo4j
Base de données graphe et Neo4jBase de données graphe et Neo4j
Base de données graphe et Neo4jBoris Guarisma
 
Music recommendations API with Neo4j
Music recommendations API with Neo4jMusic recommendations API with Neo4j
Music recommendations API with Neo4jBoris Guarisma
 

Plus de Boris Guarisma (9)

Base de données graphe et Neo4j
Base de données graphe et Neo4jBase de données graphe et Neo4j
Base de données graphe et Neo4j
 
5.4 Arbres et forêts aléatoires
5.4 Arbres et forêts aléatoires5.4 Arbres et forêts aléatoires
5.4 Arbres et forêts aléatoires
 
5.3 Régression logistique
5.3 Régression logistique5.3 Régression logistique
5.3 Régression logistique
 
5.2 Régression linéaire
5.2 Régression linéaire5.2 Régression linéaire
5.2 Régression linéaire
 
5.1 K plus proches voisins
5.1 K plus proches voisins5.1 K plus proches voisins
5.1 K plus proches voisins
 
05 Sélection de modèle linéaire
05 Sélection de modèle linéaire05 Sélection de modèle linéaire
05 Sélection de modèle linéaire
 
5.5 Clustering
5.5 Clustering5.5 Clustering
5.5 Clustering
 
Base de données graphe et Neo4j
Base de données graphe et Neo4jBase de données graphe et Neo4j
Base de données graphe et Neo4j
 
Music recommendations API with Neo4j
Music recommendations API with Neo4jMusic recommendations API with Neo4j
Music recommendations API with Neo4j
 

Dernier

To_understand_transformers_together presentation
To_understand_transformers_together presentationTo_understand_transformers_together presentation
To_understand_transformers_together presentationbahija babzine
 
Bidirectional Encoder Representations from Transformers
Bidirectional Encoder Representations from TransformersBidirectional Encoder Representations from Transformers
Bidirectional Encoder Representations from Transformersbahija babzine
 
Le contrôle de la recherche d'emploi en 2023
Le contrôle de la recherche d'emploi en 2023Le contrôle de la recherche d'emploi en 2023
Le contrôle de la recherche d'emploi en 2023France Travail
 
Recurrent neural network_PresentationRNN.pptx
Recurrent neural network_PresentationRNN.pptxRecurrent neural network_PresentationRNN.pptx
Recurrent neural network_PresentationRNN.pptxbahija babzine
 
ELABE BFMTV L'Opinion en direct - Les Français et les 100 jours de Gabriel Attal
ELABE BFMTV L'Opinion en direct - Les Français et les 100 jours de Gabriel AttalELABE BFMTV L'Opinion en direct - Les Français et les 100 jours de Gabriel Attal
ELABE BFMTV L'Opinion en direct - Les Français et les 100 jours de Gabriel Attalcontact Elabe
 
Montant moyen du droit d'allocation chômage versé aux demandeurs d'emploi ind...
Montant moyen du droit d'allocation chômage versé aux demandeurs d'emploi ind...Montant moyen du droit d'allocation chômage versé aux demandeurs d'emploi ind...
Montant moyen du droit d'allocation chômage versé aux demandeurs d'emploi ind...France Travail
 

Dernier (6)

To_understand_transformers_together presentation
To_understand_transformers_together presentationTo_understand_transformers_together presentation
To_understand_transformers_together presentation
 
Bidirectional Encoder Representations from Transformers
Bidirectional Encoder Representations from TransformersBidirectional Encoder Representations from Transformers
Bidirectional Encoder Representations from Transformers
 
Le contrôle de la recherche d'emploi en 2023
Le contrôle de la recherche d'emploi en 2023Le contrôle de la recherche d'emploi en 2023
Le contrôle de la recherche d'emploi en 2023
 
Recurrent neural network_PresentationRNN.pptx
Recurrent neural network_PresentationRNN.pptxRecurrent neural network_PresentationRNN.pptx
Recurrent neural network_PresentationRNN.pptx
 
ELABE BFMTV L'Opinion en direct - Les Français et les 100 jours de Gabriel Attal
ELABE BFMTV L'Opinion en direct - Les Français et les 100 jours de Gabriel AttalELABE BFMTV L'Opinion en direct - Les Français et les 100 jours de Gabriel Attal
ELABE BFMTV L'Opinion en direct - Les Français et les 100 jours de Gabriel Attal
 
Montant moyen du droit d'allocation chômage versé aux demandeurs d'emploi ind...
Montant moyen du droit d'allocation chômage versé aux demandeurs d'emploi ind...Montant moyen du droit d'allocation chômage versé aux demandeurs d'emploi ind...
Montant moyen du droit d'allocation chômage versé aux demandeurs d'emploi ind...
 

04 Introduction au logiciel R

  • 1. Introduction au logiciel R 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 1
  • 2. Objectifs  Comprendre pour quoi R est une compétence demandée pour un profil Data Scientist  Connaître les structure de données et les fonctionnalités de base du logiciel R  Avoir une connaissance plus approfondie sur la structure de données data.frame, à la base de l’analyse de données  Savoir effectuer de la manipulation de données avec un package spécialisé: dplyr  Savoir faire de la statistique descriptive  Savoir afficher des graphique utiles à l’exploration de données avec un package spécialisé: ggplot2 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 2
  • 3. Sommaire • Le logiciel R, pour quoi R ? • Installation • Fichiers et dossiers • Opérations mathématiques et logiques • Déclaration de variables • Structures de données: • vector, list, • data.frame, matrix, array • Import /Export de données •Visualisation de données et de métadonnées 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 3 • Manipulation et sélection de données • package dplyr • model.matrix() • données tidy • Fonctions mathématiques • Fonctions statistiques, distributions • moyenne, médiane, variance, écart-type • symétrie, boîte à moustaches • histogramme, fonction de densité • loi normale, théorème de limite centrale • loi binomiale • hypothèse statistique • Fonctions graphiques, package ggplot2
  • 4. Le logiciel R • logiciel de statistique, gratuit et à code source ouvert (open source) • langage informatique • environnement de travail • orientée objet • syntaxe proche de C • multiplateforme (Linux, Windows, Mac) • système de documentation intégrée • fonctions de traitement de données et capacité de stockage de données • vaste et cohérente collection de procédures statistiques et de librairies de machine learning • capacités graphiques évoluées • peut s’interfacer avec un éventail de sources et de bases de données (SGBDR, NoSQL, URL, …) 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 4
  • 5. Pour quoi R ? • Approche pédagogique • maîtrise des méthodes statistiques pour parvenir à les mettre en œuvre • création de ses propre outils ou « produits de données » avec des analyses très sophistiquées et customisées sur les données • Compétence demandée pour les profils Data Scientist • Adaptations réussies et toujours en cours avec le Big Data (cluster de machines) • RHadoop • SparkR (API R de Spark) • Microsoft Azure Machine Learning (AML) • Microsoft R Services: R Open, DistributedR, ScaleR, ConnectR, DevelopR, DeployR 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 5
  • 6. Installation • R est disponible à l’URL suivante : https://cran.r-project.org/ • Linux: utilisez le gestionnaire de packages habituel plutôt que d’installer à partir du site CRAN (Ubuntu [Synaptic], dpkg [Debian], pkg [Mac OS X], RPM [Red Hat]...) • Windows: préférez la version 64-bits, sinon 32-bits mais pas les deux • Rstudio est disponible à l’URL suivante : : https://www.rstudio.com/products/RStudio/ • télécharger RStudio Desktop (pas Server) • support Windows, Mac, and Linux 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 6
  • 7. Rstudio avec R déjà installé 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 7
  • 8. Fichiers et dossiers • Afficher le environnement de travail courant (working directory) • Afficher les objets de l’espace de travail locale (local workspace) • Fonctions de gestion de fichiers et de dossiers • Elles peuvent s’exécuter également dans RStudio • Documentation toujours accessible: ?file.info • Windows: le backslash « » ne marche pas, utilisez « / » 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 8 Ryan G., R Essentials Refcard #232, DZone
  • 9. Opérations arithmétiques et logiques • Calculatrice, essayez ! 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 9 Lafaye et al., Le logiciel R, ISBN 9782817801148, Springer, 2012
  • 10. Déclaration de variables • a <- 12; b <- 0.6; c <- 1+2i; d <- NA; e <- FALSE; f <- "abc" • L’égalité a = 12 marche aussi; utilisation de "<-" bien répandue dans la communauté • Types • numeric: integer, double • complex • logical • NA (logical) • character • raw (binaire) • Différences entre typeof() et class() … et mode() • Conversions avec as.integer("3.4"), as.character(2.3), as.raw(10), … 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 10 donnée manquante
  • 11. Structures de données • vector • list • data.frame • matrix • array (matrices multidimensionnelles) 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 11
  • 12. Structures de données: vector • Une suite de données de même type • Création avec • la fonction c() • la fonction seq(from=, to=, by=) • les deux points ":" • Si plusieurs types différents alors R opère une conversion implicite vers le type le plus général • Opérations • c(1,2,3) + c(2,1,2) • c(1,2,3) * c(2,1,2) • c(1,2,3) * c(2,2) … oops • c(1,2,3,4) * c(2,2) • Accès • x <- c(1,2,58,5); a[1]; a[1:3]; a[1,c(3:4)] 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 12 Ryan G., R Essentials Refcard #232, DZone
  • 13. Structures de données: list • La plus souple et la plus riche • Regroupe dans une même structure des types différents • A <- list(2.5, c(1:5), "toto") • A[[1]]; A[2:3] • B <- list(nom="dupont", notes=c(10,15,18)) • A <- setNames(object = A, c("x1", "x2", "x3")) • Vous pouvez ajouter vos modèles afin d’effectuer de comparaisons par exemple 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 13
  • 14. Structures de données: data.frame • Tableau d’individus ou observations x variables • imc <- data.frame(sexe=c("H", "F", "F", "H"), taille=c(1.83,1.76,1.60,1.78), poids=c(67, 58, 48, 66), row.names=c("Guy", "Lola", "Cécile", "Franck")) 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 14
  • 15. Structures de données: data.frame • Organiser les chaînes de caractères avec factor() et ordered() • imc$classe <- factor(c("A", "B", "A", "B"), levels=c("A", "B")) • imc$taillec <- ordered(c("Grand", "Grand", "Petit", "Grand"), levels=c("Petit", "Moyen", "Grand")) • Essayez imc[order(imc$taillec),]; imc[order(imc$taillec, imc$poids),] • Concaténation de lignes et de colonnes: rbind(), cbind() 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 15 visualisation de méta-données, on verra plus loin …
  • 16. Structures de données: data.frame • Afficher le nombre d’observations et le nombre de variables; afficher les noms des variables • Afficher l’observation « Lola » avec les valeurs de toutes les variables • Afficher la 3e observation avec les valeurs de toutes les variables • Afficher la 3e observation avec les valeurs de la 1ère et 3e variables • Afficher la valeur de « poids » pour la dernières observation • Afficher les deux dernières observations avec les valeurs de toutes les variables • Afficher les valeurs la 3e variable pour toutes les observations, 2 solutions au moins • quelle est le type du résultat retourné ? • Afficher les valeurs de la 1ère et 3e variables pour toutes les observations, 2 solutions au moins • quelle est le type du résultat retourné ? 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 16
  • 17. Structures de données: matrix • Généralisation de la notion de vecteur: suite à 2 indices, dimension = 2 • Les éléments doivent avoir le même type 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 17
  • 18. Structures de données: matrix • Afficher les dimensions de la matrice • Afficher uniquement le nombre de lignes • Afficher uniquement le nombre de colonnes • Afficher les valeurs d’une ligne quelconque; idem pour une colonne quelconque • rowSums(X) • colSums(X) • rowMeans(X) • colMeans(X) 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 18 Opérations matricielles Chiquet J., Commandes usuelles de R
  • 19. Structures de données: array • Généralisation de la notion de vecteur: suite à multiples indices, dimension = n > 2 • Une matrix est un array de dimension 2 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 19 3 dimensions 3 dimensions
  • 20. Import / Export de données • RStudio • Import Dataset ou Text File … • Import Web URL • Les fonctions d’import • read.table • read.csv • read.delim • read.csv2 • read.delim2 • scan • Import de fichiers Excel et SAS • packages gdata et gremisc pour Excel • package foreign pour SAS 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 20 • La fonction d’export • write.table
  • 21. Import / Export de données • RStudio: Import Dataset • exécution d’un read.delim() 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 21
  • 22. Import / Export de données • RStudio: Import Web URL • exécution d’un read.table()après téléchargement du fichier • Alternative avec le package repmis >myurl <- paste0("https://dl.dropboxusercontent.com/u/187053213/ds/knn/knn_fraude_data.txt") >fraude_data <- repmis::source_data(myurl, sep = " ", header = TRUE) 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 22 trying URL 'https://dl.dropboxusercontent.com/u/187053213/ds/knn/knn_fraude_data.txt' Content type 'text/plain; charset=utf-8' length 236 bytes downloaded 236 bytes > knn_fraude_data <- read.table("C:UsersuserAppDataLocalTempRtmpiMhs4rdata306824ad7c05", header=TRUE, quote=""")
  • 23. Import / Export de données • La fonction read.table 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 23 nom de fichier, chemin absolue entouré par " " ou des ' ' peut être un accès distant: URL(http://...) inclure ou pas les noms des variables séparateur: " " ou "t" ou ";" ou … contrôle la conversion de chaines de caractères e facteurs (FALSE) ou les conserve (TRUE) remplace les valeurs manquantes par la chaîne de caractères spécifiée vecteur spécifiant les noms des observations ou lignes nombre maximum de lignes à lire si séparateur spécifié, alors les espaces blancs avant et après les chaînes de caractères seront considérées comme faisant partie de la chaîne de caractères. Pour éviter cela, on met à TRUE.
  • 24. Import / Export de données • On peut utiliser indifféremment les fonctions suivantes si l’on modifie les valeurs par défaut de sep et dec: 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 24 Niang Keita D., CNAM Module STA115 - Outils informatique de la statistique
  • 25. Import / Export de données • Import fichier Excel avec la package gdata • le fichier fichier.xls a été placé dans le répertoire C:Program FilesRR.2.2.1librarygdataxls xlsfile <- file.path(.path.package('gdata'), 'xls', 'fichier.xls') donnees <- read.xls(xlsfile) • on a créé un répertoire « rep » dans C:Program FilesRR.2.2.1librarygdata où on place le fichier xlsfile <- file.path(.path.package('gdata'), 'rep', 'fichier.xls') donnees <- read.xls(xlsfile) • Import fichier SAS avec la package foreign sasfilehome = "C:/Users/user/Dropbox/MySAS/Cours SAS" sasexehome = "C:/Program Files/SASHome/x86/SASFoundation/9.3" G=read.ssd(file.path(sasfilehome),"paysniv3",sascmd=file.path(sasexehome,"sas.exe")) 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 25
  • 26. Import / Export de données • Export d’objet (data.frame, vector, matrix, …) en fichier 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 26 Traitement des guillemets doubles incluses dans les chaînes de caractères; si quote=TRUE: • si « escape » chaque " est remplacé par " • si « double » chaque " est remplacé par "" si TRUE, les variables de mode caractère et les facteurs sont écrits entre "" nom du fichier en spécifiant le chemin absolue "C:/../../fichier.txt"
  • 27. Visualisation de données et de métadonnées • 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 27 Ryan G., R Essentials Refcard #232, DZone
  • 28. Manipulation et sélection de données • Fonctions de base 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 28 Chiquet J., Commandes usuelles de R
  • 29. Manipulation et sélection de données: package dplyr • install.packages("dplyr") • Sélection de colonnes select() • Nouvelles colonnes mutate() • Filtrage des observations filter() • Trie des observations arrange() • Summarise summarise() • Agrégation group_by() • Jointures inner_join(), left_join(), right_join(), full_join(), semi_join(), anti_join() 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 29
  • 30. Manipulation et sélection de données: package dplyr hflights %>% filter(Dest == "DFW", DepTime < 800) %>% arrange(desc(AirTime)) hflights %>% group_by(UniqueCarrier) %>% summarise(n_flights = n(), n_canc = sum(Cancelled == 1), p_canc = mean(Cancelled == 1) * 100, avg_delay = mean(ArrDelay, na.rm = TRUE)) %>% arrange(avg_delay, p_canc) 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 30
  • 31. Manipulation et sélection de données: fonction model.matrix() • as.data.frame(model.matrix(object = ~ ., data = Credit )) 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 31
  • 32. Manipulation et sélection de données: package tidy 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 32 • package« tidy » (tidy data)
  • 33. Fonctions mathématiques 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 33 Chiquet J., Commandes usuelles de R
  • 34. Fonctions statistiques et distributions Les résumés numériques • La fonction summary() • La fonction stat.desc() • package « pastecs » 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 34
  • 35. Les résumés numériques • stat.desc(iris[,1:4], basic = TRUE, desc = TRUE, norm = TRUE, p = 0.95) 1. nb d’observations 2. nb de valeurs NULL 3. nb de valeurs NA 4. minimum 5. maximum 6. différence entre max et min 7. somme des valeurs non manquantes 8. médiane 9. moyenne 10. écart-type de la moyenne 11. intervalle de confiance de la moyenne (p) 12. variance 13. écart-type 14. coefficient de variation 15. coefficient de symétrie 16. et son critère de significativité 17. coefficient de concentration 18. et son critère de significativité 19. statistique test de normalité Shapiro-Wilk 20. et sa probabilité associée Fonctions statistiques et distributions 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 35
  • 36. •b Médiane et moyenne 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 36 ggplot(data = iris, mapping = aes(x=Sepal.Width)) + geom_histogram(aes(y=..density..)) + geom_density() + geom_vline(xintercept = mean(iris$Sepal.Width), colour="blue") + geom_vline(xintercept = median(iris$Sepal.Width), colour="red")
  • 37. Boîte à moustaches 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 37 Coursera , MOOC Data Analysis and Statistical Inference, Duke University
  • 38. Coefficient de symétrie (skewness) et d’aplatissement (kurtosis) 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 38 Coursera , MOOC Data Analysis and Statistical Inference, Duke University skewness < 1 kurtosis > 0 skewness ~ 0 kurtosis ~ 0 skewness > 1 kurtosis > 0
  • 39. Variance, écart-type 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 39 Exemple avec la courbe de Gauss ou loi normale Coursera , MOOC Data Analysis and Statistical Inference, Duke University on peut dire qu’en moyenne, les individus s’écartent de la moyenne d’un écart-type
  • 40. •b Intervalle de confiance 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 40 Pour une distribution normale: IC à 95% = moyenne ± 1.96 * SE IC à 95% = 3.0573 ± 1.96 * 0.0355 µ Coursera , MOOC Data Analysis and Statistical Inference, Duke University
  • 41. Distributions • d-: fonction de masse ou de densité • donne les valeurs P(X=j) • r-: génération de nombres pseudo-aléatoires • donne les échantillons • p-: fonction de répartition • donne les valeurs P(X<=x) • q-: fonction quantile • donne la valeur y telle que P(X=x) = y 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 41 Chiquet J., Commandes usuelles de R Exemple: loi normale • dnorm() • rnorm() • pnorm() • qnorm()
  • 42. Histogramme • une variable quantitative continue: iris$Sepal.Length • ggplot(iris, aes(x=Sepal.Length)) + geom_histogram(binwidth = 0.25, fill = 'black') 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 42 binwidth = 5 binwidth = 1 binwidth = 0.25 binwidth = 0.1
  • 43. Courbe de densité • Une variable quantitative continue: iris$Sepal.Length • ggplot(iris, aes(x=Sepal.Length)) + geom_density() • On s’intéresse à la forme de la courbe, pas aux valeurs sur les ordonnées 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 43 aire sous la courbe = 1 l’axe des ordonnées (y) n’a pas d’unités, on ne cherche pas à l’interpréter ! elle nous servira à calculer des probabilités
  • 44. La loi normale • La loi normale • l'une des lois de probabilité les plus adaptées pour modéliser des phénomènes naturels issus de plusieurs événements aléatoires. • loi gaussienne, loi de Gauss ou loi de Laplace- Gauss. • 𝜨(𝝁, 𝝈 𝟐), deux paramètres: • moyenne 𝝁 • écart-type 𝝈 • Densité de probabilité 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 44 courbe de densité ou de Gauss
  • 45. La loi normale • Deux échantillons de 1000 observations chacun générés par rnorm() 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 45 df <- data.frame(X1 = rnorm(n = 10000, mean = 7, sd = 1), X2 = rnorm(n = 10000, mean = 7, sd = 3)) head(df$X1, n = 10) 6.663734 6.319440 6.364606 5.808029 7.481073 8.357453 7.632734 7.525970 7.168708 8.118269 head(df$X2, n = 10) 10.260346 8.288047 7.271359 8.745277 10.877368 4.741585 6.883856 8.892518 4.373987 9.141098 ggplot() + geom_density(aes(x=df$X1, y=..density..),col='red') + geom_density(aes(x=df$X2, y=..density..),col='blue') + labs(x="valeurs de X1 et X2")
  • 46. La loi normale • Deux échantillons de 1000 observations chacun générés par rnorm() 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 46 df <- data.frame(X1 = rnorm(n = 10000, mean = 7, sd = 1), X2 = rnorm(n = 10000, mean = 7, sd = 3)) ggplot() + geom_line(aes(x=df$X1, y=dnorm(df$X1, 7, 1)), col='red') + geom_line(aes(x=df$X2, y=dnorm(df$X2, 7, 3)), col='blue') + labs(x="valeurs de X1 et X2", y ="dnorm()")
  • 47. La loi normale • Distribution centrée et réduite: N(0, 1) 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 47 𝑧 = 𝑋 − 𝜇 𝜎 𝑧 = 64−71 20.25 = −1.56 Griffiths D., Head First Statistics, O’Reilly, ISBN 9780596527587,2008
  • 48. La loi normale • Distribution centrée et réduite: N(0, 1) 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 48 df <- data.frame(Z1 = scale(rnorm(n = 10000, mean = 7, sd = 1)), Z2 = scale(rnorm(n = 10000, mean = 7, sd = 3))) ggplot() + geom_line(aes(x=df$X1, y=dnorm(df$X1)), col='red') + geom_line(aes(x=df$X2, y=dnorm(df$X2)), col='blue') + labs(x="valeurs de Z1 et Z2", y ="dnorm()") deux courbes superposées: même moyenne (0) et écart- type (1) l’axe des x à l’échelle des valeurs de la statistique Z𝑧 = 𝑋 − 𝜇 𝜎
  • 49. La loi normale • Probabilité P(Z > z) = 1 – P(Z < z) 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 49 # P(z < -1.56) pnorm(q = -1.56) # par défaut mean=0, sd=1 0.0593 # Alors P(z > -1.56) = 1 - pnorm(q = -1.56) = 0.9406201 # Alternative 1 (q = Z) pnorm(q = -1.56, lower.tail = FALSE) 0.9406201 # Alternative 2 (q = X) pnorm(q = 64, mean = 71, sd = sqrt(20.25), lower.tail = FALSE) 0.9400931 calculée par défaut avec pnorm() Griffiths D., Head First Statistics, O’Reilly, ISBN 9780596527587,2008
  • 50. La loi normale • Cherchons z sachant la probabilité 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 50 qnorm(p = 0.94, mean = 71, sd = sqrt(20.25), lower.tail = FALSE) 64.00352 qnorm(p = 0.94, mean = 0, sd = 1, lower.tail = FALSE) -1.554774 𝑧 = 𝑋 − 𝜇 𝜎 Griffiths D., Head First Statistics, O’Reilly, ISBN 9780596527587,2008
  • 51. La loi normale • Soient n variables aléatoires X1, X2, …, Xn • indépendantes et identiquement distribuées (noté i.d.d.) de la loi normale • de moyenne 𝝁 = 7 • d’écart-type 𝝈 = 1 • Soit ത𝑋 𝑛 = 1 𝑛 σ𝑖=1 𝑛 𝑋𝑖 • ത𝑋 𝑛 est une variable aléatoire • ҧ𝑥 𝑛 sont les réalisations de ത𝑋 𝑛 • 𝜇 = Ε 𝑋 est l’espérance théorique • Loi des grands nombres • lorsque n → ∞, ത𝑋 𝑛 → Ε 𝑋 = 𝜇 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 51 X1 <- rnorm(n = 1, mean = 7, sd = 1) X2 <- rnorm(n = 1, mean = 7, sd = 1) X3 <- rnorm(n = 1, mean = 7, sd = 1) X4 <- rnorm(n = 1, mean = 7, sd = 1) mean(c(X1, X2, X3, X4)) 6.626811 X1 <- rnorm(n = 1, mean = 7, sd = 1) X2 <- rnorm(n = 1, mean = 7, sd = 1) X3 <- rnorm(n = 1, mean = 7, sd = 1) X4 <- rnorm(n = 1, mean = 7, sd = 1) mean(c(X1, X2, X3, X4)) 6.712035 X1 <- rnorm(n = 1, mean = 7, sd = 1) X2 <- rnorm(n = 1, mean = 7, sd = 1) X3 <- rnorm(n = 1, mean = 7, sd = 1) X4 <- rnorm(n = 1, mean = 7, sd = 1) mean(c(X1, X2, X3, X4)) 7.181946 est une réalisation ҧ𝑥4 de ത𝑋4 est une réalisation ҧ𝑥4 de ത𝑋4 est une réalisation ҧ𝑥4 de ത𝑋4 3 réalisations successives et imprévisibles fluctuant autour de 𝜇 = 7
  • 52. Théorème de la limite centrale 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 52 population N échantillon n obs. échantillon n obs. échantillon n obs. échantillon n obs. moyenne ഥ𝒙1 moyenne ഥ𝒙2 moyenne ഥ𝒙3 moyenne ഥ𝒙18 Exemple: population des femmes en France; on s’intéresse à leur taille en mètres 𝜇 = 𝑥1 + 𝑥2 + … + 𝑥𝑁 𝑁 𝜎 = σ𝑖=1 𝑁 𝑥𝑖 − 𝜇 2 𝑁 Exemple: échantillons par région Distribution d’échantillonnage (sampling distribution) la distribution de la moyenne suit une loi normale • de moyenne ~ 𝜇 • d’écart-type SE = 𝜎 𝑛 < 𝜎 Condition d’indépendance • échantillonnage aléatoire • taille d’échantillons n < 10% de N Condition taille/symétrie • soit la distribution de la population suit une loi normale • soit elle est pas trop « skewed » avec n > 30 … …
  • 53. Théorème de la limite centrale 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 53 taille des échantillons la distribution de la population ne suit pas forcément une loi normale courbe rouge: loi normale plus grande la taille des échantillons, plus on se rapproche de la loi normale Coursera , MOOC Data Analysis and Statistical Inference, Duke University
  • 54. Théorème de la limite centrale 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 54 population N échantillon n obs. échantillon n obs. échantillon n obs. échantillon n obs. proportion 𝒑1 proportion 𝒑2 proportion 𝒑3 proportion 𝒑18 Exemple: proportion de fumeurs en France Exemple: échantillons par région Distribution d’échantillonnage (sampling distribution) la distribution de la moyenne suit une loi normale • de moyenne ~ 𝑝 • d’écart-type SE = 𝑝(𝑝−1) 𝑛 Condition d’indépendance • échantillonnage aléatoire • taille d’échantillons n < 10% de N Condition taille/symétrie • np > 10 et n(1-p) ≥ 10 𝑝 = 𝑛𝑏 𝑑𝑎𝑛𝑠 𝑢𝑛𝑒 𝑠𝑜𝑢𝑠 𝑝𝑜𝑝𝑢𝑙𝑎𝑡𝑖𝑜𝑛 𝑁 … …
  • 55. La loi binomiale • Loi de probabilité discrète qui modélise le nombre de succès obtenus lors de la répétition indépendante de plusieurs expériences aléatoires identiques. • Arbre de probabilité : à chaque génération de l'arbre, deux branches partent de chaque nœud, une pour le succès et une pour l'échec. • Probabilité de k succès dans une répétition de n expériences 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 55 une épreuve de Bernoulli: on utilise une variable aléatoire qui prend la valeur 1 (succès) ou 0 (échec). La v.a. X « somme de toutes ces variables aléatoires » Wikipedia, La loi binomaile
  • 56. La loi binomiale • « D’après une enquête Gallup 2013, seulement 13% d’employés (au niveau mondiale) sont motivés par leur travail. Si l’on prend un échantillon de 10 employés, quelles est la probabilité que 8 employés soient motivés par leur travail ? » • Probabilité de succès: p = 0.13 • Probabilité d’échec: 1 - p = 0.87 • Nombre d’épreuves: n = 10 • Nombre de succès: k = 8 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 56 >dbinom(x = 8, size = 10, prob = 0.13) >2.77842e-06 >choose(n = 10, k = 8) >45 Note: >choose(n = 10,k = 8) * 0.13^8 * 0.87^2 >2.77842e-06
  • 57. La loi binomiale • Fonction de masse 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R x <- 0:10 qplot(x = factor(x), ymin = 0, ymax = dbinom(x,10,0.13), geom = 'linerange')
  • 58. La loi binomiale • Probabilité P(1 ≤ X ≤ 3) 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R sum(dbinom(x = 1:3, size = 10, prob = 0.13)) 0.7202718 # égale à l’aire
  • 59. La loi binomiale 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 59 • dbinom(x, size, prob) • donne la valeur P(X=k) sachant que X suit une loi B(n, p) • dbinom(x = 8, size = 10, prob = 0.13)  2.77842e-06 • rbinom(n = 10, size, prob) • donne un échantillon de taille 10 extrait d’une population suivant une loi B(n, p) • rbinom(n = 10, size = 10, prob = 0.13)  3 1 1 1 2 4 1 0 1 1 • pbinom(q, size, prob) • donne P(X ≤ k) sachant que X suit une loi B(n, p), c’est-à-dire la valeur de la fonction de répartition F(k) • pbinom(q = 0:10, size = 10, prob = 0.13) 0.2484234 0.6196308 0.8692358 0.9686952 0.9947033 0.9993668 0.9999475 0.9999971 0.9999999 1.0000000 1.0000000 • qbinom(p, size, prob) • est le quantile, c’est-à-dire la plus petite valeur x telle que F(x) = P(X ≤ x) ≥ q • qbinom(p = 0.5, size = 10, prob = 0.13)  1 • qbinom(p = 0.9, size = 10, prob = 0.13)  3
  • 60. L’hypothèse statistique 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 60 • Exemple d’une démarche classique; test d’hypothèse sur la moyenne d’une population: • Recherches sur les enfants surdoués. • Des chercheurs ont collecté des données provenant des écoles d’une grande ville. Ils ont sélectionné au hasard un échantillon de 36 enfants identifiés come surdoués juste après l’âge de 4 ans. Durant l’étude, en plus de la collecte des données des enfants, le QI de leur mères respectives a été également collecté. Voir l’histogramme des QI des mères ci-dessous. • Effectuer un test d’hypothèse afin d’évaluer si les données apportent suffisamment de preuves sur une différence existante entre la moyenne des QI des mères d’enfants surdoués et celle, connue et égale à 100, d’une population plus large de mères. Considérer un seuil de signification de 1%. » 1. Etablir les hypothèses: nulle (H0) et alternative (HA) 2. Estimation de la moyenne à partir des données ( ҧ𝑥 = 118.2) 3. Check des conditions: indépendance + n>30 + symétrie de la distribution 4. Calculer la statistique Z = ( ҧ𝑥 − µ)/𝑆𝐸 5. Déterminer la p-value et la comparer à 1% 6. Prendre une décision (rejet ou pas de H0), interprétation
  • 61. L’hypothèse statistique 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 61 • La finalité d’un test est de prendre une décision: rejeter ou non l’hypothèse nulle. • Définir un seuil de signification (α) du test: pourcentage de chances de rejeter l’hypothèse nulle, alors qu’en réalité celle-ci était vraie. • lié au niveau du risque accepté (usuellement 5%). • C’est la puissance du test (1 - β) qui donne une estimation de la probabilité de trouver des différences significatives (si elles existent) dans les données. 1 - α α 1 - β β
  • 62. L’hypothèse statistique 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 62 1. Etablir les hypothèses: nulle (H0) et alternative (HA) • H0 : µ = 100; HA : µ ≠ 100 2. Estimation de la moyenne à partir des données • ҧ𝑥 = 118.2 3. Check des conditions: • indépendance et 36 < 10% population, n>30, symétrie de la distribution • alors ത𝑋 ~ N(µ = 100, SE = 𝜎 𝑛 = 6.5 36 = 1.083) 4. Calculer la statistique • Z = ( ҧ𝑥 − µ)/𝑆𝐸 = (118.2 - 100)/1.083 = 16.8 5. Déterminer la p-value et la comparer à α = 1% = 0.01 • p-value = P( ത𝑋 > 100 ou ത𝑋 < 100 | H0 : µ = 100) = P(Z < -16.8) + P(Z > 16.8) • pnorm(q = -16.8) + pnorm(q = 16.8, lower.tail = FALSE) ~ 0 6. Prendre une décision (rejet ou pas de H0), interprétation • p-value ~ 0 < α = 0.01  on rejette H0
  • 63. Tableau de contingence • 2 variables catégorielles • départements d’IDF (IDF) • type de voiture (TV) 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 63 Ber23Neuve Ber45Neuve BreakNeuf MonospNeuf Bar23Occas Ber45Occas BreakOccas MonospOccas Paris 7 592 29 211 5 743 15 016 18 946 41 123 4 181 9 824 Seine-et-Marne 5 058 17 810 2 604 10 216 23 794 60 408 5 410 13 865 Yvelines 9 371 35 977 7 707 21 133 23 741 58 578 5 474 14 870 Essonne 5 121 18 230 2 702 10 653 21 935 54 347 4 589 13 073 Hauts-de-Seine 8 187 35 629 7 565 24 885 20 464 45 076 4 237 11 839 Seine-Saint-Denis 2 738 12 803 1 746 7 286 23 872 62 764 4 336 11 705 Val-de-Marne 4 072 14 977 1 977 8 057 19 683 45 512 3 288 10 541 Val-d'Oise 4 227 15 380 2 306 8 151 21 738 53 258 4 111 11 595 Cette table peut être importée à partir d’un fichier texte: voitures_IDF.txt Etant donnée que le format d’importation est un data.frame alors on doit convertir ce dernier au format table afin d’effectuer les manipulations qui suivent table_IDF <- as.table(as.matrix(df)) 1092307 total effectifs
  • 64. Distributions marginales (1) • A partir du tableau de contingence précédent, on rajoute les marges en bas et à droite, resp. • addmargins(table_IDF, margin = 1, FUN = sum, quiet = TRUE) • addmargins(table_IDF, margin = 2, FUN = sum, quiet = TRUE) 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 64 Ber23Neuve Ber45Neuve BreakNeuf MonospNeuf Bar23Occas Ber45Occas BreakOccas MonospOccas Paris 7 592 29 211 5 743 15 016 18 946 41 123 4 181 9 824 Seine-et-Marne 5 058 17 810 2 604 10 216 23 794 60 408 5 410 13 865 Yvelines 9 371 35 977 7 707 21 133 23 741 58 578 5 474 14 870 Essonne 5 121 18 230 2 702 10 653 21 935 54 347 4 589 13 073 Hauts-de-Seine 8 187 35 629 7 565 24 885 20 464 45 076 4 237 11 839 Seine-Saint-Denis 2 738 12 803 1 746 7 286 23 872 62 764 4 336 11 705 Val-de-Marne 4 072 14 977 1 977 8 057 19 683 45 512 3 288 10 541 Val-d'Oise 4 227 15 380 2 306 8 151 21 738 53 258 4 111 11 595 Total 131 636 139 165 176 851 130 650 157 882 127 250 108 107 120 766 Ber23Neuve Ber45Neuve BreakNeuf MonospNeuf Bar23Occas Ber45Occas BreakOccas MonospOccas Paris 7 592 29 211 5 743 15 016 18 946 41 123 4 181 9 824 Seine-et-Marne 5 058 17 810 2 604 10 216 23 794 60 408 5 410 13 865 Yvelines 9 371 35 977 7 707 21 133 23 741 58 578 5 474 14 870 Essonne 5 121 18 230 2 702 10 653 21 935 54 347 4 589 13 073 Hauts-de-Seine 8 187 35 629 7 565 24 885 20 464 45 076 4 237 11 839 Seine-Saint-Denis 2 738 12 803 1 746 7 286 23 872 62 764 4 336 11 705 Val-de-Marne 4 072 14 977 1 977 8 057 19 683 45 512 3 288 10 541 Val-d'Oise 4 227 15 380 2 306 8 151 21 738 53 258 4 111 11 595 Total 46366 180017 32350 105397 174173 421066 35626 97312
  • 65. Distributions marginales (2) • A partir du tableau de contingence précédent, obtient uniquement les marges en bas et à droite • margin.table(table_IDF, margin = 1) • margin.table(table_IDF, margin = 2) 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 65 Total 131 636 139 165 176 851 130 650 157 882 127 250 108 107 120 766 Total 46366 180017 32350 105397 174173 421066 35626 97312
  • 66. Distribution conjointe • P(TV, IDF) : à partir du tableau de contingence, on divise par le total d’effectifs: tdjoint <- table_IDF/sum(table_IDF) 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 66 Ber23Neuve Ber45Neuve BreakNeuf MonospNeuf Bar23Occas Ber45Occas BreakOccas MonospOccas Paris 0.0070 0.0267 0.0053 0.0137 0.0173 0.0376 0.0038 0.0090 Seine-et-Marne 0.0046 0.0163 0.0024 0.0094 0.0218 0.0553 0.0050 0.0127 Yvelines 0.0086 0.0329 0.0071 0.0193 0.0217 0.0536 0.0050 0.0136 Essonne 0.0047 0.0167 0.0025 0.0098 0.0201 0.0498 0.0042 0.0120 Hauts-de-Seine 0.0075 0.0326 0.0069 0.0228 0.0187 0.0413 0.0039 0.0108 Seine-Saint-Denis 0.0025 0.0117 0.0016 0.0067 0.0219 0.0575 0.0040 0.0107 Val-de-Marne 0.0037 0.0137 0.0018 0.0074 0.0180 0.0417 0.0030 0.0097 Val-d'Oise 0.0039 0.0141 0.0021 0.0075 0.0199 0.0488 0.0038 0.0106 Total 0.1205 0.1274 0.1619 0.1196 0.1445 0.1165 0.0990 0.1106 Total 0.0424 0.1648 0.0296 0.0965 0.1595 0.3855 0.0326 0.0891 1
  • 67. Distributions conditionnelles • Profils lignes: à partir du tableau de contingence, on divise les effectifs par le total ligne • Distribution conditionnelle de TV sachant IDF • P(TV | IDF) = prop.table(x = table_IDF, margin = 1) Ber23Neuve Ber45Neuve BreakNeuf MonospNeuf Bar23Occas Ber45Occas BreakOccas MonospOccas Paris 0.05767419 0.22190738 0.04362788 0.11407214 0.14392719 0.31239934 0.03176183 0.07463004 Seine_et_Marne 0.03634535 0.12797758 0.01871160 0.07340926 0.17097690 0.43407466 0.03887472 0.09962994 Yvelines 0.05298811 0.20343114 0.04357906 0.11949607 0.13424295 0.33122798 0.03095261 0.08408208 Essonne 0.03919633 0.13953310 0.02068121 0.08153846 0.16789131 0.41597398 0.03512438 0.10006123 Hauts_de_Seine 0.05185518 0.22566854 0.04791553 0.15761771 0.12961579 0.28550436 0.02683650 0.07498638 Seine_Saint_Denis 0.02151670 0.10061297 0.01372102 0.05725737 0.18759921 0.49323379 0.03407466 0.09198428 Val_de_Marne 0.03766639 0.13853867 0.01828744 0.07452801 0.18206962 0.42099032 0.03041431 0.09750525 Val_dOise 0.03500157 0.12735373 0.01909478 0.06749416 0.18000099 0.44100161 0.03404104 0.09601212 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 67
  • 68. Distributions conditionnelles • Profils colonnes: à partir du tableau de contingence, on divise les effectifs par le total colonne • Distribution conditionnelle de IDF sachant TV • P(IDF | TV) = prop.table(x = table_IDF, margin = 2) Ber23Neuve Ber45Neuve BreakNeuf MonospNeuf Bar23Occas Ber45Occas BreakOccas MonospOccas Paris 0.16374067 0.16226801 0.17752705 0.14247085 0.10877691 0.09766402 0.11735811 0.10095363 Seine_et_Marne 0.10908856 0.09893510 0.08049459 0.09692876 0.13661130 0.14346445 0.15185539 0.14247986 Yvelines 0.20210930 0.19985335 0.23823802 0.20050855 0.13630701 0.13911833 0.15365183 0.15280746 Essonne 0.11044731 0.10126821 0.08352396 0.10107498 0.12593800 0.12907003 0.12881042 0.13434109 Hauts_de_Seine 0.17657335 0.19792020 0.23384853 0.23610729 0.11749238 0.10705210 0.11892999 0.12166023 Seine_Saint_Denis 0.05905189 0.07112106 0.05397218 0.06912910 0.13705913 0.14905977 0.12170886 0.12028321 Val_de_Marne 0.08782297 0.08319770 0.06111283 0.07644430 0.11300833 0.10808757 0.09229215 0.10832169 Val_dOise 0.09116594 0.08543638 0.07128284 0.07733617 0.12480694 0.12648373 0.11539325 0.11915283 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 68
  • 69. Fonctions graphiques • pour les variables quantitatives continues histogramme, boîte à moustache (boxplot) • pour les variables quantitatives discrètes • tuyaux d’orgue, mosaïque • pour les variables qualitatives • diagramme de Pareto, empilé, circulaire • pour les variables ordinales • tuyaux d’orgue avec courbe de fréquence cumulée • dans un cadre bivarié • Croisement de deux variables quantitatives: nuage de points • Croisement d’une variable quantitative et d’une variable qualitative: boxplot, stripchart 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 69
  • 70. R package ggplot2 • library(ggplot2) • Wilkinson, L., Grammar of Graphics, 1999 • 2 principes • Graphiques = différentes couches d’éléments « grammaticaux » • couches = noms, adjectifs, etc. • Visualisations pertinentes via un mapping d’esthétiques (aesthetic) • règles grammaticales 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 70 Elément Description Data Les données à visualiser Esthétique (Aesthetics) Les échelles sur lesquelles on mappe les données Géométrie Les éléments visuels utilisés pour les données Facettes (Facets) comment diviser notre graphique Statistiques Représentation des données pour faciliter la compréhension Coordonnées L’espace dans lequel les données seront affichées Thèmes Tout élément « non data »
  • 71. R package ggplot2 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 71 o Coordinates o Statistics o Facets o Geometries o Aesthetics o Data
  • 72. R package ggplot2 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 72 • >View(iris)
  • 73. R package ggplot2 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 73 ggplot(iris, aes(x=Sepal.Length, y=Sepal.Width)) + geom_point() o Geometries o Aesthetics o Data
  • 74. R package ggplot2 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 74 ggplot(iris, aes(x=Sepal.Length, y=Sepal.Width, col=Species)) + geom_point() o Geometries o Aesthetics o Data
  • 75. R package ggplot2 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 75 ggplot(iris, aes(x=Sepal.Length, y=Sepal.Width, col=Species)) + geom_jitter() o Geometries o Aesthetics o Data
  • 76. R package ggplot2 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 76 ggplot(iris, aes(x=Sepal.Length, y=Sepal.Width)) + geom_jitter() + facet_grid(. ~ Species) o Facets o Geometries o Aesthetics o Data
  • 77. R package ggplot2 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 77 ggplot(iris, aes(x=Sepal.Length, y=Sepal.Width)) + geom_jitter() + facet_grid(. ~ Species) + stat_smooth(method="lm", se=F, col="red") o Statistics o Facets o Geometries o Aesthetics o Data
  • 78. R package ggplot2 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 78 ggplot(iris, aes(x=Sepal.Length, y=Sepal.Width)) + geom_jitter() + facet_grid(. ~ Species) + stat_smooth(method="lm", se=F, col="red") + scale_y_continuous("Sepal Width (cm)", limits=c(2,5), expand=c(0,0)) + scale_x_continuous("Sepal Length (cm)", limits=c(4,8), expand=c(0,0)) + coord_equal()
  • 79. R package ggplot2 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 79 DataCamp, MOOC Data Visualization with ggplot2 (1)
  • 80. R package ggplot2 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 80 Elément Exemples d’éléments Data variables d’intérêt Aesthetics x-axis y-axis colour fill size labels alpha shape line width line type Géométrie point line histogram bar boxplot Facets columns rows Statistiques binning smoothing descriptive inferential Coordonnées cartesian fixed polar limits Thèmes
  • 81. R package ggplot2 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 81 • Notion de données « tidy » (tidy data) Comment changer la structure de vos données pour réaliser le graphique désiré ? DataCamp, MOOC Data Visualization with ggplot2 (1)
  • 82. R package ggplot2 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 82 • package« tidy » (tidy data)
  • 83. R package ggplot2 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 83 Wong B., Nat Met, 2010, p665
  • 84. R package ggplot2 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 84 • Statistics: stat_ • stat_bin()compte le nombre d’observations dans un groupe • les fonctions suivantes appellent sta_bin() • geom_histogram() • geom_bar() • geom_freqploy() • stat_smooth()dessine une courbe avec un standard error (intervalle de confiance à 95%) • les fonctions suivantes appellent stat_smooth() • geom_smooth() voir message « warning » voir message « warning » datasets de grande taille DataCamp, MOOC Data Visualization with ggplot2 (1)
  • 85. R package ggplot2 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 85 • Statistics: stat_ • Données mammals du package MASS DataCamp, MOOC Data Visualization with ggplot2 (1) DataCamp, MOOC Data Visualization with ggplot2 (1)
  • 86. R package ggplot2 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 86 • Q-Q plot • Données mammals du package MASS DataCamp, MOOC Data Visualization with ggplot2 (1) DataCamp, MOOC Data Visualization with ggplot2 (1)
  • 87. Bibliographie • Lafaye et al., Le logiciel R, ISBN 9782817801148, Springer, 2012 • Chiquet J., Commandes usuelles de R, http://www.math.unicaen.fr/~chesneau/RCarte_Commandes-R.pdf, octobre 2015 • Griffiths D., Head First Statistics, O’Reilly, ISBN 9780596527587, 2008 • Ryan G., R Essentials Refcard #232, DZone, https://dzone.com/refcardz/r-essentials-1 • Site « Quick-R », http://www.statmethods.net/ • Coursera , MOOC Data Analysis and Statistical Inference, Duke University • DataCamp, MOOC Data Visualization with ggplot2 (1) • Niang Keita D., CNAM Module STA115 - Outils informatique de la statistique 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 87