SlideShare une entreprise Scribd logo
1  sur  24
Télécharger pour lire hors ligne
.
......
R : un langage pour l’analyse des donnees
Ahmadou H. Dicko
FASEG
Ahmadou H. Dicko (FASEG) R : un langage pour l’analyse des donnees 1 / 1
Introduction
On est entoure de donnees (data deluge)
On a besoin de prendre des decisions de maniere objective
els sont les outils qu’on peut utiliser ?
Ahmadou H. Dicko (FASEG) R : un langage pour l’analyse des donnees 2 / 1
R to the rescue
Ahmadou H. Dicko (FASEG) R : un langage pour l’analyse des donnees 3 / 1
Historique
R est un langage qui tirent ses racines de S, Lisp, scheme
elques dates importantes :
▶ 1990 : Ross Ihaka et Robert Gentleman developpe R
▶ 1996 : le projet devient open source
▶ 2013 : R 3.0 est sorti et il y a plus de 5000 packages (librarie)
Ahmadou H. Dicko (FASEG) R : un langage pour l’analyse des donnees 4 / 1
R comme une calculatrice
Les fonctions sont des objets par exemple
2 * 3 + 10
R output
[1] 16
x <- c(pi, 4*pi / 3)
log(-cos(x))
R output
[1] 0.0000 -0.6931
Ahmadou H. Dicko (FASEG) R : un langage pour l’analyse des donnees 5 / 1
Dans R tout est objet
Les fonctions sont des objets par exemple
mean(1:5)
R output
[1] 3
mamoyenne <- mean
mamoyenne(1:5)
R output
[1] 3
Ahmadou H. Dicko (FASEG) R : un langage pour l’analyse des donnees 6 / 1
Programmation fonctionnelle avec R
Supporte les lambda
(function(x) toupper(x))("a")
R output
[1] "A"
R ou Lisp ?
'*'(2, '+'(10, 4))
R output
[1] 28
Ahmadou H. Dicko (FASEG) R : un langage pour l’analyse des donnees 7 / 1
Programmation OOP avec R
Systeme de classe avec Reference
Polygone <- setRefClass("Polygone", fields = c("cotes"))
carre <- Polygone$new(cotes = 4)
triangle <- carre
triangle$cotes <- 3
carre$cotes
R output
R> R> R> [1] 3
Ahmadou H. Dicko (FASEG) R : un langage pour l’analyse des donnees 8 / 1
Programmation OOP avec R
Systeme de classe sans Reference
Polygone1 <- setClass("Polygone1", representation(cotes = "integer"))
carre1 <- new("Polygone1", cotes = 4L)
triangle1 <- carre1
triangle1@cotes <- 3L
carre1@cotes
R output
R> R> R> [1] 4
Ahmadou H. Dicko (FASEG) R : un langage pour l’analyse des donnees 9 / 1
R un langage matriciel
Creer une matrice
A <- matrix(c(1, 4, 6, 3, 0, 3, 5, 8, 9), ncol = 3)
A
R output
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 4 0 8
[3,] 6 3 9
Ahmadou H. Dicko (FASEG) R : un langage pour l’analyse des donnees 10 / 1
R un langage matriciel
Decomposition en valeur singuliere
svd(A)
R output
$d
[1] 15.17 2.86 1.66
$u
[,1] [,2] [,3]
[1,] -0.3562 -0.79150 0.4966
[2,] -0.5754 0.60458 0.5508
[3,] -0.7362 -0.08954 -0.6708
$v
[,1] [,2] [,3]
[1,] -0.4665 0.38100 -0.7983
[2,] -0.2161 -0.92422 -0.3148
[3,] -0.8578 0.02562 0.5134
Ahmadou H. Dicko (FASEG) R : un langage pour l’analyse des donnees 11 / 1
R un langage matriciel
Une autre decomposition utile
qr(A)
R output
$qr
[,1] [,2] [,3]
[1,] -7.2801 -2.8846 -12.500
[2,] 0.5494 3.1111 1.910
[3,] 0.8242 0.4063 -3.179
$rank
[1] 3
$qraux
[1] 1.137 1.914 3.179
$pivot
[1] 1 2 3
Ahmadou H. Dicko (FASEG) R : un langage pour l’analyse des donnees 12 / 1
Et les donnees dans tous ca ?
Ahmadou H. Dicko (FASEG) R : un langage pour l’analyse des donnees 13 / 1
Importation des donnees
voiture <- read.csv("voiture.csv", row.names = 1)
names(voiture) <- tolower(names(voiture))
str(voiture)
R output
R> 'data.frame': 18 obs. of 8 variables:
$ cyl : int 1350 1588 1294 1222 1585 1297 1796 1565 2664 1166 ...
$ puis : int 79 85 68 59 98 82 79 55 128 55 ...
$ lon : int 393 468 424 412 439 429 449 424 452 399 ...
$ lar : int 161 177 168 161 164 169 169 163 173 157 ...
$ poids : int 870 1110 1050 930 1105 1080 1160 1010 1320 815 ...
$ vitesse : int 165 160 152 151 165 160 154 140 180 140 ...
$ finition: Factor w/ 3 levels "B","M","TB": 1 3 2 2 1 3 1 1 3 2 ...
$ prix : int 30570 39990 29600 28250 34900 35480 32300 32000 47700 26540
Ahmadou H. Dicko (FASEG) R : un langage pour l’analyse des donnees 14 / 1
Exploration des donnees
ALFASUD-TI-1350
AUDI-100-L
SIMCA-1307-GLS
CITROEN-GS-CLUB
FIAT-132-1600GLS
LANCIA-BETA-1300
PEUGEOT-504
RENAULT-16-TL
RENAULT-30-TS
TOYOTA-COROLLA
ALFETTA-1.66
PRINCESS-1800-HL
DATSUN-200L
TAUNUS-2000-GL
RANCHO
MAZDA-9295
OPEL-REKORD-L
LADA-1300
cyl
puis
lon
lar
poids
vitesse
Ahmadou H. Dicko (FASEG) R : un langage pour l’analyse des donnees 15 / 1
Exploration des donnees
d = 2
ALFASUD-TI-1350
AUDI-100-L
SIMCA-1307-GLS
CITROEN-GS-CLUB
FIAT-132-1600GLS
LANCIA-BETA-1300
PEUGEOT-504 RENAULT-16-TL
RENAULT-30-TS
TOYOTA-COROLLA
ALFETTA-1.66
PRINCESS-1800-HL
DATSUN-200L
TAUNUS-2000-GL
RANCHO
MAZDA-9295
OPEL-REKORD-L
LADA-1300
cyl
puis
lon
lar
poids
vitesse
prix
Ahmadou H. Dicko (FASEG) R : un langage pour l’analyse des donnees 16 / 1
Modelisation
fit <- lm(prix ~ puis + lon + poids + vitesse,
data = voiture)
summary(fit)$coefficient
R output
R> Estimate Std. Error t value Pr(>|t|)
(Intercept) 9686.367 31605.59 0.3065 0.7641
puis 245.372 155.21 1.5809 0.1379
lon 22.920 99.67 0.2300 0.8217
poids 9.362 21.70 0.4314 0.6732
vitesse -103.140 192.28 -0.5364 0.6007
Ahmadou H. Dicko (FASEG) R : un langage pour l’analyse des donnees 17 / 1
Export vers BDD
require(RSQLite)
drv <- dbDriver("SQLite")
con <- dbConnect(drv, dbname = ":memory:")
dbGetInfo(con)
R output
R> R> $dbname
[1] ":memory:"
$serverVersion
[1] "3.7.14"
$rsId
integer(0)
$loadableExtensions
[1] "on"
$flags
[1] 6Ahmadou H. Dicko (FASEG) R : un langage pour l’analyse des donnees 18 / 1
Export vers BDD
dbWriteTable(con, "voiture", voiture)
voiture_chere <- dbGetQuery(con, "SELECT * FROM voiture
WHERE prix > 30000")
head(voiture_chere, 3)
R output
[1] TRUE
R> row_names cyl puis lon lar poids vitesse finition
1 ALFASUD-TI-1350 1350 79 393 161 870 165 B
2 AUDI-100-L 1588 85 468 177 1110 160 TB
3 FIAT-132-1600GLS 1585 98 439 164 1105 165 B
prix
1 30570
2 39990
3 34900
Ahmadou H. Dicko (FASEG) R : un langage pour l’analyse des donnees 19 / 1
La boite a outils du data hacker
un langage pour l’analyse de donnee : R, Python, Julia
un systeme de BDD (Spatial) : PostgreSQL, SQLite, (GRASS)
Version control : git
Graphique : R, D3.js, Vega.js
un editeur de texte : Emacs (org-mode, ESS, etc)
Unix tool (sed, grep, tail, etc)
Ahmadou H. Dicko (FASEG) R : un langage pour l’analyse des donnees 20 / 1
Liens pour aller plus loin
Stackoverflow : hp://stackoverflow.com
R-blogger : hp://www.r-bloggers.com
Kaggle : hp://www.kaggle.com/
Coursera :
▶ Machine learning (Standford)
▶ Computing for data analysis (John Hopkins U)
▶ Data analysis (John Hopkins U)
Ahmadou H. Dicko (FASEG) R : un langage pour l’analyse des donnees 21 / 1
Conclusion
Ahmadou H. Dicko (FASEG) R : un langage pour l’analyse des donnees 22 / 1
Conclusion
R est de facto le langage pour l’analyse de donnees
Possible d’utiliser d’autres outils :
▶ Python (scikit-learn, pandas, etc)
▶ Julia (the new kid on the block)
▶ C++ (inevitable quand on veut de la puissance, Rcpp)
Plus d’excuse pour utiliser MS Excel
Ahmadou H. Dicko (FASEG) R : un langage pour l’analyse des donnees 23 / 1
Merci de votre aention
Ahmadou H. Dicko (FASEG) R : un langage pour l’analyse des donnees 24 / 1

Contenu connexe

Similaire à R for data analysis

Analyse de données avec R : Une petite introduction
Analyse de données avec R : Une petite introductionAnalyse de données avec R : Une petite introduction
Analyse de données avec R : Une petite introductionAhmadou DICKO
 
Data Mining (Partie 2).pdf
Data Mining (Partie 2).pdfData Mining (Partie 2).pdf
Data Mining (Partie 2).pdfOuailChoukhairi
 
Présentation Logiciel R.pptx
Présentation Logiciel R.pptxPrésentation Logiciel R.pptx
Présentation Logiciel R.pptxssusera0d0e81
 
Utilisation potentielle de R dans un institut de statistique publique
Utilisation potentielle de R dans un institut de statistique publiqueUtilisation potentielle de R dans un institut de statistique publique
Utilisation potentielle de R dans un institut de statistique publiqueAhmadou DICKO
 
09 big data mapreduce
09 big data mapreduce09 big data mapreduce
09 big data mapreducePatrick Bury
 
R fait du la tex
R fait du la texR fait du la tex
R fait du la texCdiscount
 
09 big data mapreduce
09 big data mapreduce09 big data mapreduce
09 big data mapreducePatrick Bury
 
Beyond F5 - windbg et .Net
Beyond F5 - windbg et .NetBeyond F5 - windbg et .Net
Beyond F5 - windbg et .NetYann Schwartz
 
Introduction à l'analyse de réseaux avec R
Introduction à l'analyse de réseaux avec RIntroduction à l'analyse de réseaux avec R
Introduction à l'analyse de réseaux avec RLaurent Beauguitte
 
Première approche de cartographie sous R
Première approche de cartographie sous RPremière approche de cartographie sous R
Première approche de cartographie sous RCdiscount
 
Distances sémantiques dans des applications utilisant le web sémantique
Distances sémantiques dans des applications utilisant le web sémantiqueDistances sémantiques dans des applications utilisant le web sémantique
Distances sémantiques dans des applications utilisant le web sémantiqueFabien Gandon
 
Chapitre 3 - Généralités sur le langage C.pdf
Chapitre 3 - Généralités sur le langage C.pdfChapitre 3 - Généralités sur le langage C.pdf
Chapitre 3 - Généralités sur le langage C.pdfShiniGami0o0
 
Chap 1 Initiation.pptx
Chap 1 Initiation.pptxChap 1 Initiation.pptx
Chap 1 Initiation.pptxolfaharrabi2
 
C1 - Langage C - ISIMA - Première partie
C1 - Langage C - ISIMA - Première partieC1 - Langage C - ISIMA - Première partie
C1 - Langage C - ISIMA - Première partieLoic Yon
 
Chapitre i introduction et motivations
Chapitre i introduction et motivationsChapitre i introduction et motivations
Chapitre i introduction et motivationsSana Aroussi
 

Similaire à R for data analysis (20)

Analyse de données avec R : Une petite introduction
Analyse de données avec R : Une petite introductionAnalyse de données avec R : Une petite introduction
Analyse de données avec R : Une petite introduction
 
Data Mining (Partie 2).pdf
Data Mining (Partie 2).pdfData Mining (Partie 2).pdf
Data Mining (Partie 2).pdf
 
Présentation Logiciel R.pptx
Présentation Logiciel R.pptxPrésentation Logiciel R.pptx
Présentation Logiciel R.pptx
 
Google Developer Group (GDG) Aix-Marseille #1 (27/08/2018)
Google Developer Group (GDG) Aix-Marseille #1 (27/08/2018)Google Developer Group (GDG) Aix-Marseille #1 (27/08/2018)
Google Developer Group (GDG) Aix-Marseille #1 (27/08/2018)
 
Utilisation potentielle de R dans un institut de statistique publique
Utilisation potentielle de R dans un institut de statistique publiqueUtilisation potentielle de R dans un institut de statistique publique
Utilisation potentielle de R dans un institut de statistique publique
 
09 big data mapreduce
09 big data mapreduce09 big data mapreduce
09 big data mapreduce
 
R fait du la tex
R fait du la texR fait du la tex
R fait du la tex
 
09 big data mapreduce
09 big data mapreduce09 big data mapreduce
09 big data mapreduce
 
cours1.ppt
cours1.pptcours1.ppt
cours1.ppt
 
Initiation r
Initiation rInitiation r
Initiation r
 
Beyond F5 - windbg et .Net
Beyond F5 - windbg et .NetBeyond F5 - windbg et .Net
Beyond F5 - windbg et .Net
 
Introduction à l'analyse de réseaux avec R
Introduction à l'analyse de réseaux avec RIntroduction à l'analyse de réseaux avec R
Introduction à l'analyse de réseaux avec R
 
Première approche de cartographie sous R
Première approche de cartographie sous RPremière approche de cartographie sous R
Première approche de cartographie sous R
 
Distances sémantiques dans des applications utilisant le web sémantique
Distances sémantiques dans des applications utilisant le web sémantiqueDistances sémantiques dans des applications utilisant le web sémantique
Distances sémantiques dans des applications utilisant le web sémantique
 
Go
GoGo
Go
 
Chapitre 3 - Généralités sur le langage C.pdf
Chapitre 3 - Généralités sur le langage C.pdfChapitre 3 - Généralités sur le langage C.pdf
Chapitre 3 - Généralités sur le langage C.pdf
 
Chap 1 Initiation.pptx
Chap 1 Initiation.pptxChap 1 Initiation.pptx
Chap 1 Initiation.pptx
 
Chap1_Entrees_Sorties.pptx
Chap1_Entrees_Sorties.pptxChap1_Entrees_Sorties.pptx
Chap1_Entrees_Sorties.pptx
 
C1 - Langage C - ISIMA - Première partie
C1 - Langage C - ISIMA - Première partieC1 - Langage C - ISIMA - Première partie
C1 - Langage C - ISIMA - Première partie
 
Chapitre i introduction et motivations
Chapitre i introduction et motivationsChapitre i introduction et motivations
Chapitre i introduction et motivations
 

R for data analysis

  • 1. . ...... R : un langage pour l’analyse des donnees Ahmadou H. Dicko FASEG Ahmadou H. Dicko (FASEG) R : un langage pour l’analyse des donnees 1 / 1
  • 2. Introduction On est entoure de donnees (data deluge) On a besoin de prendre des decisions de maniere objective els sont les outils qu’on peut utiliser ? Ahmadou H. Dicko (FASEG) R : un langage pour l’analyse des donnees 2 / 1
  • 3. R to the rescue Ahmadou H. Dicko (FASEG) R : un langage pour l’analyse des donnees 3 / 1
  • 4. Historique R est un langage qui tirent ses racines de S, Lisp, scheme elques dates importantes : ▶ 1990 : Ross Ihaka et Robert Gentleman developpe R ▶ 1996 : le projet devient open source ▶ 2013 : R 3.0 est sorti et il y a plus de 5000 packages (librarie) Ahmadou H. Dicko (FASEG) R : un langage pour l’analyse des donnees 4 / 1
  • 5. R comme une calculatrice Les fonctions sont des objets par exemple 2 * 3 + 10 R output [1] 16 x <- c(pi, 4*pi / 3) log(-cos(x)) R output [1] 0.0000 -0.6931 Ahmadou H. Dicko (FASEG) R : un langage pour l’analyse des donnees 5 / 1
  • 6. Dans R tout est objet Les fonctions sont des objets par exemple mean(1:5) R output [1] 3 mamoyenne <- mean mamoyenne(1:5) R output [1] 3 Ahmadou H. Dicko (FASEG) R : un langage pour l’analyse des donnees 6 / 1
  • 7. Programmation fonctionnelle avec R Supporte les lambda (function(x) toupper(x))("a") R output [1] "A" R ou Lisp ? '*'(2, '+'(10, 4)) R output [1] 28 Ahmadou H. Dicko (FASEG) R : un langage pour l’analyse des donnees 7 / 1
  • 8. Programmation OOP avec R Systeme de classe avec Reference Polygone <- setRefClass("Polygone", fields = c("cotes")) carre <- Polygone$new(cotes = 4) triangle <- carre triangle$cotes <- 3 carre$cotes R output R> R> R> [1] 3 Ahmadou H. Dicko (FASEG) R : un langage pour l’analyse des donnees 8 / 1
  • 9. Programmation OOP avec R Systeme de classe sans Reference Polygone1 <- setClass("Polygone1", representation(cotes = "integer")) carre1 <- new("Polygone1", cotes = 4L) triangle1 <- carre1 triangle1@cotes <- 3L carre1@cotes R output R> R> R> [1] 4 Ahmadou H. Dicko (FASEG) R : un langage pour l’analyse des donnees 9 / 1
  • 10. R un langage matriciel Creer une matrice A <- matrix(c(1, 4, 6, 3, 0, 3, 5, 8, 9), ncol = 3) A R output [,1] [,2] [,3] [1,] 1 3 5 [2,] 4 0 8 [3,] 6 3 9 Ahmadou H. Dicko (FASEG) R : un langage pour l’analyse des donnees 10 / 1
  • 11. R un langage matriciel Decomposition en valeur singuliere svd(A) R output $d [1] 15.17 2.86 1.66 $u [,1] [,2] [,3] [1,] -0.3562 -0.79150 0.4966 [2,] -0.5754 0.60458 0.5508 [3,] -0.7362 -0.08954 -0.6708 $v [,1] [,2] [,3] [1,] -0.4665 0.38100 -0.7983 [2,] -0.2161 -0.92422 -0.3148 [3,] -0.8578 0.02562 0.5134 Ahmadou H. Dicko (FASEG) R : un langage pour l’analyse des donnees 11 / 1
  • 12. R un langage matriciel Une autre decomposition utile qr(A) R output $qr [,1] [,2] [,3] [1,] -7.2801 -2.8846 -12.500 [2,] 0.5494 3.1111 1.910 [3,] 0.8242 0.4063 -3.179 $rank [1] 3 $qraux [1] 1.137 1.914 3.179 $pivot [1] 1 2 3 Ahmadou H. Dicko (FASEG) R : un langage pour l’analyse des donnees 12 / 1
  • 13. Et les donnees dans tous ca ? Ahmadou H. Dicko (FASEG) R : un langage pour l’analyse des donnees 13 / 1
  • 14. Importation des donnees voiture <- read.csv("voiture.csv", row.names = 1) names(voiture) <- tolower(names(voiture)) str(voiture) R output R> 'data.frame': 18 obs. of 8 variables: $ cyl : int 1350 1588 1294 1222 1585 1297 1796 1565 2664 1166 ... $ puis : int 79 85 68 59 98 82 79 55 128 55 ... $ lon : int 393 468 424 412 439 429 449 424 452 399 ... $ lar : int 161 177 168 161 164 169 169 163 173 157 ... $ poids : int 870 1110 1050 930 1105 1080 1160 1010 1320 815 ... $ vitesse : int 165 160 152 151 165 160 154 140 180 140 ... $ finition: Factor w/ 3 levels "B","M","TB": 1 3 2 2 1 3 1 1 3 2 ... $ prix : int 30570 39990 29600 28250 34900 35480 32300 32000 47700 26540 Ahmadou H. Dicko (FASEG) R : un langage pour l’analyse des donnees 14 / 1
  • 16. Exploration des donnees d = 2 ALFASUD-TI-1350 AUDI-100-L SIMCA-1307-GLS CITROEN-GS-CLUB FIAT-132-1600GLS LANCIA-BETA-1300 PEUGEOT-504 RENAULT-16-TL RENAULT-30-TS TOYOTA-COROLLA ALFETTA-1.66 PRINCESS-1800-HL DATSUN-200L TAUNUS-2000-GL RANCHO MAZDA-9295 OPEL-REKORD-L LADA-1300 cyl puis lon lar poids vitesse prix Ahmadou H. Dicko (FASEG) R : un langage pour l’analyse des donnees 16 / 1
  • 17. Modelisation fit <- lm(prix ~ puis + lon + poids + vitesse, data = voiture) summary(fit)$coefficient R output R> Estimate Std. Error t value Pr(>|t|) (Intercept) 9686.367 31605.59 0.3065 0.7641 puis 245.372 155.21 1.5809 0.1379 lon 22.920 99.67 0.2300 0.8217 poids 9.362 21.70 0.4314 0.6732 vitesse -103.140 192.28 -0.5364 0.6007 Ahmadou H. Dicko (FASEG) R : un langage pour l’analyse des donnees 17 / 1
  • 18. Export vers BDD require(RSQLite) drv <- dbDriver("SQLite") con <- dbConnect(drv, dbname = ":memory:") dbGetInfo(con) R output R> R> $dbname [1] ":memory:" $serverVersion [1] "3.7.14" $rsId integer(0) $loadableExtensions [1] "on" $flags [1] 6Ahmadou H. Dicko (FASEG) R : un langage pour l’analyse des donnees 18 / 1
  • 19. Export vers BDD dbWriteTable(con, "voiture", voiture) voiture_chere <- dbGetQuery(con, "SELECT * FROM voiture WHERE prix > 30000") head(voiture_chere, 3) R output [1] TRUE R> row_names cyl puis lon lar poids vitesse finition 1 ALFASUD-TI-1350 1350 79 393 161 870 165 B 2 AUDI-100-L 1588 85 468 177 1110 160 TB 3 FIAT-132-1600GLS 1585 98 439 164 1105 165 B prix 1 30570 2 39990 3 34900 Ahmadou H. Dicko (FASEG) R : un langage pour l’analyse des donnees 19 / 1
  • 20. La boite a outils du data hacker un langage pour l’analyse de donnee : R, Python, Julia un systeme de BDD (Spatial) : PostgreSQL, SQLite, (GRASS) Version control : git Graphique : R, D3.js, Vega.js un editeur de texte : Emacs (org-mode, ESS, etc) Unix tool (sed, grep, tail, etc) Ahmadou H. Dicko (FASEG) R : un langage pour l’analyse des donnees 20 / 1
  • 21. Liens pour aller plus loin Stackoverflow : hp://stackoverflow.com R-blogger : hp://www.r-bloggers.com Kaggle : hp://www.kaggle.com/ Coursera : ▶ Machine learning (Standford) ▶ Computing for data analysis (John Hopkins U) ▶ Data analysis (John Hopkins U) Ahmadou H. Dicko (FASEG) R : un langage pour l’analyse des donnees 21 / 1
  • 22. Conclusion Ahmadou H. Dicko (FASEG) R : un langage pour l’analyse des donnees 22 / 1
  • 23. Conclusion R est de facto le langage pour l’analyse de donnees Possible d’utiliser d’autres outils : ▶ Python (scikit-learn, pandas, etc) ▶ Julia (the new kid on the block) ▶ C++ (inevitable quand on veut de la puissance, Rcpp) Plus d’excuse pour utiliser MS Excel Ahmadou H. Dicko (FASEG) R : un langage pour l’analyse des donnees 23 / 1
  • 24. Merci de votre aention Ahmadou H. Dicko (FASEG) R : un langage pour l’analyse des donnees 24 / 1