SlideShare une entreprise Scribd logo
1  sur  66
Télécharger pour lire hors ligne
.
......
Analyse de données avec R
Ahmadou H. DICKO
Dakar R User Group
Janvier 2014
Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 1 / 66
Plan
...1 Intro
...2 Présentation de R
...3 Méthodes factorielles
...4 Méthodes de classification
...5 Un exemple d’analyse non supervisé
Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 2 / 66
Introduction
Avec la révolution numérique on vit un déluge de donnés (facebook,
twier, etc.)
Les données à traiter sont de plus en plus volumineux et liés
L’analyse exploratoire (EDA) est une étape nécessaire pour comprendre
les données et leurs liaisons potentielles
L’analyse factorielle des données et les méthodes de classification
présente une cadre efficace d’exploration de telle données
Cee analyse passe par des logiciels spécialisés de plus en plus en
performant
R est l’un des langage pour l’analyse de données les plus utilisés dans le
monde
Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 3 / 66
Plan
...1 Intro
...2 Présentation de R
...3 Méthodes factorielles
...4 Méthodes de classification
...5 Un exemple d’analyse non supervisé
Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 4 / 66
Historique
R est un langage interpreté qui tirent ses racines de S, Lisp, schemes
elques dates importantes :
▶ 1990 : Ross Ihaka et Robert Gentleman développent R
▶ 1996 : le projet devient open source
▶ 2013 : R 3.0 est sorti et il y a plus de 5000 packages (add-ons)
Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 5 / 66
Concepts importants
Un package R est en ensemble de fonctionnalité généralement organisé
autour d’un thème (ou pas)
Travailler sur R nécessite d’écrire des lignes de commandes (pas
toujours)
Rstudio est un environnement de travail pour R (mais y en d’autres…
ESS)
Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 6 / 66
Environnement de travail
Rstudio
1
2
3
4
Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 7 / 66
Environnement de travail
Emacs ESS
Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 8 / 66
Base du langage : R calculatrice ?
x <- c(pi, 4*pi / 3)
log(-cos(x))
R output
[1] 0.00000 -0.69315
Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 9 / 66
Base du langage : Collection d’éléments (1/2)
c(1, 2, 10)
R output
[1] 1 2 10
c("Ali", "Modou", "Marie")
R output
[1] "Ali" "Modou" "Marie"
Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 10 / 66
Base du langage : Collection d’éléments (2/2)
c(1, 2, "a")
R output
[1] "1" "2" "a"
list("Ali", 10, "Marie")
R output
[[1]]
[1] "Ali"
[[2]]
[1] 10
[[3]]
[1] "Marie"
Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 11 / 66
Base du langage : table (rectangulaire)
df <- data.frame(nom = c("Ali", "Modou", "Marie"),
taille = c(170, 185, 165))
df$nom
R output
[1] Ali Modou Marie
Levels: Ali Marie Modou
df[df$taille > 165, ]
R output
nom taille
1 Ali 170
2 Modou 185
Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 12 / 66
Analyse de données sous R
R dispose de fonctions pour faire des analyses basiques :
▶ prcomp, princomp, etc.
▶ hclust, kmeans, etc.
Il existe de nombreux packages mais les principaux sont :
▶ FactoMineR
▶ ade4
Nous utiliserons principalement FactoMineR pour le reste des analyses
Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 13 / 66
Plan
...1 Intro
...2 Présentation de R
...3 Méthodes factorielles
...4 Méthodes de classification
...5 Un exemple d’analyse non supervisé
Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 14 / 66
Analyse en composantes
principales
Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 15 / 66
ACP : Objectif
Analyse exploratoire des tables de variables quantitatives
Positionner les individus par rapport à leurs proximités
Positionner les variables par rapport à leurs corrélations
Chercher un petit nombre de variables non corrélées qui résument
l’information de la table originale
Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 16 / 66
Mise en oeuvre sous R
auto <- read.csv("data/auto.csv", row.names = 1)
summary(auto)
R output
cylindree puissance vitesse poids
Min. : 698 Min. : 52 Min. :135 Min. : 730
1st Qu.:1735 1st Qu.:109 1st Qu.:175 1st Qu.:1249
Median :2494 Median :170 Median :223 Median :1464
Mean :2722 Mean :207 Mean :215 Mean :1487
3rd Qu.:2958 3rd Qu.:227 3rd Qu.:245 3rd Qu.:1702
Max. :5998 Max. :660 Max. :350 Max. :2385
largeur longueur
Min. :1515 Min. :2500
1st Qu.:1742 1st Qu.:3921
Median :1792 Median :4325
Mean :1838 Mean :4278
3rd Qu.:1860 3rd Qu.:4701
Max. :2650 Max. :5038
Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 17 / 66
ACP : Mise en oeuvre sous R
head(auto)
R output
cylindree puissance vitesse poids largeur
Citroën C2 1.1 Base 1124 61 158 932 1659
Smart Fortwo Coupé 698 52 135 730 1515
Mini 1.6 170 1598 170 218 1215 1690
Nissan Micra 1.2 65 1240 65 154 965 1660
Renault Clio 3.0 V6 2946 255 245 1400 1810
Audi A3 1.9 TDI 1896 105 187 1295 1765
longueur
Citroën C2 1.1 Base 3666
Smart Fortwo Coupé 2500
Mini 1.6 170 3625
Nissan Micra 1.2 65 3715
Renault Clio 3.0 V6 3812
Audi A3 1.9 TDI 4203
Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 18 / 66
ACP : Mise en oeuvre sous R
Citroën C2 1.1 Base
Smart Fortwo Coupé
Mini 1.6 170
Nissan Micra 1.2 65
Renault Clio 3.0 V6
Audi A3 1.9 TDI
Peugeot 307 1.4 HDI 70
Peugeot 407 3.0 V6 BVA
Mercedes Classe C 270 CDI
BMW 530d
Jaguar S-Type 2.7 V6 Bi-Turbo
BMW 745i
Mercedes Classe S 400 CDI
Citroën C3 Pluriel 1.6i
BMW Z4 2.5i
Audi TT 1.8T 180
Aston Martin Vanquish
Bentley Continental GT
Ferrari Enzo
Renault Scenic 1.9 dCi 120
Volkswagen Touran 1.9 TDI 105
Land Rover Defender Td5
Land Rover Discovery Td5
Nissan X-Trail 2.2 dCi
cylindree
puissancevitesse
poids
largeur longueur
Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 19 / 66
ACP : Mise en oeuvre sous R
cylindree
puissance
vitesse
poids
largeur
longueur
Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 20 / 66
ACP : Mise en oeuvre sous R
library(FactoMineR)
auto_acp <- PCA(auto, ncp = 2, graph = FALSE)
PC6
PC5
PC4
PC3
PC2
PC1
Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 21 / 66
ACP : Mise en oeuvre sous R
auto_acp$eig
R output
eigenvalue percentage of variance
comp 1 4.411268 73.52113
comp 2 0.853410 14.22350
comp 3 0.435664 7.26107
comp 4 0.235871 3.93118
comp 5 0.051437 0.85728
comp 6 0.012351 0.20586
cumulative percentage of variance
comp 1 73.521
comp 2 87.745
comp 3 95.006
comp 4 98.937
comp 5 99.794
comp 6 100.000
Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 22 / 66
ACP : Mise en oeuvre sous R
cbind(
dist = auto_acp$ind$dist^2,
coord = auto_acp$ind$coord,
cos2 = auto_acp$ind$cos2
)[1 :4, ]
R output
dist Dim.1 Dim.2 Dim.1 Dim.2
Citroën C2 1.1 Base 7.1023 -2.5959 -0.50997 0.94882 0.036618
Smart Fortwo Coupé 20.9302 -4.1501 -1.66591 0.82291 0.132595
Mini 1.6 170 2.9343 -1.3819 -0.81572 0.65082 0.226768
Nissan Micra 1.2 65 6.6117 -2.5133 -0.40359 0.95540 0.024635
Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 23 / 66
ACP : Mise en oeuvre sous R
auto_acp$var$coord
R output
Dim.1 Dim.2
cylindree 0.96241 -0.12694
puissance 0.92332 -0.35266
vitesse 0.88611 -0.33874
poids 0.75691 0.57571
largeur 0.80123 -0.11102
longueur 0.79526 0.50440
Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 24 / 66
ACP : Mise en oeuvre sous R
Dim 1 (73.52%)
Dim2(14.22%)
Citroën C2 1.1 Base
Smart Fortwo Coupé
Mini 1.6 170
Nissan Micra 1.2 65
Renault Clio 3.0 V6
Audi A3 1.9 TDIPeugeot 307 1.4 HDI 70
Peugeot 407 3.0 V6 BVA
Mercedes Classe C 270 CDI
BMW530d
Jaguar S-Type 2.7 V6 Bi-Turbo
BMW 745i
Mercedes Classe S 400 CDI
Citroën C3 Pluriel 1.6i
BMWZ4 2.5i
Audi TT 1.8T 180
Aston Martin Vanquish
Bentley Continental GT
Ferrari Enzo
Renault Scenic 1.9 dCi 120
Volkswagen Touran 1.9 TDI 105Land Rover Defender Td5
Land Rover Discovery Td5
Nissan X-Trail 2.2 dCi
-4 -2 0 2 4
-4-202
Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 25 / 66
ACP : Mise en oeuvre sous R
Dimension 1 (73.52%)
Dimension2(14.22%)
Variables factor map (PCA)
cylindree
puissancevitesse
poids
largeur
longueur
Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 26 / 66
ACP : Mise en oeuvre sous R
PC1
PC2
Citroën C2 1.1 Base
Smart Fortwo Coupé
Mini 1.6 170
Nissan Micra 1.2 65
Renault Clio 3.0 V6
Audi A3 1.9 TDI
Peugeot 307 1.4 HDI 70
Peugeot 407 3.0 V6 BVAMercedes Classe C 270 CDIBMW 530d
Jaguar S-Type 2.7 V6 Bi-Turbo
BMW 745i
Mercedes Classe S 400 CDI
Citroën C3 Pluriel 1.6i
BMW Z4 2.5i
Audi TT 1.8T 180
Aston Martin Vanquish
Bentley Continental GT
Ferrari Enzo
Renault Scenic 1.9 dCi 120
Volkswagen Touran 1.9 TDI 105Land Rover Defender Td5
Land Rover Discovery Td5
Nissan X-Trail 2.2 dCi
cylindree
puissancevitesse
poids
largeur
longueur
-0.4 -0.2 0 0.2 0.4
-0.4-0.200.20.4
-4 -2 0 2 4
-4-2024
Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 27 / 66
Analyse factorielles des
correspondances
Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 28 / 66
AFC : Objectif
Analyse exploratoire de tables de contingence
Mise en relief des écarts à l’indépendance du tableau de contigence
Allez au delà du χ2 et autre test d’indépendance
Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 29 / 66
AFC : Mise en oeuvre sous R
nice <- read.csv("data/nice.csv")
names(nice) <- tolower(names(nice))
str(nice)
R output
'data.frame': 6 obs. of 7 variables:
$ csp : Factor w/ 6 levels "Agriculteur",..: 1 4 2 6 3 5
$ iut : int 9 66 77 50 52 55
$ sciences: int 35 72 139 78 86 103
$ lsh : int 44 171 380 155 274 191
$ droit : int 24 122 195 152 43 40
$ economie: int 8 48 69 57 26 25
$ médecine: int 13 71 233 85 48 46
Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 30 / 66
AFC : Mise en oeuvre sous R
library(reshape2)
nice <- melt(nice, id = "csp", variable.name = "filiere")
str(nice)
R output
'data.frame': 36 obs. of 3 variables:
$ csp : Factor w/ 6 levels "Agriculteur",..: 1 4 2 6 3 5 1 4 2 6 ...
$ filiere: Factor w/ 6 levels "iut","sciences",..: 1 1 1 1 1 1 2 2 2 2 ...
$ value : int 9 66 77 50 52 55 35 72 139 78 ...
Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 31 / 66
AFC : Mise en oeuvre sous R
cont_table <- xtabs(value ~ csp + filiere, data = nice)
cont_table
R output
filiere
csp iut sciences lsh droit economie médecine
Agriculteur 9 35 44 24 8 13
Cadres 77 139 380 195 69 233
Employés 52 86 274 43 26 48
Indépendants 66 72 171 122 48 71
Ouvriers 55 103 191 40 25 46
Prof. inter. 50 78 155 152 57 85
Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 32 / 66
AFC :Mise en oeuvre sous R
chisq.test(cont_table)
R output
Pearson's Chi-squared test
data: cont_table
X-squared = 256.01, df = 25, p-value < 2.2e-16
Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 33 / 66
AFC :Mise en oeuvre sous R
nice_afc <- CA(cont_table, graph = FALSE)
Dim 1 (68.60%)
Dim2(21.20%)
Agriculteur
Cadres
Employés
Indépendants
Ouvriers
Prof. inter.
iut
sciences
lsh
droit
economie
médecine
-0.4 -0.2 0 0.2 0.4
-0.200.2
Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 34 / 66
AFC :Mise en oeuvre sous R
rbind(
nice_afc$row$contrib[ ,1 :3],
nice_afc$col$contrib[ ,1 :3]
)
R output
Dim 1 Dim 2 Dim 3
Agriculteur 0.58122 6.94491 41.01525
Cadres 7.01907 55.70760 3.12380
Employés 39.44170 0.84044 24.34516
Indépendants 5.22233 16.28117 15.52434
Ouvriers 23.97869 5.74860 15.76031
Prof. inter. 23.75698 14.47727 0.23114
iut 1.30525 12.83230 8.81539
sciences 8.71843 10.71249 65.06416
lsh 28.64715 6.50715 15.86942
droit 42.57064 9.21883 0.78294
economie 5.81289 7.41395 3.06994
médecine 12.94564 53.31529 6.39815
Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 35 / 66
AFC :Mise en oeuvre sous R
rbind(
nice_afc$row$cos2[ ,1 :3],
nice_afc$col$cos2[ ,1 :3]
)
R output
Dim 1 Dim 2 Dim 3
Agriculteur 0.071781 0.265039 0.55201612
Cadres 0.285208 0.699478 0.01383267
Employés 0.915171 0.006026 0.06156014
Indépendants 0.413949 0.398790 0.13410216
Ouvriers 0.839285 0.062176 0.06011591
Prof. inter. 0.825516 0.155453 0.00087528
iut 0.150971 0.458651 0.11111768
sciences 0.455903 0.173102 0.37077989
lsh 0.871778 0.061192 0.05262910
droit 0.925526 0.061934 0.00185501
economie 0.678399 0.267374 0.03904481
médecine 0.423402 0.538837 0.02280468
Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 36 / 66
Analyse des correspondances
multiples
Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 37 / 66
ACM : Objectif
Analyse exploratoire de tables de variables qualitatives
Mere en évidence des proximités (non linéaire) entre individus, entre
modalités et entre les deux
Développer une typologie des individus et des modalités
Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 38 / 66
ACM : Mise en oeuvre sous R
chien <- read.csv("data/chien.csv", row.names = 1, colClasses = "factor")
names(chien) <- tolower(names(chien))
str(chien)
R output
'data.frame': 27 obs. of 7 variables:
$ taille : Factor w/ 3 levels "1","2","3": 3 1 3 2 1 3 1 1 2 3 ...
$ poids : Factor w/ 3 levels "1","2","3": 2 1 2 2 1 3 1 1 1 2 ...
$ velocité : Factor w/ 3 levels "1","2","3": 3 1 3 2 1 1 2 1 1 3 ...
$ intelligence: Factor w/ 3 levels "1","2","3": 2 1 3 2 2 3 3 1 2 2 ...
$ affection : Factor w/ 2 levels "1","2": 2 1 2 2 2 1 2 2 2 2 ...
$ agressivité : Factor w/ 2 levels "1","2": 2 2 2 2 1 2 1 1 2 1 ...
$ fonction : Factor w/ 3 levels "1","2","3": 3 2 3 1 1 3 1 1 1 1 ...
Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 39 / 66
ACM : Mise en oeuvre sous R
library(ade4)
acm.disjonctif(chien)[1 :6, 1 :5]
R output
taille.1 taille.2 taille.3 poids.1 poids.2
beauceron 0 0 1 0 1
basset 1 0 0 1 0
berger allemand 0 0 1 0 1
boxer 0 1 0 0 1
bull-dog 1 0 0 1 0
bull-mastiff 0 0 1 0 0
Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 40 / 66
ACM : Mise en oeuvre sous R
chien_acm <- MCA(chien,
quali.sup = match("fonction", names(chien)),
graph = FALSE)
axes 10
axes 9
axes 8
axes 7
axes 6
axes 5
axes 4
axes 3
axes 2
axes 1
Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 41 / 66
ACM : Mise en oeuvre sous R
Dim 1 (28.90%)
Dim2(23.08%)
beauceron
basset
berger allemand
boxer
bull-dog
bull-mastiff
caniche
chihuahua
cocker
colley
dalmatien
dobermann
dogue allemand
epagneul breton
epagneul français
fox-hound
fox-terrier
grd bleu de gasc
labrador
levrier
mastiff
pékinois
pointer
saint-bernard
setter
teckel
terre-neuve
taille_1
taille_2
taille_3
poids_1
poids_2
poids_3 velocité_1
velocité_2
velocité_3
intelligence_1
intelligence_2
intelligence_3
affection_1
affection_2
agressivité_1
agressivité_2
fonction_1
fonction_2
fonction_3
-1.5 -1 -0.5 0 0.5 1 1.5
-1.5-1-0.500.51
Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 42 / 66
Plan
...1 Intro
...2 Présentation de R
...3 Méthodes factorielles
...4 Méthodes de classification
...5 Un exemple d’analyse non supervisé
Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 43 / 66
Classification hierarchique
Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 44 / 66
CAH : Objectif
Créez des groupes en agrégreant successivement les individus
Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 45 / 66
CAH : Mise en oeuvre sous R
tempsen <- read.csv("data/tempsen.csv", row.names = 1)
tempsen[1 :8, 1 :6]
R output
Jan Feb Mar Apr May Jun
Bakel 34.017 37.017 41.058 43.292 43.442 40.525
Bambey 33.075 35.025 37.792 38.050 37.992 36.592
Cap-skiring 31.950 32.483 31.933 30.208 30.058 31.608
Dakar-yoff 26.158 25.442 25.700 25.358 26.575 29.150
Diourbel 34.083 35.958 38.992 39.908 40.792 38.008
Fatick 34.283 36.183 39.150 39.642 39.192 36.792
Goudiry 34.420 37.360 40.480 41.380 41.900 38.280
Kaolack 34.850 36.908 39.992 40.800 40.275 37.292
Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 46 / 66
CAH : Mise en oeuvre sous R
mat_dist <- dist(tempsen)
as.matrix(mat_dist)[1 :5, 1 :5]
R output
Bakel Bambey Cap-skiring Dakar-yoff Diourbel
Bakel 0.0000 10.1929 25.641 37.296 5.8866
Bambey 10.1929 0.0000 15.561 27.693 4.5734
Cap-skiring 25.6410 15.5614 0.000 13.790 20.0178
Dakar-yoff 37.2961 27.6932 13.790 0.000 32.0160
Diourbel 5.8866 4.5734 20.018 32.016 0.0000
Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 47 / 66
CAH : Mise en oeuvre sous R
tempclust <- hclust(mat_dist, method = "average")
Dakar-yoff
Mbour
Thies
Cap-skiring
Saint-louis
Podor
Linguere
Ranerou
Bakel
Matam
Bambey
Louga
Kedougou
Ziguinchor
Koungheul
Velingara
Nioro
Simenti
Kolda
Goudiry
Tambacounda
Fatick
Diourbel
Kaolack
0
5
10
15
20
25
30
Height
Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 48 / 66
CAH : Mise en oeuvre sous R
0
5
10
15
20
25
Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 49 / 66
CAH : Mise en oeuvre sous R
temphcut <- cutree(tempclust, k = 3)
Dakar-yoff
Mbour
Thies
Cap-skiring
Saint-louis
Podor
Linguere
Ranerou
Bakel
Matam
Bambey
Louga
Kedougou
Ziguinchor
Koungheul
Velingara
Nioro
Simenti
Kolda
Goudiry
Tambacounda
Fatick
Diourbel
Kaolack
0
5
10
15
20
25
30
Height
Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 50 / 66
CAH : Mise en oeuvre sous R
Dim 1 (74.59%)
Dim2(20.19%)
Dakar-yoff
Cap-skiring
Saint-louis
Thies
Mbour
Ziguinchor
Kedougou
Louga
Bambey
Velingara
Simenti
Fatick
Nioro
Tambacounda
Goudiry
Kolda
Kaolack
Diourbel
Linguere
Koungheul
Ranerou
Podor
Bakel
Matam
cluster 1
cluster 2
cluster 3
cluster 1
cluster 2
cluster 3
-10 -5 0 5
0
5
Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 51 / 66
Plan
...1 Intro
...2 Présentation de R
...3 Méthodes factorielles
...4 Méthodes de classification
...5 Un exemple d’analyse non supervisé
Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 52 / 66
Titre exemple
Un exemple pour conclure
Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 53 / 66
Classification des ménages Sénégalais selon leur niveau de
vie
étape 1 : Analyse factorielle : ACM
étape 2 : K-means sur les axes factorielles
étape 3 : CAH sur les centres de gravités des groupes formés
étape 4 : K-means pour consolider les groupes
Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 54 / 66
Mise en oeuvre sous R
household <- readRDS("data/household.rds")
summary(household)
R output
region location gender age
dakar :1598 urban:8576 male :10684 15-30yrs: 775
diourbel :1200 rural:4989 female: 2881 30-45yrs:3983
kolda :1200 45-60yrs:5043
saint-louis:1200 60+ :3764
tamba :1200
kaolack :1199
(Other) :5968
hh_size literacy job housing_status
low :3563 yes:5582 yes:9312 owner :10853
medium:4948 no :7983 no :4253 location: 2013
high :5054 free : 638
other : 61
Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 55 / 66
Mise en oeuvre sous R
naxes_max <- sum(sapply(household[ ,-1], nlevels)) - ncol(household[ ,-1])
mca <- dudi.acm(household[,-1], nf = naxes_max, scannf = FALSE)
location.urban
location.rural
gender.male
gender.female
age.15.30yrs
age.30.45yrs
age.45.60yrs
age.60.
hh_size.low
hh_size.medium
hh_size.high
literacy.yes
literacy.no
job.yes
job.no
housing_status.owner
housing_status.location
housing_status.freehousing_status.other
possess_cellphone.no
possess_cellphone.yes
electricity.yes
electricity.no
school_access.0...14
school_access.15...29school_access.30...44
school_access.45...59
school_access.60.
health_access.0...14health_access.15...29health_access.30...44health_access.45...59
health_access.60.
econsit_percep.worse econsit_percep.same
econsit_percep.better
econsit_percep.dont_know
deptotjr.low
deptotjr.medium
deptotjr.high
cons_tot.low
cons_tot.medium
cons_tot.high
job_categ.occupied
job_categ.unemp
job_categ.student
job_categ.housejob
job_categ.retired
job_categ.other_unoccup
0
1
2
-1 0 1
axe 1
axe2
Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 56 / 66
Mise en oeuvre sous R
0.00
0.05
0.10
0.15
0.20
0.25
0 10 20 30
axes
eig
Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 57 / 66
Mise en oeuvre sous R
On va donc travailler avec les 4 premiers axes et vérifier qu’ils sont bien
centrés et réduits.
mcadata <- mca$l1[ ,1 :4]
sapply(mcadata, function(x) list(mean = round(mean(x), 2), std = sd(x)))
R output
RS1 RS2 RS3 RS4
mean 0 0 0 0
std 1 1 1 1
Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 58 / 66
Mise en oeuvre sous R
Utilisation des K-means sur les axes factorielles
Ne pas oublier d’initialiser le seed pour rendre les résultats
reproductibles
set.seed(1234)
hh_part <- kmeans(mcadata, centers = 100,
nstart = 20, iter.max = 500)
CAH sur les centres de gravités des classes
hh_hclust <- hclust(dist(hh_part$centers), method = "ward")
Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 59 / 66
Mise en oeuvre sous R
33
84
88
31
90
74
81
3
93
68
100
10
54
61
16
23
44
76
41
57
49
18
35
47
11
40
6
25
42
34
53
26
59
75
89
4
77
65
19
48
69
7
36
60
21
94
43
72
24
46
22
97
67
32
73
45
71
38
14
83
1
17
51
13
98
82
99
37
62
29
52
9
55
96
66
20
28
79
86
70
87
2
50
85
12
58
91
30
56
39
78
27
5
8
63
15
64
92
80
95
0
5
10
15
20
25
30
dist(hh_part$centers)
Height
Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 60 / 66
Mise en oeuvre sous R
0
5
10
15
20
25
30
Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 61 / 66
Mise en oeuvre sous R
Nombre de centre par groupe
hh_tree <- cutree(hh_hclust, k = 3)
table(hh_tree)
R output
hh_tree
1 2 3
43 35 22
Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 62 / 66
Mise en oeuvre sous R
Associer à chaque ménage à son nouveau groupe
dataclust <- data.frame(kclust = seq_along(hh_tree), hclust = hh_tree)
household$kclust <- hh_part$cluster
household <- merge(household, dataclust, by = "kclust")
Nombre final de ménages par groupe
table(household$hclust)
R output
1 2 3
6894 3253 3418
Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 63 / 66
Mise en oeuvre sous R
Étape finale de consolidation des groupes précedemment formés.
Utilisation de la médianne pour rendre les résultats moins sensibles aux
valeurs extrêmes
centers <- by(mcadata, household$hclust, function(x) apply(x, 2, median))
centers <- matrix(unlist(centers), ncol = ncol(mcadata), byrow = TRUE)
consol <- kmeans(mcadata, centers = centers, iter.max = 50, nstart = 10)
Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 64 / 66
Mise en oeuvre sous R
-0.5
0.0
0.5
1.0
-1.0 -0.5 0.0 0.5 1.0
axe 1
axe2
cluster 1 2 3
Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 65 / 66
Conclusion
R est une option viable et performante pour l’analyse de données
R est libre et gratuit donc le seul coût est celui d’apprentissage
Il s’agit juste d’une introduction plusieurs méthodes n’ont pas été
explorées
Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 66 / 66

Contenu connexe

Tendances

Bac blanc base de données
Bac blanc base de donnéesBac blanc base de données
Bac blanc base de donnéeslycee
 
6sigma ibtissam el hassani-chapitre2-dmaics-définir
6sigma ibtissam el hassani-chapitre2-dmaics-définir6sigma ibtissam el hassani-chapitre2-dmaics-définir
6sigma ibtissam el hassani-chapitre2-dmaics-définiribtissam el hassani
 
Chap1V2019: Cours en C++
Chap1V2019: Cours en C++Chap1V2019: Cours en C++
Chap1V2019: Cours en C++Aziz Darouichi
 
Chp2 - Les Entrepôts de Données
Chp2 - Les Entrepôts de DonnéesChp2 - Les Entrepôts de Données
Chp2 - Les Entrepôts de DonnéesLilia Sfaxi
 
Cours algorithme
Cours algorithmeCours algorithme
Cours algorithmebadr zaimi
 
Chapitre 1 SI Définitions & Conceptions.pptx
Chapitre 1 SI Définitions & Conceptions.pptxChapitre 1 SI Définitions & Conceptions.pptx
Chapitre 1 SI Définitions & Conceptions.pptxLilia Hedfi-Khayati
 
10 exercices de Lean engineering par Michael Ballé
10 exercices de Lean engineering par Michael Ballé10 exercices de Lean engineering par Michael Ballé
10 exercices de Lean engineering par Michael BalléInstitut Lean France
 
Cours acp mehdi_aman
Cours acp mehdi_amanCours acp mehdi_aman
Cours acp mehdi_amanMehdi Aman
 
Td 4 l'approche processus
Td 4 l'approche processusTd 4 l'approche processus
Td 4 l'approche processusFethi Ferhane
 
Les outils de base du Lean
Les outils de base du LeanLes outils de base du Lean
Les outils de base du LeanXL Groupe
 
Flux tiré-et-kanban (3)
Flux tiré-et-kanban (3)Flux tiré-et-kanban (3)
Flux tiré-et-kanban (3)chermiti_imen
 
Informatique pour école de Médecine Cours : TD & TP
Informatique pour école de Médecine Cours : TD & TPInformatique pour école de Médecine Cours : TD & TP
Informatique pour école de Médecine Cours : TD & TPMohammed TAMALI
 
Les tableaux de bord & les indicateurs de performance
Les tableaux de bord & les indicateurs de performanceLes tableaux de bord & les indicateurs de performance
Les tableaux de bord & les indicateurs de performanceAhmed Mesellem
 
6sigma ibtissam el hassani-chapitre1
6sigma ibtissam el hassani-chapitre16sigma ibtissam el hassani-chapitre1
6sigma ibtissam el hassani-chapitre1ibtissam el hassani
 
Data mining - Introduction générale
Data mining - Introduction généraleData mining - Introduction générale
Data mining - Introduction généraleMohamed Heny SELMI
 
Amélioration continue et PDCA
Amélioration continue et PDCAAmélioration continue et PDCA
Amélioration continue et PDCASoulaima Ben salem
 
Ch4 circuitscombinatoires
Ch4 circuitscombinatoiresCh4 circuitscombinatoires
Ch4 circuitscombinatoiresmickel iron
 

Tendances (20)

Bac blanc base de données
Bac blanc base de donnéesBac blanc base de données
Bac blanc base de données
 
6sigma ibtissam el hassani-chapitre2-dmaics-définir
6sigma ibtissam el hassani-chapitre2-dmaics-définir6sigma ibtissam el hassani-chapitre2-dmaics-définir
6sigma ibtissam el hassani-chapitre2-dmaics-définir
 
Chap1V2019: Cours en C++
Chap1V2019: Cours en C++Chap1V2019: Cours en C++
Chap1V2019: Cours en C++
 
Chapitre05 : Les tableaux
Chapitre05 : Les tableauxChapitre05 : Les tableaux
Chapitre05 : Les tableaux
 
Chp2 - Les Entrepôts de Données
Chp2 - Les Entrepôts de DonnéesChp2 - Les Entrepôts de Données
Chp2 - Les Entrepôts de Données
 
Cours algorithme
Cours algorithmeCours algorithme
Cours algorithme
 
Cours langage-c
Cours langage-cCours langage-c
Cours langage-c
 
Chapitre 1 SI Définitions & Conceptions.pptx
Chapitre 1 SI Définitions & Conceptions.pptxChapitre 1 SI Définitions & Conceptions.pptx
Chapitre 1 SI Définitions & Conceptions.pptx
 
10 exercices de Lean engineering par Michael Ballé
10 exercices de Lean engineering par Michael Ballé10 exercices de Lean engineering par Michael Ballé
10 exercices de Lean engineering par Michael Ballé
 
Cours acp mehdi_aman
Cours acp mehdi_amanCours acp mehdi_aman
Cours acp mehdi_aman
 
Td 4 l'approche processus
Td 4 l'approche processusTd 4 l'approche processus
Td 4 l'approche processus
 
Gestion des stocks
Gestion des stocksGestion des stocks
Gestion des stocks
 
Les outils de base du Lean
Les outils de base du LeanLes outils de base du Lean
Les outils de base du Lean
 
Flux tiré-et-kanban (3)
Flux tiré-et-kanban (3)Flux tiré-et-kanban (3)
Flux tiré-et-kanban (3)
 
Informatique pour école de Médecine Cours : TD & TP
Informatique pour école de Médecine Cours : TD & TPInformatique pour école de Médecine Cours : TD & TP
Informatique pour école de Médecine Cours : TD & TP
 
Les tableaux de bord & les indicateurs de performance
Les tableaux de bord & les indicateurs de performanceLes tableaux de bord & les indicateurs de performance
Les tableaux de bord & les indicateurs de performance
 
6sigma ibtissam el hassani-chapitre1
6sigma ibtissam el hassani-chapitre16sigma ibtissam el hassani-chapitre1
6sigma ibtissam el hassani-chapitre1
 
Data mining - Introduction générale
Data mining - Introduction généraleData mining - Introduction générale
Data mining - Introduction générale
 
Amélioration continue et PDCA
Amélioration continue et PDCAAmélioration continue et PDCA
Amélioration continue et PDCA
 
Ch4 circuitscombinatoires
Ch4 circuitscombinatoiresCh4 circuitscombinatoires
Ch4 circuitscombinatoires
 

En vedette

04 Introduction au logiciel R
04 Introduction au logiciel R04 Introduction au logiciel R
04 Introduction au logiciel RBoris Guarisma
 
Herve aide-memoire-statistique r
Herve aide-memoire-statistique rHerve aide-memoire-statistique r
Herve aide-memoire-statistique rDies Diassa
 
An Empirical Comparison of Fast and Efficient Tools for Mining Textual Data
An Empirical Comparison of Fast and Efficient Tools for Mining Textual DataAn Empirical Comparison of Fast and Efficient Tools for Mining Textual Data
An Empirical Comparison of Fast and Efficient Tools for Mining Textual Datavtunali
 
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
 
Premier pas de web scrapping avec R
Premier pas de  web scrapping avec RPremier pas de  web scrapping avec R
Premier pas de web scrapping avec RCdiscount
 
Plutniak maisonobe resto atelier2-network
Plutniak maisonobe resto atelier2-networkPlutniak maisonobe resto atelier2-network
Plutniak maisonobe resto atelier2-networkMarion Maisonobe
 
Introduction à la cartographie avec R
Introduction à la cartographie avec RIntroduction à la cartographie avec R
Introduction à la cartographie avec RCdiscount
 
Introduction au Data Mining et Méthodes Statistiques
Introduction au Data Mining et Méthodes StatistiquesIntroduction au Data Mining et Méthodes Statistiques
Introduction au Data Mining et Méthodes StatistiquesGiorgio Pauletto
 
Chap8 basic cluster_analysis
Chap8 basic cluster_analysisChap8 basic cluster_analysis
Chap8 basic cluster_analysisguru_prasadg
 
Natural language processing (NLP) introduction
Natural language processing (NLP) introductionNatural language processing (NLP) introduction
Natural language processing (NLP) introductionRobert Lujo
 
Analyse de données marketing : ACP et AFC
Analyse de données marketing : ACP et AFCAnalyse de données marketing : ACP et AFC
Analyse de données marketing : ACP et AFCYannig Roth
 
Natural language processing
Natural language processingNatural language processing
Natural language processingprashantdahake
 
Analyse de sentiment - Charte des valeurs québécoises
Analyse de sentiment - Charte des valeurs québécoisesAnalyse de sentiment - Charte des valeurs québécoises
Analyse de sentiment - Charte des valeurs québécoisesMichelle Blanc
 

En vedette (20)

04 Introduction au logiciel R
04 Introduction au logiciel R04 Introduction au logiciel R
04 Introduction au logiciel R
 
Initiation r
Initiation rInitiation r
Initiation r
 
Clustering
ClusteringClustering
Clustering
 
Herve aide-memoire-statistique r
Herve aide-memoire-statistique rHerve aide-memoire-statistique r
Herve aide-memoire-statistique r
 
An Empirical Comparison of Fast and Efficient Tools for Mining Textual Data
An Empirical Comparison of Fast and Efficient Tools for Mining Textual DataAn Empirical Comparison of Fast and Efficient Tools for Mining Textual Data
An Empirical Comparison of Fast and Efficient Tools for Mining Textual Data
 
Cours add-r1-part5
Cours add-r1-part5Cours add-r1-part5
Cours add-r1-part5
 
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
 
Premier pas de web scrapping avec R
Premier pas de  web scrapping avec RPremier pas de  web scrapping avec R
Premier pas de web scrapping avec R
 
Plutniak maisonobe resto atelier2-network
Plutniak maisonobe resto atelier2-networkPlutniak maisonobe resto atelier2-network
Plutniak maisonobe resto atelier2-network
 
Introduction à la cartographie avec R
Introduction à la cartographie avec RIntroduction à la cartographie avec R
Introduction à la cartographie avec R
 
HADOOP + R
HADOOP + RHADOOP + R
HADOOP + R
 
Introduction au Data Mining et Méthodes Statistiques
Introduction au Data Mining et Méthodes StatistiquesIntroduction au Data Mining et Méthodes Statistiques
Introduction au Data Mining et Méthodes Statistiques
 
Chap8 basic cluster_analysis
Chap8 basic cluster_analysisChap8 basic cluster_analysis
Chap8 basic cluster_analysis
 
Atelier r-gerad
Atelier r-geradAtelier r-gerad
Atelier r-gerad
 
Natural language processing (NLP) introduction
Natural language processing (NLP) introductionNatural language processing (NLP) introduction
Natural language processing (NLP) introduction
 
Analyse de données marketing : ACP et AFC
Analyse de données marketing : ACP et AFCAnalyse de données marketing : ACP et AFC
Analyse de données marketing : ACP et AFC
 
Natural language processing
Natural language processingNatural language processing
Natural language processing
 
NLP
NLPNLP
NLP
 
K means Clustering Algorithm
K means Clustering AlgorithmK means Clustering Algorithm
K means Clustering Algorithm
 
Analyse de sentiment - Charte des valeurs québécoises
Analyse de sentiment - Charte des valeurs québécoisesAnalyse de sentiment - Charte des valeurs québécoises
Analyse de sentiment - Charte des valeurs québécoises
 

Dernier

Cours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdfCours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdfssuserc72852
 
Bolero. pptx . Film de A nnne Fontaine
Bolero. pptx . Film   de  A nnne FontaineBolero. pptx . Film   de  A nnne Fontaine
Bolero. pptx . Film de A nnne FontaineTxaruka
 
gestion des conflits dans les entreprises
gestion des  conflits dans les entreprisesgestion des  conflits dans les entreprises
gestion des conflits dans les entreprisesMajdaKtiri2
 
Cours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdfCours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdfachrafbrahimi1
 
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdfCOURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdfabatanebureau
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...Nguyen Thanh Tu Collection
 
Sidonie au Japon . pptx Un film français
Sidonie    au   Japon  .  pptx  Un film françaisSidonie    au   Japon  .  pptx  Un film français
Sidonie au Japon . pptx Un film françaisTxaruka
 
L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...
L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...
L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...Faga1939
 
La nouvelle femme . pptx Film français
La   nouvelle   femme  . pptx  Film françaisLa   nouvelle   femme  . pptx  Film français
La nouvelle femme . pptx Film françaisTxaruka
 
Computer Parts in French - Les parties de l'ordinateur.pptx
Computer Parts in French - Les parties de l'ordinateur.pptxComputer Parts in French - Les parties de l'ordinateur.pptx
Computer Parts in French - Les parties de l'ordinateur.pptxRayane619450
 
Boléro. pptx Film français réalisé par une femme.
Boléro.  pptx   Film   français   réalisé  par une  femme.Boléro.  pptx   Film   français   réalisé  par une  femme.
Boléro. pptx Film français réalisé par une femme.Txaruka
 
Apolonia, Apolonia.pptx Film documentaire
Apolonia, Apolonia.pptx         Film documentaireApolonia, Apolonia.pptx         Film documentaire
Apolonia, Apolonia.pptx Film documentaireTxaruka
 

Dernier (13)

Evaluación Alumnos de Ecole Victor Hugo
Evaluación Alumnos de Ecole  Victor HugoEvaluación Alumnos de Ecole  Victor Hugo
Evaluación Alumnos de Ecole Victor Hugo
 
Cours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdfCours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdf
 
Bolero. pptx . Film de A nnne Fontaine
Bolero. pptx . Film   de  A nnne FontaineBolero. pptx . Film   de  A nnne Fontaine
Bolero. pptx . Film de A nnne Fontaine
 
gestion des conflits dans les entreprises
gestion des  conflits dans les entreprisesgestion des  conflits dans les entreprises
gestion des conflits dans les entreprises
 
Cours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdfCours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdf
 
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdfCOURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
 
Sidonie au Japon . pptx Un film français
Sidonie    au   Japon  .  pptx  Un film françaisSidonie    au   Japon  .  pptx  Un film français
Sidonie au Japon . pptx Un film français
 
L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...
L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...
L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...
 
La nouvelle femme . pptx Film français
La   nouvelle   femme  . pptx  Film françaisLa   nouvelle   femme  . pptx  Film français
La nouvelle femme . pptx Film français
 
Computer Parts in French - Les parties de l'ordinateur.pptx
Computer Parts in French - Les parties de l'ordinateur.pptxComputer Parts in French - Les parties de l'ordinateur.pptx
Computer Parts in French - Les parties de l'ordinateur.pptx
 
Boléro. pptx Film français réalisé par une femme.
Boléro.  pptx   Film   français   réalisé  par une  femme.Boléro.  pptx   Film   français   réalisé  par une  femme.
Boléro. pptx Film français réalisé par une femme.
 
Apolonia, Apolonia.pptx Film documentaire
Apolonia, Apolonia.pptx         Film documentaireApolonia, Apolonia.pptx         Film documentaire
Apolonia, Apolonia.pptx Film documentaire
 

Analyse de données avec R : Une petite introduction

  • 1. . ...... Analyse de données avec R Ahmadou H. DICKO Dakar R User Group Janvier 2014 Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 1 / 66
  • 2. Plan ...1 Intro ...2 Présentation de R ...3 Méthodes factorielles ...4 Méthodes de classification ...5 Un exemple d’analyse non supervisé Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 2 / 66
  • 3. Introduction Avec la révolution numérique on vit un déluge de donnés (facebook, twier, etc.) Les données à traiter sont de plus en plus volumineux et liés L’analyse exploratoire (EDA) est une étape nécessaire pour comprendre les données et leurs liaisons potentielles L’analyse factorielle des données et les méthodes de classification présente une cadre efficace d’exploration de telle données Cee analyse passe par des logiciels spécialisés de plus en plus en performant R est l’un des langage pour l’analyse de données les plus utilisés dans le monde Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 3 / 66
  • 4. Plan ...1 Intro ...2 Présentation de R ...3 Méthodes factorielles ...4 Méthodes de classification ...5 Un exemple d’analyse non supervisé Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 4 / 66
  • 5. Historique R est un langage interpreté qui tirent ses racines de S, Lisp, schemes elques dates importantes : ▶ 1990 : Ross Ihaka et Robert Gentleman développent R ▶ 1996 : le projet devient open source ▶ 2013 : R 3.0 est sorti et il y a plus de 5000 packages (add-ons) Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 5 / 66
  • 6. Concepts importants Un package R est en ensemble de fonctionnalité généralement organisé autour d’un thème (ou pas) Travailler sur R nécessite d’écrire des lignes de commandes (pas toujours) Rstudio est un environnement de travail pour R (mais y en d’autres… ESS) Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 6 / 66
  • 7. Environnement de travail Rstudio 1 2 3 4 Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 7 / 66
  • 8. Environnement de travail Emacs ESS Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 8 / 66
  • 9. Base du langage : R calculatrice ? x <- c(pi, 4*pi / 3) log(-cos(x)) R output [1] 0.00000 -0.69315 Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 9 / 66
  • 10. Base du langage : Collection d’éléments (1/2) c(1, 2, 10) R output [1] 1 2 10 c("Ali", "Modou", "Marie") R output [1] "Ali" "Modou" "Marie" Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 10 / 66
  • 11. Base du langage : Collection d’éléments (2/2) c(1, 2, "a") R output [1] "1" "2" "a" list("Ali", 10, "Marie") R output [[1]] [1] "Ali" [[2]] [1] 10 [[3]] [1] "Marie" Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 11 / 66
  • 12. Base du langage : table (rectangulaire) df <- data.frame(nom = c("Ali", "Modou", "Marie"), taille = c(170, 185, 165)) df$nom R output [1] Ali Modou Marie Levels: Ali Marie Modou df[df$taille > 165, ] R output nom taille 1 Ali 170 2 Modou 185 Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 12 / 66
  • 13. Analyse de données sous R R dispose de fonctions pour faire des analyses basiques : ▶ prcomp, princomp, etc. ▶ hclust, kmeans, etc. Il existe de nombreux packages mais les principaux sont : ▶ FactoMineR ▶ ade4 Nous utiliserons principalement FactoMineR pour le reste des analyses Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 13 / 66
  • 14. Plan ...1 Intro ...2 Présentation de R ...3 Méthodes factorielles ...4 Méthodes de classification ...5 Un exemple d’analyse non supervisé Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 14 / 66
  • 15. Analyse en composantes principales Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 15 / 66
  • 16. ACP : Objectif Analyse exploratoire des tables de variables quantitatives Positionner les individus par rapport à leurs proximités Positionner les variables par rapport à leurs corrélations Chercher un petit nombre de variables non corrélées qui résument l’information de la table originale Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 16 / 66
  • 17. Mise en oeuvre sous R auto <- read.csv("data/auto.csv", row.names = 1) summary(auto) R output cylindree puissance vitesse poids Min. : 698 Min. : 52 Min. :135 Min. : 730 1st Qu.:1735 1st Qu.:109 1st Qu.:175 1st Qu.:1249 Median :2494 Median :170 Median :223 Median :1464 Mean :2722 Mean :207 Mean :215 Mean :1487 3rd Qu.:2958 3rd Qu.:227 3rd Qu.:245 3rd Qu.:1702 Max. :5998 Max. :660 Max. :350 Max. :2385 largeur longueur Min. :1515 Min. :2500 1st Qu.:1742 1st Qu.:3921 Median :1792 Median :4325 Mean :1838 Mean :4278 3rd Qu.:1860 3rd Qu.:4701 Max. :2650 Max. :5038 Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 17 / 66
  • 18. ACP : Mise en oeuvre sous R head(auto) R output cylindree puissance vitesse poids largeur Citroën C2 1.1 Base 1124 61 158 932 1659 Smart Fortwo Coupé 698 52 135 730 1515 Mini 1.6 170 1598 170 218 1215 1690 Nissan Micra 1.2 65 1240 65 154 965 1660 Renault Clio 3.0 V6 2946 255 245 1400 1810 Audi A3 1.9 TDI 1896 105 187 1295 1765 longueur Citroën C2 1.1 Base 3666 Smart Fortwo Coupé 2500 Mini 1.6 170 3625 Nissan Micra 1.2 65 3715 Renault Clio 3.0 V6 3812 Audi A3 1.9 TDI 4203 Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 18 / 66
  • 19. ACP : Mise en oeuvre sous R Citroën C2 1.1 Base Smart Fortwo Coupé Mini 1.6 170 Nissan Micra 1.2 65 Renault Clio 3.0 V6 Audi A3 1.9 TDI Peugeot 307 1.4 HDI 70 Peugeot 407 3.0 V6 BVA Mercedes Classe C 270 CDI BMW 530d Jaguar S-Type 2.7 V6 Bi-Turbo BMW 745i Mercedes Classe S 400 CDI Citroën C3 Pluriel 1.6i BMW Z4 2.5i Audi TT 1.8T 180 Aston Martin Vanquish Bentley Continental GT Ferrari Enzo Renault Scenic 1.9 dCi 120 Volkswagen Touran 1.9 TDI 105 Land Rover Defender Td5 Land Rover Discovery Td5 Nissan X-Trail 2.2 dCi cylindree puissancevitesse poids largeur longueur Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 19 / 66
  • 20. ACP : Mise en oeuvre sous R cylindree puissance vitesse poids largeur longueur Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 20 / 66
  • 21. ACP : Mise en oeuvre sous R library(FactoMineR) auto_acp <- PCA(auto, ncp = 2, graph = FALSE) PC6 PC5 PC4 PC3 PC2 PC1 Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 21 / 66
  • 22. ACP : Mise en oeuvre sous R auto_acp$eig R output eigenvalue percentage of variance comp 1 4.411268 73.52113 comp 2 0.853410 14.22350 comp 3 0.435664 7.26107 comp 4 0.235871 3.93118 comp 5 0.051437 0.85728 comp 6 0.012351 0.20586 cumulative percentage of variance comp 1 73.521 comp 2 87.745 comp 3 95.006 comp 4 98.937 comp 5 99.794 comp 6 100.000 Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 22 / 66
  • 23. ACP : Mise en oeuvre sous R cbind( dist = auto_acp$ind$dist^2, coord = auto_acp$ind$coord, cos2 = auto_acp$ind$cos2 )[1 :4, ] R output dist Dim.1 Dim.2 Dim.1 Dim.2 Citroën C2 1.1 Base 7.1023 -2.5959 -0.50997 0.94882 0.036618 Smart Fortwo Coupé 20.9302 -4.1501 -1.66591 0.82291 0.132595 Mini 1.6 170 2.9343 -1.3819 -0.81572 0.65082 0.226768 Nissan Micra 1.2 65 6.6117 -2.5133 -0.40359 0.95540 0.024635 Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 23 / 66
  • 24. ACP : Mise en oeuvre sous R auto_acp$var$coord R output Dim.1 Dim.2 cylindree 0.96241 -0.12694 puissance 0.92332 -0.35266 vitesse 0.88611 -0.33874 poids 0.75691 0.57571 largeur 0.80123 -0.11102 longueur 0.79526 0.50440 Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 24 / 66
  • 25. ACP : Mise en oeuvre sous R Dim 1 (73.52%) Dim2(14.22%) Citroën C2 1.1 Base Smart Fortwo Coupé Mini 1.6 170 Nissan Micra 1.2 65 Renault Clio 3.0 V6 Audi A3 1.9 TDIPeugeot 307 1.4 HDI 70 Peugeot 407 3.0 V6 BVA Mercedes Classe C 270 CDI BMW530d Jaguar S-Type 2.7 V6 Bi-Turbo BMW 745i Mercedes Classe S 400 CDI Citroën C3 Pluriel 1.6i BMWZ4 2.5i Audi TT 1.8T 180 Aston Martin Vanquish Bentley Continental GT Ferrari Enzo Renault Scenic 1.9 dCi 120 Volkswagen Touran 1.9 TDI 105Land Rover Defender Td5 Land Rover Discovery Td5 Nissan X-Trail 2.2 dCi -4 -2 0 2 4 -4-202 Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 25 / 66
  • 26. ACP : Mise en oeuvre sous R Dimension 1 (73.52%) Dimension2(14.22%) Variables factor map (PCA) cylindree puissancevitesse poids largeur longueur Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 26 / 66
  • 27. ACP : Mise en oeuvre sous R PC1 PC2 Citroën C2 1.1 Base Smart Fortwo Coupé Mini 1.6 170 Nissan Micra 1.2 65 Renault Clio 3.0 V6 Audi A3 1.9 TDI Peugeot 307 1.4 HDI 70 Peugeot 407 3.0 V6 BVAMercedes Classe C 270 CDIBMW 530d Jaguar S-Type 2.7 V6 Bi-Turbo BMW 745i Mercedes Classe S 400 CDI Citroën C3 Pluriel 1.6i BMW Z4 2.5i Audi TT 1.8T 180 Aston Martin Vanquish Bentley Continental GT Ferrari Enzo Renault Scenic 1.9 dCi 120 Volkswagen Touran 1.9 TDI 105Land Rover Defender Td5 Land Rover Discovery Td5 Nissan X-Trail 2.2 dCi cylindree puissancevitesse poids largeur longueur -0.4 -0.2 0 0.2 0.4 -0.4-0.200.20.4 -4 -2 0 2 4 -4-2024 Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 27 / 66
  • 28. Analyse factorielles des correspondances Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 28 / 66
  • 29. AFC : Objectif Analyse exploratoire de tables de contingence Mise en relief des écarts à l’indépendance du tableau de contigence Allez au delà du χ2 et autre test d’indépendance Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 29 / 66
  • 30. AFC : Mise en oeuvre sous R nice <- read.csv("data/nice.csv") names(nice) <- tolower(names(nice)) str(nice) R output 'data.frame': 6 obs. of 7 variables: $ csp : Factor w/ 6 levels "Agriculteur",..: 1 4 2 6 3 5 $ iut : int 9 66 77 50 52 55 $ sciences: int 35 72 139 78 86 103 $ lsh : int 44 171 380 155 274 191 $ droit : int 24 122 195 152 43 40 $ economie: int 8 48 69 57 26 25 $ médecine: int 13 71 233 85 48 46 Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 30 / 66
  • 31. AFC : Mise en oeuvre sous R library(reshape2) nice <- melt(nice, id = "csp", variable.name = "filiere") str(nice) R output 'data.frame': 36 obs. of 3 variables: $ csp : Factor w/ 6 levels "Agriculteur",..: 1 4 2 6 3 5 1 4 2 6 ... $ filiere: Factor w/ 6 levels "iut","sciences",..: 1 1 1 1 1 1 2 2 2 2 ... $ value : int 9 66 77 50 52 55 35 72 139 78 ... Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 31 / 66
  • 32. AFC : Mise en oeuvre sous R cont_table <- xtabs(value ~ csp + filiere, data = nice) cont_table R output filiere csp iut sciences lsh droit economie médecine Agriculteur 9 35 44 24 8 13 Cadres 77 139 380 195 69 233 Employés 52 86 274 43 26 48 Indépendants 66 72 171 122 48 71 Ouvriers 55 103 191 40 25 46 Prof. inter. 50 78 155 152 57 85 Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 32 / 66
  • 33. AFC :Mise en oeuvre sous R chisq.test(cont_table) R output Pearson's Chi-squared test data: cont_table X-squared = 256.01, df = 25, p-value < 2.2e-16 Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 33 / 66
  • 34. AFC :Mise en oeuvre sous R nice_afc <- CA(cont_table, graph = FALSE) Dim 1 (68.60%) Dim2(21.20%) Agriculteur Cadres Employés Indépendants Ouvriers Prof. inter. iut sciences lsh droit economie médecine -0.4 -0.2 0 0.2 0.4 -0.200.2 Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 34 / 66
  • 35. AFC :Mise en oeuvre sous R rbind( nice_afc$row$contrib[ ,1 :3], nice_afc$col$contrib[ ,1 :3] ) R output Dim 1 Dim 2 Dim 3 Agriculteur 0.58122 6.94491 41.01525 Cadres 7.01907 55.70760 3.12380 Employés 39.44170 0.84044 24.34516 Indépendants 5.22233 16.28117 15.52434 Ouvriers 23.97869 5.74860 15.76031 Prof. inter. 23.75698 14.47727 0.23114 iut 1.30525 12.83230 8.81539 sciences 8.71843 10.71249 65.06416 lsh 28.64715 6.50715 15.86942 droit 42.57064 9.21883 0.78294 economie 5.81289 7.41395 3.06994 médecine 12.94564 53.31529 6.39815 Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 35 / 66
  • 36. AFC :Mise en oeuvre sous R rbind( nice_afc$row$cos2[ ,1 :3], nice_afc$col$cos2[ ,1 :3] ) R output Dim 1 Dim 2 Dim 3 Agriculteur 0.071781 0.265039 0.55201612 Cadres 0.285208 0.699478 0.01383267 Employés 0.915171 0.006026 0.06156014 Indépendants 0.413949 0.398790 0.13410216 Ouvriers 0.839285 0.062176 0.06011591 Prof. inter. 0.825516 0.155453 0.00087528 iut 0.150971 0.458651 0.11111768 sciences 0.455903 0.173102 0.37077989 lsh 0.871778 0.061192 0.05262910 droit 0.925526 0.061934 0.00185501 economie 0.678399 0.267374 0.03904481 médecine 0.423402 0.538837 0.02280468 Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 36 / 66
  • 37. Analyse des correspondances multiples Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 37 / 66
  • 38. ACM : Objectif Analyse exploratoire de tables de variables qualitatives Mere en évidence des proximités (non linéaire) entre individus, entre modalités et entre les deux Développer une typologie des individus et des modalités Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 38 / 66
  • 39. ACM : Mise en oeuvre sous R chien <- read.csv("data/chien.csv", row.names = 1, colClasses = "factor") names(chien) <- tolower(names(chien)) str(chien) R output 'data.frame': 27 obs. of 7 variables: $ taille : Factor w/ 3 levels "1","2","3": 3 1 3 2 1 3 1 1 2 3 ... $ poids : Factor w/ 3 levels "1","2","3": 2 1 2 2 1 3 1 1 1 2 ... $ velocité : Factor w/ 3 levels "1","2","3": 3 1 3 2 1 1 2 1 1 3 ... $ intelligence: Factor w/ 3 levels "1","2","3": 2 1 3 2 2 3 3 1 2 2 ... $ affection : Factor w/ 2 levels "1","2": 2 1 2 2 2 1 2 2 2 2 ... $ agressivité : Factor w/ 2 levels "1","2": 2 2 2 2 1 2 1 1 2 1 ... $ fonction : Factor w/ 3 levels "1","2","3": 3 2 3 1 1 3 1 1 1 1 ... Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 39 / 66
  • 40. ACM : Mise en oeuvre sous R library(ade4) acm.disjonctif(chien)[1 :6, 1 :5] R output taille.1 taille.2 taille.3 poids.1 poids.2 beauceron 0 0 1 0 1 basset 1 0 0 1 0 berger allemand 0 0 1 0 1 boxer 0 1 0 0 1 bull-dog 1 0 0 1 0 bull-mastiff 0 0 1 0 0 Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 40 / 66
  • 41. ACM : Mise en oeuvre sous R chien_acm <- MCA(chien, quali.sup = match("fonction", names(chien)), graph = FALSE) axes 10 axes 9 axes 8 axes 7 axes 6 axes 5 axes 4 axes 3 axes 2 axes 1 Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 41 / 66
  • 42. ACM : Mise en oeuvre sous R Dim 1 (28.90%) Dim2(23.08%) beauceron basset berger allemand boxer bull-dog bull-mastiff caniche chihuahua cocker colley dalmatien dobermann dogue allemand epagneul breton epagneul français fox-hound fox-terrier grd bleu de gasc labrador levrier mastiff pékinois pointer saint-bernard setter teckel terre-neuve taille_1 taille_2 taille_3 poids_1 poids_2 poids_3 velocité_1 velocité_2 velocité_3 intelligence_1 intelligence_2 intelligence_3 affection_1 affection_2 agressivité_1 agressivité_2 fonction_1 fonction_2 fonction_3 -1.5 -1 -0.5 0 0.5 1 1.5 -1.5-1-0.500.51 Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 42 / 66
  • 43. Plan ...1 Intro ...2 Présentation de R ...3 Méthodes factorielles ...4 Méthodes de classification ...5 Un exemple d’analyse non supervisé Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 43 / 66
  • 44. Classification hierarchique Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 44 / 66
  • 45. CAH : Objectif Créez des groupes en agrégreant successivement les individus Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 45 / 66
  • 46. CAH : Mise en oeuvre sous R tempsen <- read.csv("data/tempsen.csv", row.names = 1) tempsen[1 :8, 1 :6] R output Jan Feb Mar Apr May Jun Bakel 34.017 37.017 41.058 43.292 43.442 40.525 Bambey 33.075 35.025 37.792 38.050 37.992 36.592 Cap-skiring 31.950 32.483 31.933 30.208 30.058 31.608 Dakar-yoff 26.158 25.442 25.700 25.358 26.575 29.150 Diourbel 34.083 35.958 38.992 39.908 40.792 38.008 Fatick 34.283 36.183 39.150 39.642 39.192 36.792 Goudiry 34.420 37.360 40.480 41.380 41.900 38.280 Kaolack 34.850 36.908 39.992 40.800 40.275 37.292 Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 46 / 66
  • 47. CAH : Mise en oeuvre sous R mat_dist <- dist(tempsen) as.matrix(mat_dist)[1 :5, 1 :5] R output Bakel Bambey Cap-skiring Dakar-yoff Diourbel Bakel 0.0000 10.1929 25.641 37.296 5.8866 Bambey 10.1929 0.0000 15.561 27.693 4.5734 Cap-skiring 25.6410 15.5614 0.000 13.790 20.0178 Dakar-yoff 37.2961 27.6932 13.790 0.000 32.0160 Diourbel 5.8866 4.5734 20.018 32.016 0.0000 Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 47 / 66
  • 48. CAH : Mise en oeuvre sous R tempclust <- hclust(mat_dist, method = "average") Dakar-yoff Mbour Thies Cap-skiring Saint-louis Podor Linguere Ranerou Bakel Matam Bambey Louga Kedougou Ziguinchor Koungheul Velingara Nioro Simenti Kolda Goudiry Tambacounda Fatick Diourbel Kaolack 0 5 10 15 20 25 30 Height Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 48 / 66
  • 49. CAH : Mise en oeuvre sous R 0 5 10 15 20 25 Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 49 / 66
  • 50. CAH : Mise en oeuvre sous R temphcut <- cutree(tempclust, k = 3) Dakar-yoff Mbour Thies Cap-skiring Saint-louis Podor Linguere Ranerou Bakel Matam Bambey Louga Kedougou Ziguinchor Koungheul Velingara Nioro Simenti Kolda Goudiry Tambacounda Fatick Diourbel Kaolack 0 5 10 15 20 25 30 Height Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 50 / 66
  • 51. CAH : Mise en oeuvre sous R Dim 1 (74.59%) Dim2(20.19%) Dakar-yoff Cap-skiring Saint-louis Thies Mbour Ziguinchor Kedougou Louga Bambey Velingara Simenti Fatick Nioro Tambacounda Goudiry Kolda Kaolack Diourbel Linguere Koungheul Ranerou Podor Bakel Matam cluster 1 cluster 2 cluster 3 cluster 1 cluster 2 cluster 3 -10 -5 0 5 0 5 Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 51 / 66
  • 52. Plan ...1 Intro ...2 Présentation de R ...3 Méthodes factorielles ...4 Méthodes de classification ...5 Un exemple d’analyse non supervisé Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 52 / 66
  • 53. Titre exemple Un exemple pour conclure Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 53 / 66
  • 54. Classification des ménages Sénégalais selon leur niveau de vie étape 1 : Analyse factorielle : ACM étape 2 : K-means sur les axes factorielles étape 3 : CAH sur les centres de gravités des groupes formés étape 4 : K-means pour consolider les groupes Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 54 / 66
  • 55. Mise en oeuvre sous R household <- readRDS("data/household.rds") summary(household) R output region location gender age dakar :1598 urban:8576 male :10684 15-30yrs: 775 diourbel :1200 rural:4989 female: 2881 30-45yrs:3983 kolda :1200 45-60yrs:5043 saint-louis:1200 60+ :3764 tamba :1200 kaolack :1199 (Other) :5968 hh_size literacy job housing_status low :3563 yes:5582 yes:9312 owner :10853 medium:4948 no :7983 no :4253 location: 2013 high :5054 free : 638 other : 61 Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 55 / 66
  • 56. Mise en oeuvre sous R naxes_max <- sum(sapply(household[ ,-1], nlevels)) - ncol(household[ ,-1]) mca <- dudi.acm(household[,-1], nf = naxes_max, scannf = FALSE) location.urban location.rural gender.male gender.female age.15.30yrs age.30.45yrs age.45.60yrs age.60. hh_size.low hh_size.medium hh_size.high literacy.yes literacy.no job.yes job.no housing_status.owner housing_status.location housing_status.freehousing_status.other possess_cellphone.no possess_cellphone.yes electricity.yes electricity.no school_access.0...14 school_access.15...29school_access.30...44 school_access.45...59 school_access.60. health_access.0...14health_access.15...29health_access.30...44health_access.45...59 health_access.60. econsit_percep.worse econsit_percep.same econsit_percep.better econsit_percep.dont_know deptotjr.low deptotjr.medium deptotjr.high cons_tot.low cons_tot.medium cons_tot.high job_categ.occupied job_categ.unemp job_categ.student job_categ.housejob job_categ.retired job_categ.other_unoccup 0 1 2 -1 0 1 axe 1 axe2 Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 56 / 66
  • 57. Mise en oeuvre sous R 0.00 0.05 0.10 0.15 0.20 0.25 0 10 20 30 axes eig Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 57 / 66
  • 58. Mise en oeuvre sous R On va donc travailler avec les 4 premiers axes et vérifier qu’ils sont bien centrés et réduits. mcadata <- mca$l1[ ,1 :4] sapply(mcadata, function(x) list(mean = round(mean(x), 2), std = sd(x))) R output RS1 RS2 RS3 RS4 mean 0 0 0 0 std 1 1 1 1 Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 58 / 66
  • 59. Mise en oeuvre sous R Utilisation des K-means sur les axes factorielles Ne pas oublier d’initialiser le seed pour rendre les résultats reproductibles set.seed(1234) hh_part <- kmeans(mcadata, centers = 100, nstart = 20, iter.max = 500) CAH sur les centres de gravités des classes hh_hclust <- hclust(dist(hh_part$centers), method = "ward") Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 59 / 66
  • 60. Mise en oeuvre sous R 33 84 88 31 90 74 81 3 93 68 100 10 54 61 16 23 44 76 41 57 49 18 35 47 11 40 6 25 42 34 53 26 59 75 89 4 77 65 19 48 69 7 36 60 21 94 43 72 24 46 22 97 67 32 73 45 71 38 14 83 1 17 51 13 98 82 99 37 62 29 52 9 55 96 66 20 28 79 86 70 87 2 50 85 12 58 91 30 56 39 78 27 5 8 63 15 64 92 80 95 0 5 10 15 20 25 30 dist(hh_part$centers) Height Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 60 / 66
  • 61. Mise en oeuvre sous R 0 5 10 15 20 25 30 Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 61 / 66
  • 62. Mise en oeuvre sous R Nombre de centre par groupe hh_tree <- cutree(hh_hclust, k = 3) table(hh_tree) R output hh_tree 1 2 3 43 35 22 Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 62 / 66
  • 63. Mise en oeuvre sous R Associer à chaque ménage à son nouveau groupe dataclust <- data.frame(kclust = seq_along(hh_tree), hclust = hh_tree) household$kclust <- hh_part$cluster household <- merge(household, dataclust, by = "kclust") Nombre final de ménages par groupe table(household$hclust) R output 1 2 3 6894 3253 3418 Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 63 / 66
  • 64. Mise en oeuvre sous R Étape finale de consolidation des groupes précedemment formés. Utilisation de la médianne pour rendre les résultats moins sensibles aux valeurs extrêmes centers <- by(mcadata, household$hclust, function(x) apply(x, 2, median)) centers <- matrix(unlist(centers), ncol = ncol(mcadata), byrow = TRUE) consol <- kmeans(mcadata, centers = centers, iter.max = 50, nstart = 10) Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 64 / 66
  • 65. Mise en oeuvre sous R -0.5 0.0 0.5 1.0 -1.0 -0.5 0.0 0.5 1.0 axe 1 axe2 cluster 1 2 3 Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 65 / 66
  • 66. Conclusion R est une option viable et performante pour l’analyse de données R est libre et gratuit donc le seul coût est celui d’apprentissage Il s’agit juste d’une introduction plusieurs méthodes n’ont pas été explorées Ahmadou H. DICKO (R meetup) Analyse de données avec R Janvier 2014 66 / 66