04 Introduction au logiciel R

17 vues

Publié le

Version DRAFT d'une formation Data Scientist que j'ai conçue à partir de sources diverses (voir références bibliographiques à la fin de chaque diapositive).
La formation est destinée aux personnes possédant des bases (~BAC+2) en statistiques et programmation (j'utilise R).
Je reste ouvert à tout commentaire, critique et correction. Je continuerai à mettre à jour les diapositives et à en ajouter d'autres si j'ai le temps.

Publié dans : Données & analyses
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
17
Sur SlideShare
0
Issues des intégrations
0
Intégrations
0
Actions
Partages
0
Téléchargements
0
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

04 Introduction au logiciel R

  1. 1. Introduction au logiciel R 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 1
  2. 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. 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. 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. 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. 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. 7. Rstudio avec R déjà installé 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 7
  8. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 33. Fonctions mathématiques 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 33 Chiquet J., Commandes usuelles de R
  34. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 72. R package ggplot2 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 72 • >View(iris)
  73. 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. 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. 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. 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. 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. 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. 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. 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. 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. 82. R package ggplot2 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 82 • package« tidy » (tidy data)
  83. 83. R package ggplot2 30/06/2016 BORIS GUARISMA - FORMATION DATA SCIENTIST - INTRODUCTION AU LOGICIEL R 83 Wong B., Nat Met, 2010, p665
  84. 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. 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. 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. 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

×