Tout d’abord, on importe le fichier. On remarque qu’il y a 101 observations et 20 colonnes

X=read.delim("~/data(2).csv",header=TRUE,encoding ="utf-8", dec=".", sep=";")
dim(X)
## [1] 101  20
attach(X)

On defini les colonnes Code et Libellé comme noms des lignes

rownames(X) = X$Libellé

On supprime ensuite les 2 premières colonnes (Code et Libellé)

X=X[,-c(1,2)]

On supprime Mayotte car elle a beaucoup trop de valeurs manquantes

X=X[-101,]
dim(X)
## [1] 100  18
attach(X)
## The following objects are masked from X (pos = 3):
## 
##     Médiane.du.niveau.de.vie.2015, Nb.de.logements.2015,
##     Nb.de.pers..de.15.à.24.ans.2015, Nb.de.pers..de.15.à.64.ans.2015,
##     Nb.ent..dans.la.construction.2016,
##     Nb.ent..dans.le.commerce..transports..hébergement..restauration.2016,
##     Nb.ent..dans.les.services.marchands.2016,
##     Nb.ent..dans.les.services.marchands.auprès.des.ent..2016,
##     Nb.ent..dans.les.services.marchands.auprès.des.ménages.2016,
##     Nb.ent..dans.l.industrie.2016, Nb.entreprises.2016,
##     Population.2015, Salaire.net.horaire.moyen.2015,
##     Salaire.net.hor..moy..des.femmes.2015,
##     Salaire.net.hor..moy..des.hommes.2015,
##     Taux.d.activité.des.15.à.24.ans.2015,
##     Taux.d.activité.des.15.à.64.ans.2015, Taux.de.pauvreté.2015

Premierement, on fait quelques modifications sur le csv pour tout ramener au nombre d’habitant

# Par rapport aux logements :
# Taux de logements
Taux.Logements.2015 = Nb.de.logements.2015/Population.2015
X<-cbind(X,Taux.Logements.2015)

# Par rapport au habitants :
# Taux de personnes de 15 à 24 ans
Taux.pers.15.à.24ans = Nb.de.pers..de.15.à.24.ans.2015/Population.2015
X<-cbind(X,Taux.pers.15.à.24ans)

# Taux de personnes de 15 à 64 ans
Taux.pers.15.à.64ans = Nb.de.pers..de.15.à.64.ans.2015/Population.2015
X<-cbind(X,Taux.pers.15.à.64ans)

# Taux de personnes de 25 à 64 ans
Taux.pers.25.à.64ans = Taux.pers.15.à.64ans - Taux.pers.15.à.24ans
X<-cbind(X,Taux.pers.25.à.64ans)


# Par rapport aux entreprises :

# Taux d'entreprises
Taux.entreprise = Nb.entreprises.2016/Population.2015
X<-cbind(X,Taux.entreprise)

# Taux d'entreprises dans la construction
Taux.entreprise..Construction = Nb.ent..dans.la.construction.2016 /Population.2015
X<-cbind(X,Taux.entreprise..Construction)

# Taux d'entreprises dans le commerce, transports, hébergement et la restauration
Taux.entreprise..commerce.transports.hébergement.restauration = Nb.ent..dans.le.commerce..transports..hébergement..restauration.2016 /Population.2015
X<-cbind(X,Taux.entreprise..commerce.transports.hébergement.restauration)

# Taux d'entreprises dans les services marchands
Taux.entreprise..services.marchands = Nb.ent..dans.les.services.marchands.2016 /Population.2015
X<-cbind(X,Taux.entreprise..services.marchands)

# Taux d'entreprises dans les services marchands auprès des entreprises
Taux.entreprise..services.marchands.auprès.des.ent = Nb.ent..dans.les.services.marchands.auprès.des.ent..2016 /Population.2015
X<-cbind(X,Taux.entreprise..services.marchands.auprès.des.ent)

# Taux d'entreprises dans les services marchands auprès des ménages
Taux.entreprise..services.marchands.auprès.des.ménages = Nb.ent..dans.les.services.marchands.auprès.des.ménages.2016 /Population.2015
X<-cbind(X,Taux.entreprise..services.marchands.auprès.des.ménages)

# Taux d'entreprises dans l'industrie
Taux.entreprise..industrie = Nb.ent..dans.l.industrie.2016 /Population.2015
X<-cbind(X,Taux.entreprise..industrie)
dim(X)
## [1] 100  29

Ainsi, on peut supprimer les colonnes qui ne servent plus

# On supprime les colonnes qui ne servent plus : 
# - Population.2015
# - Nb.de.logements.2015, Nb.de.pers..de.15.à.24.ans.2015
# - Nb.de.pers..de.15.à.64.ans.2015
# - Nb.entreprises.2016, Nb.ent..dans.la.construction.2016
# - Nb.ent..dans.le.commerce..transports..hébergement..restauration.2016
# - Nb.ent..dans.les.services.marchands.2016, Nb.ent..dans.les.services.marchands.auprès.des.ent..2016
# - Nb.ent..dans.les.services.marchands.auprès.des.ménages.2016
# - Nb.ent..dans.l.industrie.2016 
X=X[,-c(3:13)]
dim(X)
## [1] 100  18
attach(X)
## The following objects are masked _by_ .GlobalEnv:
## 
##     Taux.entreprise,
##     Taux.entreprise..commerce.transports.hébergement.restauration,
##     Taux.entreprise..Construction, Taux.entreprise..industrie,
##     Taux.entreprise..services.marchands,
##     Taux.entreprise..services.marchands.auprès.des.ent,
##     Taux.entreprise..services.marchands.auprès.des.ménages,
##     Taux.Logements.2015, Taux.pers.15.à.24ans, Taux.pers.15.à.64ans,
##     Taux.pers.25.à.64ans
## The following objects are masked from X (pos = 3):
## 
##     Médiane.du.niveau.de.vie.2015, Salaire.net.horaire.moyen.2015,
##     Salaire.net.hor..moy..des.femmes.2015,
##     Salaire.net.hor..moy..des.hommes.2015,
##     Taux.d.activité.des.15.à.24.ans.2015,
##     Taux.d.activité.des.15.à.64.ans.2015, Taux.de.pauvreté.2015
## The following objects are masked from X (pos = 4):
## 
##     Médiane.du.niveau.de.vie.2015, Salaire.net.horaire.moyen.2015,
##     Salaire.net.hor..moy..des.femmes.2015,
##     Salaire.net.hor..moy..des.hommes.2015,
##     Taux.d.activité.des.15.à.24.ans.2015,
##     Taux.d.activité.des.15.à.64.ans.2015, Taux.de.pauvreté.2015

Etant donné que la Guadeloupe et la Guyane comporte des valeurs manquantes valeurs manquantes pour le taux de pauvrete et le niveau de vie on les remplace donc par la médiane du taux de pauvreté et le niveau du vie du reste de la population afin de ne pas influencer le reste de l’étude.

#Taux de pauvreté 
X[97,3] = median(Taux.de.pauvreté.2015)
X[99,3] = median(Taux.de.pauvreté.2015)

#Niveau de vie
X[97,4] = median(Médiane.du.niveau.de.vie.2015)
X[99,4] = median(Médiane.du.niveau.de.vie.2015)

On obtient au final une base de données a 100 lignes et à 18 colonnes

dim(X)
## [1] 100  18
colnames(X)=c("TxAct15_64","TxAct15_24","TxPauvrete","MedianeNvVie","SalNetHorMoy","SalNetHorMoyF",
              "SalNetHorMoyH","TxLgt","TxPerso15_24","TxPerso15_64","TxPerso25_64","TxEntrp","TxEntrpConstru","TxEntrpCommerceTransportRestau","TxEntrpServMarch","TxEntrpServMarchAupresEntrp","TxEntrpServMarchAupresMenages","TxEntrpIndustrie")





Première classification

Centrage-Réduction

Xcr=scale(X)

On vérifie bien que les moyennes après le centrage-réduction sont de 0 et que les écart-types sont de 1

apply(Xcr[,],2,mean)
##                     TxAct15_64                     TxAct15_24 
##                  -1.597766e-15                   1.408533e-16 
##                     TxPauvrete                   MedianeNvVie 
##                  -5.617902e-17                  -8.586534e-16 
##                   SalNetHorMoy                  SalNetHorMoyF 
##                  -2.479974e-16                  -2.970886e-16 
##                  SalNetHorMoyH                          TxLgt 
##                  -2.944547e-16                   3.532970e-16 
##                   TxPerso15_24                   TxPerso15_64 
##                   4.132979e-17                   1.664044e-15 
##                   TxPerso25_64                        TxEntrp 
##                  -1.860892e-16                  -1.273451e-16 
##                 TxEntrpConstru TxEntrpCommerceTransportRestau 
##                  -2.753703e-16                   1.654037e-16 
##               TxEntrpServMarch    TxEntrpServMarchAupresEntrp 
##                   1.145343e-16                  -8.795699e-17 
##  TxEntrpServMarchAupresMenages               TxEntrpIndustrie 
##                   1.529140e-16                  -2.978976e-16
apply(Xcr[,],2,sd)  
##                     TxAct15_64                     TxAct15_24 
##                              1                              1 
##                     TxPauvrete                   MedianeNvVie 
##                              1                              1 
##                   SalNetHorMoy                  SalNetHorMoyF 
##                              1                              1 
##                  SalNetHorMoyH                          TxLgt 
##                              1                              1 
##                   TxPerso15_24                   TxPerso15_64 
##                              1                              1 
##                   TxPerso25_64                        TxEntrp 
##                              1                              1 
##                 TxEntrpConstru TxEntrpCommerceTransportRestau 
##                              1                              1 
##               TxEntrpServMarch    TxEntrpServMarchAupresEntrp 
##                              1                              1 
##  TxEntrpServMarchAupresMenages               TxEntrpIndustrie 
##                              1                              1

Classification ascendante hiérarchique

Une première classification nous montre

#Distance
cah = hclust(dist(Xcr), method = "average")

#Arbre
plot(cah, hang = -1)

#Les hauteurs (sauts)
cah$height
##  [1]  0.5655635  0.8640821  0.8693539  0.8923190  0.9540334  1.0438925
##  [7]  1.0460609  1.0504023  1.0587114  1.0919827  1.1315801  1.1475235
## [13]  1.2101306  1.2708975  1.2871119  1.3162971  1.3246600  1.3297507
## [19]  1.3434954  1.3466086  1.3654538  1.3788734  1.3923259  1.4180515
## [25]  1.4243742  1.4343206  1.4967118  1.5098487  1.5111620  1.5379624
## [31]  1.5385318  1.5632674  1.5947758  1.6307182  1.7030171  1.7063311
## [37]  1.7436459  1.7676013  1.7730541  1.8152119  1.8488005  1.8615822
## [43]  1.8677768  1.8709072  1.8749589  1.8892946  1.9481196  1.9842681
## [49]  2.0333103  2.0354123  2.0631498  2.0775978  2.1261650  2.1293527
## [55]  2.1437766  2.1489195  2.1761136  2.1765136  2.2025360  2.2131120
## [61]  2.2319666  2.2350712  2.2372415  2.2780618  2.3279873  2.3495956
## [67]  2.3880884  2.4237542  2.4840101  2.5181708  2.5915997  2.7161367
## [73]  2.8036267  2.9523611  2.9965045  3.0351381  3.1116287  3.1428194
## [79]  3.2963028  3.3497006  3.4231514  3.4803059  3.7091889  3.8695361
## [85]  3.8932890  4.2094089  4.4101935  4.7269762  4.8959957  4.9937102
## [91]  5.1350245  5.4695125  5.4995317  7.0098388  7.5832930  7.6011330
## [97]  8.7957880 10.2984462 18.7272699
#Afficher le nombre de classes en abscisse, les sauts en ordonnees
plot(rev(cah$height),type="b")

Choix du nombre de classes et classification

# nombre de classes
q=5

# ré-afficher l'arbre, avec les classes choisies
plot(cah, hang = -1)
rect.hclust(cah, q)

# classifier (= couper l'arbre)
classif= cutree(cah,q)
classif
##                     Ain                   Aisne                  Allier 
##                       1                       1                       1 
## Alpes-de-Haute-Provence            Hautes-Alpes         Alpes-Maritimes 
##                       1                       1                       2 
##                 Ardèche                Ardennes                  Ariège 
##                       1                       1                       1 
##                    Aube                    Aude                 Aveyron 
##                       1                       1                       1 
##        Bouches-du-Rhône                Calvados                  Cantal 
##                       1                       1                       1 
##                Charente       Charente-Maritime                    Cher 
##                       1                       1                       1 
##                 Corrèze               Côte-d'Or           Côtes-d'Armor 
##                       1                       1                       1 
##                  Creuse                Dordogne                   Doubs 
##                       1                       1                       1 
##                   Drôme                    Eure            Eure-et-Loir 
##                       1                       1                       1 
##               Finistère            Corse-du-Sud             Haute-Corse 
##                       1                       2                       2 
##                    Gard           Haute-Garonne                    Gers 
##                       1                       1                       1 
##                 Gironde                 Hérault         Ille-et-Vilaine 
##                       1                       1                       1 
##                   Indre          Indre-et-Loire                   Isère 
##                       1                       1                       1 
##                    Jura                  Landes            Loir-et-Cher 
##                       1                       1                       1 
##                   Loire             Haute-Loire        Loire-Atlantique 
##                       1                       1                       1 
##                  Loiret                     Lot          Lot-et-Garonne 
##                       1                       1                       1 
##                  Lozère          Maine-et-Loire                  Manche 
##                       1                       1                       1 
##                   Marne             Haute-Marne                 Mayenne 
##                       1                       1                       1 
##      Meurthe-et-Moselle                   Meuse                Morbihan 
##                       1                       1                       1 
##                 Moselle                  Nièvre                    Nord 
##                       1                       1                       1 
##                    Oise                    Orne           Pas-de-Calais 
##                       1                       1                       1 
##             Puy-de-Dôme    Pyrénées-Atlantiques         Hautes-Pyrénées 
##                       1                       1                       1 
##     Pyrénées-Orientales                Bas-Rhin               Haut-Rhin 
##                       1                       1                       1 
##                   Rhône             Haute-Saône          Saône-et-Loire 
##                       1                       1                       1 
##                  Sarthe                  Savoie            Haute-Savoie 
##                       1                       1                       1 
##                   Paris          Seine-Maritime          Seine-et-Marne 
##                       3                       1                       1 
##                Yvelines             Deux-Sèvres                   Somme 
##                       4                       1                       1 
##                    Tarn         Tarn-et-Garonne                     Var 
##                       1                       1                       1 
##                Vaucluse                  Vendée                  Vienne 
##                       1                       1                       1 
##            Haute-Vienne                  Vosges                   Yonne 
##                       1                       1                       1 
##   Territoire de Belfort                 Essonne          Hauts-de-Seine 
##                       1                       1                       4 
##       Seine-Saint-Denis            Val-de-Marne              Val-d'Oise 
##                       1                       1                       1 
##              Guadeloupe              Martinique                  Guyane 
##                       2                       2                       5 
##              La Réunion 
##                       1
# afficher les villes par classe
sort(classif)
##                     Ain                   Aisne                  Allier 
##                       1                       1                       1 
## Alpes-de-Haute-Provence            Hautes-Alpes                 Ardèche 
##                       1                       1                       1 
##                Ardennes                  Ariège                    Aube 
##                       1                       1                       1 
##                    Aude                 Aveyron        Bouches-du-Rhône 
##                       1                       1                       1 
##                Calvados                  Cantal                Charente 
##                       1                       1                       1 
##       Charente-Maritime                    Cher                 Corrèze 
##                       1                       1                       1 
##               Côte-d'Or           Côtes-d'Armor                  Creuse 
##                       1                       1                       1 
##                Dordogne                   Doubs                   Drôme 
##                       1                       1                       1 
##                    Eure            Eure-et-Loir               Finistère 
##                       1                       1                       1 
##                    Gard           Haute-Garonne                    Gers 
##                       1                       1                       1 
##                 Gironde                 Hérault         Ille-et-Vilaine 
##                       1                       1                       1 
##                   Indre          Indre-et-Loire                   Isère 
##                       1                       1                       1 
##                    Jura                  Landes            Loir-et-Cher 
##                       1                       1                       1 
##                   Loire             Haute-Loire        Loire-Atlantique 
##                       1                       1                       1 
##                  Loiret                     Lot          Lot-et-Garonne 
##                       1                       1                       1 
##                  Lozère          Maine-et-Loire                  Manche 
##                       1                       1                       1 
##                   Marne             Haute-Marne                 Mayenne 
##                       1                       1                       1 
##      Meurthe-et-Moselle                   Meuse                Morbihan 
##                       1                       1                       1 
##                 Moselle                  Nièvre                    Nord 
##                       1                       1                       1 
##                    Oise                    Orne           Pas-de-Calais 
##                       1                       1                       1 
##             Puy-de-Dôme    Pyrénées-Atlantiques         Hautes-Pyrénées 
##                       1                       1                       1 
##     Pyrénées-Orientales                Bas-Rhin               Haut-Rhin 
##                       1                       1                       1 
##                   Rhône             Haute-Saône          Saône-et-Loire 
##                       1                       1                       1 
##                  Sarthe                  Savoie            Haute-Savoie 
##                       1                       1                       1 
##          Seine-Maritime          Seine-et-Marne             Deux-Sèvres 
##                       1                       1                       1 
##                   Somme                    Tarn         Tarn-et-Garonne 
##                       1                       1                       1 
##                     Var                Vaucluse                  Vendée 
##                       1                       1                       1 
##                  Vienne            Haute-Vienne                  Vosges 
##                       1                       1                       1 
##                   Yonne   Territoire de Belfort                 Essonne 
##                       1                       1                       1 
##       Seine-Saint-Denis            Val-de-Marne              Val-d'Oise 
##                       1                       1                       1 
##              La Réunion         Alpes-Maritimes            Corse-du-Sud 
##                       1                       2                       2 
##             Haute-Corse              Guadeloupe              Martinique 
##                       2                       2                       2 
##                   Paris                Yvelines          Hauts-de-Seine 
##                       3                       4                       4 
##                  Guyane 
##                       5

Profil classes : Analyse spatiale (dispersion classes)

On peut maintenant avoir une premiere vue des différentes classes et ainsi en tirer un profil.

table(classif)
## classif
##  1  2  3  4  5 
## 91  5  1  2  1
# Variances des Ecarts-type des classes
n=length(classif)
variance_totale=sum(diag(var(Xcr)))*(n-1)/n
variances_classes=rep(0,q)
for (k in 1:q) {
    n=sum(classif==k)
    variances_classes[k] = sum(diag(var(Xcr[classif==k,])))*(n-1)/n
}
round(variances_classes,2)
## [1] 10.51 10.35  0.00  3.74  0.00
round(variance_totale,2)
## [1] 17.82
# et donc écarts-type des classes
n=length(classif)
variance_totale=sum(diag(var(Xcr)))*(n-1)/n
variances_classes=rep(0,q)
for (k in 1:q) {
    n=sum(classif==k)
    variances_classes[k] = sum(diag(var(Xcr[classif==k,])))*(n-1)/n
}
sqrt(round(variances_classes,2))
## [1] 3.241913 3.217142 0.000000 1.933908 0.000000
sqrt(round(variance_totale,2))
## [1] 4.221374

Distances inter-classes (sur centres de gravite)

# i. Calcul des individus moyens (= moyennes, centres de gravite, centroïde)
moyennes = aggregate(Xcr[,],list(classif),mean)[,-1]
round(moyennes,2)
##   TxAct15_64 TxAct15_24 TxPauvrete MedianeNvVie SalNetHorMoy SalNetHorMoyF
## 1       0.04       0.15      -0.04        -0.08        -0.16         -0.17
## 2      -0.85      -1.23       1.14        -0.55         0.02          0.22
## 3       1.83      -1.76       0.23         3.72         5.22          5.14
## 4       1.73      -1.76      -0.97         3.42         4.36          4.18
## 5      -4.97      -2.27      -0.13        -0.16         0.64          1.07
##   SalNetHorMoyH TxLgt TxPerso15_24 TxPerso15_64 TxPerso25_64 TxEntrp
## 1         -0.16 -0.01        -0.06        -0.09        -0.08   -0.19
## 2         -0.03  0.97        -0.10         0.36         0.71    2.09
## 3          5.32  0.56         1.33         3.27         3.95    6.28
## 4          4.38 -1.04         0.57         1.35         1.59    0.50
## 5          0.36 -2.43         3.23         0.02        -3.56   -0.41
##   TxEntrpConstru TxEntrpCommerceTransportRestau TxEntrpServMarch
## 1          -0.15                          -0.19            -0.17
## 2           2.82                           2.74             1.31
## 3           1.12                           4.49             7.48
## 4          -0.82                          -0.22             1.20
## 5           0.22                          -0.09            -0.75
##   TxEntrpServMarchAupresEntrp TxEntrpServMarchAupresMenages TxEntrpIndustrie
## 1                       -0.19                         -0.09            -0.10
## 2                        1.19                          1.22             1.84
## 3                        8.32                          3.42             1.96
## 4                        1.54                          0.06            -1.54
## 5                       -0.25                         -1.68             0.98
# ii. Matrice des distances entre individus moyens
round(dist(moyennes),2)
##       1     2     3     4
## 2  6.20                  
## 3 18.74 15.64            
## 4  9.68 11.16 13.59      
## 5  8.16  9.93 20.93 12.41

Profil classes : individus moyens

# Graphique général
matplot(t(moyennes), type="b")
abline(h=0)
abline(h=c(-1,1),lty=2)
text(1:ncol(X), max(moyennes)*1.1,colnames(X), xpd= NA, srt = 90)

par(mfrow=c(1,3))
for (i in 1:3) {
  boxplot(X[,i]~classif,main=colnames(X)[i])
}      

for (i in 4:6) {
  boxplot(X[,i]~classif,main=colnames(X)[i])
}      

for (i in 7:9) {
  boxplot(X[,i]~classif,main=colnames(X)[i])
}      

for (i in 10:12) {
  boxplot(X[,i]~classif,main=colnames(X)[i])
}      

for (i in 13:15) {
  boxplot(X[,i]~classif,main=colnames(X)[i])
}      

for (i in 16:18) {
  boxplot(X[,i]~classif,main=colnames(X)[i])
}      

Analyse des différentes classes

  • On peut analyser plusieurs classes, on retrouve premièrement la classe 2 contenant 5 départements : Alpes-Maritimes, Corse du Sud, Haute-Corse, Guadeloupe et la Martinique, on remarque que cette classe contient 4 îles et un département en bord de mer, de ce fait la classe semble plus au moins logique au vu de leurs ressemblances. Ces 5 départements sont tous des outliers. De manière générale, cette classe se situe aux alentours de la moyenne avec cependant un taux d’entreprise qui se distingue du reste. Assurément, ce taux d’entreprise est significativement supérieur a la moyenne, ces entreprises sont surtout spécialisé dans la construction et dans le commerce, transport, et la restauration.

  • On retrouve ensuite une deuxième classe, la classe 3 contenant seulement Paris, il s’agit ici d’un outlier. On observe qu’a Paris il y a un taux d’activité des 15 à 64 ans important, mais un taux d’activité des 15 à 24 ans très faible. Cela peut s’expliquer notamment par le fait qu’il s’agit d’une ville où la plupart des jeunes font leurs études. De même, on remarque que son taux de pauvreté est moyen et que la médiane du niveau de vie de la population est très élevée avec des salaires très élevés sans différence notable entre les hommes et les femmes. Son taux de logement est moyennement élevé. Concernant l’âge de la population, on peut constater qu’il y a beaucoup de personnes âgés de 15 à 64 ans, dont beaucoup agés de plus de 25 ans qui sont donc dans la vie active. Concernant les entreprises, Paris a un taux très significativement supérieure à la moyenne, on retrouve principalement des entreprises de services marchands (dont beaucoup auprès des entreprises et d’autres auprès des ménages). On peut aussi noter qu’elle possède également beaucoup d’entreprises dans le commerce, les transports et la restauration. Elle a aussi pas mal d’entreprises dans l’industrie et dans la construction.

  • Mais encore, il y a aussi la classe 4 avec seulement 2 individus, Yvelines et Hauts de Seine, deux outliers. Étant donné que ces deux départements appartiennent à la région parisienne, on retrouve de nombreux points communs avec la classe 2 contenant Paris. En effet, elle a quasiment le même taux d’activité que Paris, soit un taux d’activité des 15 à 64 ans notable, mais un taux d’activité des 15 à 24 ans faible explicable sûrement par le fait que les jeunes font des études. Cependant, contrairement à la classe 2, son taux de pauvreté est plus faible tandis que sa médiane du niveau de vie de la population est très forte. On retrouve encore une fois des salaires très élevé sans différence entre les hommes et les femmes. Ici, le taux de logement est moyennement faible. De même, il y a beaucoup de personnes âgés entre 15 à 64 ans, dont beaucoup agés de plus de 25 ans qui sont donc dans la vie active. Concernant les entreprises, elle en possède relativement moins que la classe 2, celles-ci se situe principalement dans les entreprises de services marchands (dont beaucoup auprès des entreprises et d’autres auprès des ménages). Elle possède peu d’entreprises dans le commerce, les transports, l’hébergement et la restauration. Elle a un taux d’entreprises dans l’industrie relativement faible.

  • De même, on retrouve la classe 5 avec un seul individu, la Guyane. On remarque plusieurs points marquants, premièrement le taux d’activité de la population en général (15 - 64 ans) est très significativement inférieure a la moyenne de même pour le taux d’activité des jeunes (15-24 ans) qui est aussi faible. La Guyane possède un taux de pauvreté moyen et une médiane du niveau de vie moyenne aussi, étant donné que nous avons défini que c’était égale à la médiane de ces deux variables, cependant cela reste bien sûr à nuancer à compte tenu du fait que ce n’est pas le cas en vrai. D’un point de vue économique, on constate que les salaires sont aux alentours de la moyenne avec un salaire net moyen pour les femmes assez supérieure a ceux des hommes. On retrouve aussi un taux d’entreprise assez moyen avec une part notable dans les entreprises d’industrie, contrairement, a celles spécialisé dans les services marchands auprès des ménages où l’on retrouve un taux significativement inférieur à la moyenne. On peut aussi constater que le taux de logement est significativement inférieur à la moyenne. Démographiquement parlant la Guyane possède une population remarquablement jeune (15-24) avec un taux très significativement supérieure a la moyenne qui est paradoxalement opposée à un taux des personnes entres 25 à 64 très significativement inférieure à la moyenne.

  • Finalement, la classe 1 contient 91 % des individus. Nous effectuons donc une seconde classification sur cette classe afin de mieux identifier et de tirer un profil convainquant sur ces individus.

Seconde Classification

X1 = X[classif==1,] 
dim(X1)
## [1] 91 18

Centrage-Réduction

Xcr=scale(X1)
apply(Xcr[,],2,mean)    # = ~ 0   
##                     TxAct15_64                     TxAct15_24 
##                  -2.691443e-18                   1.034935e-15 
##                     TxPauvrete                   MedianeNvVie 
##                   2.768886e-17                   3.194083e-16 
##                   SalNetHorMoy                  SalNetHorMoyF 
##                  -4.058875e-16                   7.817556e-16 
##                  SalNetHorMoyH                          TxLgt 
##                  -2.293517e-16                  -1.401218e-16 
##                   TxPerso15_24                   TxPerso15_64 
##                  -2.346619e-16                   1.742706e-15 
##                   TxPerso25_64                        TxEntrp 
##                  -1.037934e-15                  -1.134406e-17 
##                 TxEntrpConstru TxEntrpCommerceTransportRestau 
##                  -1.881898e-16                   1.859907e-16 
##               TxEntrpServMarch    TxEntrpServMarchAupresEntrp 
##                   1.955710e-16                   4.868395e-17 
##  TxEntrpServMarchAupresMenages               TxEntrpIndustrie 
##                  -1.283180e-16                   1.833541e-16
apply(Xcr[,],2,sd)      # = ~ 1
##                     TxAct15_64                     TxAct15_24 
##                              1                              1 
##                     TxPauvrete                   MedianeNvVie 
##                              1                              1 
##                   SalNetHorMoy                  SalNetHorMoyF 
##                              1                              1 
##                  SalNetHorMoyH                          TxLgt 
##                              1                              1 
##                   TxPerso15_24                   TxPerso15_64 
##                              1                              1 
##                   TxPerso25_64                        TxEntrp 
##                              1                              1 
##                 TxEntrpConstru TxEntrpCommerceTransportRestau 
##                              1                              1 
##               TxEntrpServMarch    TxEntrpServMarchAupresEntrp 
##                              1                              1 
##  TxEntrpServMarchAupresMenages               TxEntrpIndustrie 
##                              1                              1

Classification ascendante hiérarchique

# C.A.H. (distance choisie : average)
cah = hclust(dist(Xcr), method = "average")

# On affichage l'arbre : option hang = -1 (part de la fenêtre graphique réservée aux labels)
plot(cah, hang = -1)

# les hauteurs (sauts)
cah$height
##  [1] 0.7050532 1.0942567 1.1826576 1.2015042 1.2620956 1.3016764 1.3599977
##  [8] 1.3643791 1.3794733 1.3988485 1.4031232 1.4206963 1.5149331 1.5450762
## [15] 1.5607732 1.6756526 1.6938067 1.7034215 1.7179379 1.7249598 1.7656295
## [22] 1.7860990 1.8292867 1.8394371 1.8395090 1.8413308 1.8626892 1.8962288
## [29] 1.9028153 1.9083990 1.9363182 1.9544702 2.0264436 2.0898514 2.0972249
## [36] 2.1007421 2.1210157 2.1396880 2.1922488 2.3179946 2.3421353 2.3667958
## [43] 2.3918543 2.4191764 2.4203916 2.4317819 2.4562543 2.4922669 2.5400865
## [50] 2.5770750 2.6066041 2.6123576 2.6305388 2.6502537 2.6621256 2.6718253
## [57] 2.6830073 2.7610144 2.8152688 2.8395583 2.8891073 2.9089432 2.9282236
## [64] 3.0523190 3.0559811 3.0917692 3.1054228 3.1639437 3.2227083 3.3425280
## [71] 3.4046120 3.4709877 3.4957478 3.7582675 3.7633077 3.8176035 3.9923637
## [78] 4.1964805 4.3829827 4.5851569 4.6386844 4.7156145 4.8217453 5.1930786
## [85] 6.0676897 6.2587606 6.7546928 7.0396910 8.8180514 9.1409093
# afficher le nombre de classes en abscisse, les sauts en ordonnees
plot(rev(cah$height),type="b")

Choix du nombre de classes et classification

# nombre de classes
q=4

# ré-afficher l'arbre, avec les classes choisies
plot(cah, hang = -1)
rect.hclust(cah, q)

# classifier (= couper l'arbre)
classif= cutree(cah,q)
classif
##                     Ain                   Aisne                  Allier 
##                       1                       1                       1 
## Alpes-de-Haute-Provence            Hautes-Alpes                 Ardèche 
##                       1                       2                       1 
##                Ardennes                  Ariège                    Aube 
##                       1                       1                       1 
##                    Aude                 Aveyron        Bouches-du-Rhône 
##                       1                       1                       1 
##                Calvados                  Cantal                Charente 
##                       1                       1                       1 
##       Charente-Maritime                    Cher                 Corrèze 
##                       1                       1                       1 
##               Côte-d'Or           Côtes-d'Armor                  Creuse 
##                       1                       1                       1 
##                Dordogne                   Doubs                   Drôme 
##                       1                       1                       1 
##                    Eure            Eure-et-Loir               Finistère 
##                       1                       1                       1 
##                    Gard           Haute-Garonne                    Gers 
##                       1                       3                       1 
##                 Gironde                 Hérault         Ille-et-Vilaine 
##                       3                       1                       1 
##                   Indre          Indre-et-Loire                   Isère 
##                       1                       1                       3 
##                    Jura                  Landes            Loir-et-Cher 
##                       1                       1                       1 
##                   Loire             Haute-Loire        Loire-Atlantique 
##                       1                       1                       3 
##                  Loiret                     Lot          Lot-et-Garonne 
##                       1                       1                       1 
##                  Lozère          Maine-et-Loire                  Manche 
##                       1                       1                       1 
##                   Marne             Haute-Marne                 Mayenne 
##                       1                       1                       1 
##      Meurthe-et-Moselle                   Meuse                Morbihan 
##                       1                       1                       1 
##                 Moselle                  Nièvre                    Nord 
##                       1                       1                       1 
##                    Oise                    Orne           Pas-de-Calais 
##                       1                       1                       1 
##             Puy-de-Dôme    Pyrénées-Atlantiques         Hautes-Pyrénées 
##                       1                       1                       1 
##     Pyrénées-Orientales                Bas-Rhin               Haut-Rhin 
##                       1                       3                       1 
##                   Rhône             Haute-Saône          Saône-et-Loire 
##                       3                       1                       1 
##                  Sarthe                  Savoie            Haute-Savoie 
##                       1                       2                       2 
##          Seine-Maritime          Seine-et-Marne             Deux-Sèvres 
##                       1                       3                       1 
##                   Somme                    Tarn         Tarn-et-Garonne 
##                       1                       1                       1 
##                     Var                Vaucluse                  Vendée 
##                       1                       1                       1 
##                  Vienne            Haute-Vienne                  Vosges 
##                       1                       1                       1 
##                   Yonne   Territoire de Belfort                 Essonne 
##                       1                       1                       3 
##       Seine-Saint-Denis            Val-de-Marne              Val-d'Oise 
##                       4                       3                       3 
##              La Réunion 
##                       4
# afficher les villes par classe
sort(classif)
##                     Ain                   Aisne                  Allier 
##                       1                       1                       1 
## Alpes-de-Haute-Provence                 Ardèche                Ardennes 
##                       1                       1                       1 
##                  Ariège                    Aube                    Aude 
##                       1                       1                       1 
##                 Aveyron        Bouches-du-Rhône                Calvados 
##                       1                       1                       1 
##                  Cantal                Charente       Charente-Maritime 
##                       1                       1                       1 
##                    Cher                 Corrèze               Côte-d'Or 
##                       1                       1                       1 
##           Côtes-d'Armor                  Creuse                Dordogne 
##                       1                       1                       1 
##                   Doubs                   Drôme                    Eure 
##                       1                       1                       1 
##            Eure-et-Loir               Finistère                    Gard 
##                       1                       1                       1 
##                    Gers                 Hérault         Ille-et-Vilaine 
##                       1                       1                       1 
##                   Indre          Indre-et-Loire                    Jura 
##                       1                       1                       1 
##                  Landes            Loir-et-Cher                   Loire 
##                       1                       1                       1 
##             Haute-Loire                  Loiret                     Lot 
##                       1                       1                       1 
##          Lot-et-Garonne                  Lozère          Maine-et-Loire 
##                       1                       1                       1 
##                  Manche                   Marne             Haute-Marne 
##                       1                       1                       1 
##                 Mayenne      Meurthe-et-Moselle                   Meuse 
##                       1                       1                       1 
##                Morbihan                 Moselle                  Nièvre 
##                       1                       1                       1 
##                    Nord                    Oise                    Orne 
##                       1                       1                       1 
##           Pas-de-Calais             Puy-de-Dôme    Pyrénées-Atlantiques 
##                       1                       1                       1 
##         Hautes-Pyrénées     Pyrénées-Orientales               Haut-Rhin 
##                       1                       1                       1 
##             Haute-Saône          Saône-et-Loire                  Sarthe 
##                       1                       1                       1 
##          Seine-Maritime             Deux-Sèvres                   Somme 
##                       1                       1                       1 
##                    Tarn         Tarn-et-Garonne                     Var 
##                       1                       1                       1 
##                Vaucluse                  Vendée                  Vienne 
##                       1                       1                       1 
##            Haute-Vienne                  Vosges                   Yonne 
##                       1                       1                       1 
##   Territoire de Belfort            Hautes-Alpes                  Savoie 
##                       1                       2                       2 
##            Haute-Savoie           Haute-Garonne                 Gironde 
##                       2                       3                       3 
##                   Isère        Loire-Atlantique                Bas-Rhin 
##                       3                       3                       3 
##                   Rhône          Seine-et-Marne                 Essonne 
##                       3                       3                       3 
##            Val-de-Marne              Val-d'Oise       Seine-Saint-Denis 
##                       3                       3                       4 
##              La Réunion 
##                       4

Profil classes : analyse spatiale (dispersion classes)

# Effectifs des classes
table(classif)
## classif
##  1  2  3  4 
## 76  3 10  2
# Variances des Ecarts-type des classes
n=length(classif)
variance_totale=sum(diag(var(Xcr)))*(n-1)/n
variances_classes=rep(0,q)
for (k in 1:q) {
    n=sum(classif==k)
    variances_classes[k] = sum(diag(var(Xcr[classif==k,])))*(n-1)/n
}
round(variances_classes,2)
## [1] 12.02 13.19  7.74  9.20
round(variance_totale,2)
## [1] 17.8
# et donc écarts-type des classes
n=length(classif)
variance_totale=sum(diag(var(Xcr)))*(n-1)/n
variances_classes=rep(0,q)
for (k in 1:q) {
    n=sum(classif==k)
    variances_classes[k] = sum(diag(var(Xcr[classif==k,])))*(n-1)/n
}
sqrt(round(variances_classes,2))
## [1] 3.466987 3.631804 2.782086 3.033150
sqrt(round(variance_totale,2))
## [1] 4.219005

Distances inter-classes (sur centres de gravite)

# i. Calcul des individus moyens (= moyennes, centres de gravite, centroïde)
moyennes = aggregate(Xcr[,],list(classif),mean)[,-1]
round(moyennes,2)
##   TxAct15_64 TxAct15_24 TxPauvrete MedianeNvVie SalNetHorMoy SalNetHorMoyF
## 1      -0.16       0.12      -0.04        -0.15        -0.28         -0.30
## 2       2.01       1.00      -0.92         1.64         0.15          0.03
## 3       0.80      -1.07      -0.41         1.30         2.03          2.04
## 4      -1.07      -0.89       4.83        -3.39         0.08          1.04
##   SalNetHorMoyH TxLgt TxPerso15_24 TxPerso15_64 TxPerso25_64 TxEntrp
## 1         -0.26  0.07        -0.21        -0.27        -0.25   -0.16
## 2          0.23  2.39        -0.36         0.59         1.62    2.49
## 3          1.99 -0.92         1.34         1.50         1.14    0.37
## 4         -0.43 -1.59         1.69         1.92         1.49    0.43
##   TxEntrpConstru TxEntrpCommerceTransportRestau TxEntrpServMarch
## 1          -0.08                          -0.12            -0.21
## 2           1.34                           1.97             2.83
## 3           0.01                           0.01             0.78
## 4           1.03                           1.43            -0.27
##   TxEntrpServMarchAupresEntrp TxEntrpServMarchAupresMenages TxEntrpIndustrie
## 1                       -0.24                         -0.14             0.09
## 2                        1.55                          3.62             0.75
## 3                        1.34                          0.13            -0.90
## 4                        0.20                         -0.68            -0.08
# ii. Matrice des distances entre individus moyens
round(dist(moyennes),2)
##       1     2     3
## 2  7.75            
## 3  5.80  7.81      
## 4  7.53 11.40  8.45

Profil classes : individus moyens

# Graphique général
matplot(t(moyennes), type="b")
abline(h=0)
abline(h=c(-1,1),lty=2)
text(1:ncol(X), max(moyennes)*1.1,colnames(X), xpd= NA, srt = 90)

Analyse des différentes classes

  • Même principe qu’au-dessus du fait que les classes 2 3 4 contiennent des outliers, on refait une classification seulement sur la première classe contenant 76 individus maintenant.
  • De façon globale on remarque que la classe 2 est une classe contenant des départements ayant un profil tourné vers le taux d’activité particulièrement les 15-64, un taux de logement significativement supérieure et de même pour le taux d’entreprise.
  • La classe 3, elle se discerne par un revenu moyen fort sans inégalité marquée.
  • Cette dernière classe semble, contrairement aux autres détachés du fait de son taux de pauvreté très significativement supérieure à la moyenne et une médiane de niveau nettement inférieure à la moyenne de manière significative.

Établissons encore une classification.

Troisième Classification

En définissant la variable age à l’aide d’une table on peut ensuite facilement réaliser un plot.

# Seulement les villes de la classe 1
X2 = X1[classif==1,]    
dim(X2)
## [1] 76 18

Centrage-réduction

# On centre et on réduit : 
Xcr=scale(X2)

# On vérifie les nouvelles moyennes et nouveaux écarts-type :
apply(Xcr[,],2,mean)    # = ~ 0   
##                     TxAct15_64                     TxAct15_24 
##                  -2.821291e-15                   4.598551e-16 
##                     TxPauvrete                   MedianeNvVie 
##                   1.314554e-16                  -1.869834e-15 
##                   SalNetHorMoy                  SalNetHorMoyF 
##                  -5.857117e-16                   1.499159e-15 
##                  SalNetHorMoyH                          TxLgt 
##                   7.005173e-16                  -3.779165e-16 
##                   TxPerso15_24                   TxPerso15_64 
##                   4.290687e-16                  -8.866206e-18 
##                   TxPerso25_64                        TxEntrp 
##                  -5.022803e-15                   1.556458e-16 
##                 TxEntrpConstru TxEntrpCommerceTransportRestau 
##                   2.690548e-16                  -4.726237e-16 
##               TxEntrpServMarch    TxEntrpServMarchAupresEntrp 
##                   1.491634e-16                  -4.640385e-17 
##  TxEntrpServMarchAupresMenages               TxEntrpIndustrie 
##                  -2.426915e-16                  -4.280316e-17
apply(Xcr[,],2,sd)      # = ~ 1
##                     TxAct15_64                     TxAct15_24 
##                              1                              1 
##                     TxPauvrete                   MedianeNvVie 
##                              1                              1 
##                   SalNetHorMoy                  SalNetHorMoyF 
##                              1                              1 
##                  SalNetHorMoyH                          TxLgt 
##                              1                              1 
##                   TxPerso15_24                   TxPerso15_64 
##                              1                              1 
##                   TxPerso25_64                        TxEntrp 
##                              1                              1 
##                 TxEntrpConstru TxEntrpCommerceTransportRestau 
##                              1                              1 
##               TxEntrpServMarch    TxEntrpServMarchAupresEntrp 
##                              1                              1 
##  TxEntrpServMarchAupresMenages               TxEntrpIndustrie 
##                              1                              1

Classification ascendante hiérarchique

# C.A.H. (distance choisie : average)
cah = hclust(dist(Xcr), method = "average")

# On affichage l'arbre : option hang = -1 (part de la fenêtre graphique réservée aux labels)
plot(cah, hang = -1)

# les hauteurs (sauts)
cah$height
##  [1] 0.9223665 1.3217616 1.3889098 1.4498312 1.4858378 1.5499853 1.5510968
##  [8] 1.5582454 1.5676527 1.7001485 1.7009260 1.7898770 1.8239343 1.8411734
## [15] 1.8713834 1.8929501 1.9756086 1.9965207 2.0128280 2.0586660 2.1205835
## [22] 2.2224407 2.2401110 2.2590869 2.2869752 2.2933011 2.2943771 2.3360247
## [29] 2.3924217 2.4614456 2.4618501 2.4763436 2.5211761 2.5258168 2.5457048
## [36] 2.5830655 2.6095068 2.6225977 2.6464150 2.7727479 2.9054614 2.9542775
## [43] 2.9871725 3.0220281 3.0343405 3.1355070 3.1487346 3.1583674 3.2381475
## [50] 3.2700645 3.2708998 3.2732072 3.2841945 3.2915984 3.3018945 3.4379324
## [57] 3.4467392 3.5238668 3.5683971 3.7250855 3.9979860 4.0603519 4.0633945
## [64] 4.1319466 4.3733633 4.4956228 4.5261368 4.5287182 4.7948365 5.1509416
## [71] 5.6229603 5.8552851 6.1610805 6.1674491 7.6047328
# afficher le nombre de classes en abscisse, les sauts en ordonnees
plot(rev(cah$height),type="b")

Choix du nombre de classes et classification

# nombre de classes
q=3

# ré-afficher l'arbre, avec les classes choisies
plot(cah, hang = -1)
rect.hclust(cah, q)

# classifier (= couper l'arbre)
classif= cutree(cah,q)
classif
##                     Ain                   Aisne                  Allier 
##                       1                       1                       1 
## Alpes-de-Haute-Provence                 Ardèche                Ardennes 
##                       2                       1                       1 
##                  Ariège                    Aube                    Aude 
##                       1                       1                       3 
##                 Aveyron        Bouches-du-Rhône                Calvados 
##                       1                       2                       1 
##                  Cantal                Charente       Charente-Maritime 
##                       1                       1                       1 
##                    Cher                 Corrèze               Côte-d'Or 
##                       1                       1                       1 
##           Côtes-d'Armor                  Creuse                Dordogne 
##                       1                       1                       1 
##                   Doubs                   Drôme                    Eure 
##                       1                       2                       1 
##            Eure-et-Loir               Finistère                    Gard 
##                       1                       1                       2 
##                    Gers                 Hérault         Ille-et-Vilaine 
##                       1                       2                       1 
##                   Indre          Indre-et-Loire                    Jura 
##                       1                       1                       1 
##                  Landes            Loir-et-Cher                   Loire 
##                       1                       1                       1 
##             Haute-Loire                  Loiret                     Lot 
##                       1                       1                       1 
##          Lot-et-Garonne                  Lozère          Maine-et-Loire 
##                       1                       1                       1 
##                  Manche                   Marne             Haute-Marne 
##                       1                       1                       1 
##                 Mayenne      Meurthe-et-Moselle                   Meuse 
##                       1                       1                       1 
##                Morbihan                 Moselle                  Nièvre 
##                       1                       1                       1 
##                    Nord                    Oise                    Orne 
##                       1                       1                       1 
##           Pas-de-Calais             Puy-de-Dôme    Pyrénées-Atlantiques 
##                       1                       1                       2 
##         Hautes-Pyrénées     Pyrénées-Orientales               Haut-Rhin 
##                       1                       3                       1 
##             Haute-Saône          Saône-et-Loire                  Sarthe 
##                       1                       1                       1 
##          Seine-Maritime             Deux-Sèvres                   Somme 
##                       1                       1                       1 
##                    Tarn         Tarn-et-Garonne                     Var 
##                       1                       1                       2 
##                Vaucluse                  Vendée                  Vienne 
##                       2                       1                       1 
##            Haute-Vienne                  Vosges                   Yonne 
##                       1                       1                       1 
##   Territoire de Belfort 
##                       1
# afficher les villes par classe
sort(classif)
##                     Ain                   Aisne                  Allier 
##                       1                       1                       1 
##                 Ardèche                Ardennes                  Ariège 
##                       1                       1                       1 
##                    Aube                 Aveyron                Calvados 
##                       1                       1                       1 
##                  Cantal                Charente       Charente-Maritime 
##                       1                       1                       1 
##                    Cher                 Corrèze               Côte-d'Or 
##                       1                       1                       1 
##           Côtes-d'Armor                  Creuse                Dordogne 
##                       1                       1                       1 
##                   Doubs                    Eure            Eure-et-Loir 
##                       1                       1                       1 
##               Finistère                    Gers         Ille-et-Vilaine 
##                       1                       1                       1 
##                   Indre          Indre-et-Loire                    Jura 
##                       1                       1                       1 
##                  Landes            Loir-et-Cher                   Loire 
##                       1                       1                       1 
##             Haute-Loire                  Loiret                     Lot 
##                       1                       1                       1 
##          Lot-et-Garonne                  Lozère          Maine-et-Loire 
##                       1                       1                       1 
##                  Manche                   Marne             Haute-Marne 
##                       1                       1                       1 
##                 Mayenne      Meurthe-et-Moselle                   Meuse 
##                       1                       1                       1 
##                Morbihan                 Moselle                  Nièvre 
##                       1                       1                       1 
##                    Nord                    Oise                    Orne 
##                       1                       1                       1 
##           Pas-de-Calais             Puy-de-Dôme         Hautes-Pyrénées 
##                       1                       1                       1 
##               Haut-Rhin             Haute-Saône          Saône-et-Loire 
##                       1                       1                       1 
##                  Sarthe          Seine-Maritime             Deux-Sèvres 
##                       1                       1                       1 
##                   Somme                    Tarn         Tarn-et-Garonne 
##                       1                       1                       1 
##                  Vendée                  Vienne            Haute-Vienne 
##                       1                       1                       1 
##                  Vosges                   Yonne   Territoire de Belfort 
##                       1                       1                       1 
## Alpes-de-Haute-Provence        Bouches-du-Rhône                   Drôme 
##                       2                       2                       2 
##                    Gard                 Hérault    Pyrénées-Atlantiques 
##                       2                       2                       2 
##                     Var                Vaucluse                    Aude 
##                       2                       2                       3 
##     Pyrénées-Orientales 
##                       3

Profil classes : analyse spatiale (dispersion classes)

# Effectifs des classes
table(classif)
## classif
##  1  2  3 
## 66  8  2
# Variances des Ecarts-type des classes
n=length(classif)
variance_totale=sum(diag(var(Xcr)))*(n-1)/n
variances_classes=rep(0,q)
for (k in 1:q) {
    n=sum(classif==k)
    variances_classes[k] = sum(diag(var(Xcr[classif==k,])))*(n-1)/n
}
round(variances_classes,2)
## [1] 13.93 11.00  1.52
round(variance_totale,2)
## [1] 17.76
# et donc écarts-type des classes
n=length(classif)
variance_totale=sum(diag(var(Xcr)))*(n-1)/n
variances_classes=rep(0,q)
for (k in 1:q) {
    n=sum(classif==k)
    variances_classes[k] = sum(diag(var(Xcr[classif==k,])))*(n-1)/n
}
sqrt(round(variances_classes,2))
## [1] 3.732292 3.316625 1.232883
sqrt(round(variance_totale,2))
## [1] 4.214262

Distances inter-classes (sur centres de gravite)

# i. Calcul des individus moyens (= moyennes, centres de gravite, centroïde)
moyennes = aggregate(Xcr[,],list(classif),mean)[,-1]
round(moyennes,2)
##   TxAct15_64 TxAct15_24 TxPauvrete MedianeNvVie SalNetHorMoy SalNetHorMoyF
## 1       0.13       0.13      -0.18         0.07        -0.07         -0.06
## 2      -0.67      -0.88       0.91        -0.06         0.87          0.70
## 3      -1.77      -0.73       2.36        -1.89        -1.07         -0.76
##   SalNetHorMoyH TxLgt TxPerso15_24 TxPerso15_64 TxPerso25_64 TxEntrp
## 1         -0.09 -0.10         0.00         0.02         0.05   -0.29
## 2          0.98  0.35         0.17         0.09        -0.08    2.05
## 3         -1.09  1.87        -0.54        -1.09        -1.36    1.36
##   TxEntrpConstru TxEntrpCommerceTransportRestau TxEntrpServMarch
## 1          -0.24                          -0.28            -0.30
## 2           1.69                           1.82             2.23
## 3           1.32                           1.82             1.14
##   TxEntrpServMarchAupresEntrp TxEntrpServMarchAupresMenages TxEntrpIndustrie
## 1                       -0.29                         -0.30            -0.05
## 2                        2.19                          2.10             0.49
## 3                        0.82                          1.41            -0.23
# ii. Matrice des distances entre individus moyens
round(dist(moyennes),2)
##      1    2
## 2 6.16     
## 3 6.35 5.23

Profil classes : individus moyens

matplot(t(moyennes), type="b")
abline(h=0)
abline(h=c(-1,1),lty=2)
text(1:ncol(X), max(moyennes)*1.1,colnames(X), xpd= NA, srt = 90 )

Analyse des différentes classes

  • Encore une fois, les classes 2 3 possèdent des outliers.
  • On refait alors encore une dernière fois, une classification seulement sur la première classe contenant cette fois-ci 66 individus maintenant.
  • D’un premier coup d’œil, on observe que la classe 2 contient des départements à majorité dans le sud-est (excepté les Pyrénées Atlantique), on y retrouve un taux d’activité assez faible en adhésion avec un taux de pauvreté plus ou moins important. On peut aussi voir que le salaire moyen des hommes semble légèrement supérieur à celui des femmes. Cependant, cette classe se démarque notamment par son taux d’entreprise très important.
  • De l’autre côté, on retrouve dans la classe 3, deux départements du Sud-ouest avec un taux de pauvreté significativement supérieure à la moyenne, une médiane du niveau de vie significativement inférieure à la moyenne et un taux de logement significativement supérieure à la moyenne.

Encore une fois, réalisons une autre classification.

Quatrième Classification

# Seulement les villes de la classe 1
X3 = X2[classif==1,]    
dim(X3) 
## [1] 66 18

Centrage-réduction

# On centre et on réduit : 
Xcr=scale(X3)
# On vérifie les nouvelles moyennes et nouveaux écarts-type :
apply(Xcr[,],2,mean)    # = ~ 0   
##                     TxAct15_64                     TxAct15_24 
##                   3.792248e-15                  -3.895785e-16 
##                     TxPauvrete                   MedianeNvVie 
##                   2.915995e-16                   2.777660e-16 
##                   SalNetHorMoy                  SalNetHorMoyF 
##                   8.622496e-16                   3.822470e-16 
##                  SalNetHorMoyH                          TxLgt 
##                  -5.791019e-16                  -4.479151e-17 
##                   TxPerso15_24                   TxPerso15_64 
##                   2.872561e-16                  -8.617699e-16 
##                   TxPerso25_64                        TxEntrp 
##                  -2.221431e-15                   8.933826e-17 
##                 TxEntrpConstru TxEntrpCommerceTransportRestau 
##                  -2.355938e-16                  -3.593440e-16 
##               TxEntrpServMarch    TxEntrpServMarchAupresEntrp 
##                   3.675289e-16                   2.630192e-16 
##  TxEntrpServMarchAupresMenages               TxEntrpIndustrie 
##                   4.389852e-16                   3.968098e-16
apply(Xcr[,],2,sd)      # = ~ 1
##                     TxAct15_64                     TxAct15_24 
##                              1                              1 
##                     TxPauvrete                   MedianeNvVie 
##                              1                              1 
##                   SalNetHorMoy                  SalNetHorMoyF 
##                              1                              1 
##                  SalNetHorMoyH                          TxLgt 
##                              1                              1 
##                   TxPerso15_24                   TxPerso15_64 
##                              1                              1 
##                   TxPerso25_64                        TxEntrp 
##                              1                              1 
##                 TxEntrpConstru TxEntrpCommerceTransportRestau 
##                              1                              1 
##               TxEntrpServMarch    TxEntrpServMarchAupresEntrp 
##                              1                              1 
##  TxEntrpServMarchAupresMenages               TxEntrpIndustrie 
##                              1                              1

Classification ascendante hiérarchique

# C.A.H. (distance choisie : average)
cah = hclust(dist(Xcr), method = "average")

# On affichage l'arbre : option hang = -1 (part de la fenêtre graphique réservée aux labels)
plot(cah, hang = -1)

# les hauteurs (sauts)
cah$height
##  [1] 1.051902 1.456970 1.575028 1.676584 1.709589 1.753569 1.821924 1.896595
##  [9] 1.908438 1.950279 1.976908 2.008783 2.043770 2.054348 2.071069 2.212601
## [17] 2.223165 2.290010 2.329900 2.428729 2.478351 2.490967 2.517138 2.535825
## [25] 2.544008 2.552762 2.579529 2.595246 2.687711 2.704186 2.724338 2.757243
## [33] 2.782326 2.826187 2.850436 2.867792 2.937167 2.980391 3.130780 3.131758
## [41] 3.163174 3.165492 3.322079 3.442635 3.533015 3.595594 3.631026 3.698953
## [49] 3.787273 3.865123 3.871622 3.893991 3.973715 4.024198 4.060528 4.353851
## [57] 4.385961 4.473562 4.603228 4.919754 5.247990 5.362926 5.589785 6.274283
## [65] 6.593231
# afficher le nombre de classes en abscisse, les sauts en ordonnees
plot(rev(cah$height),type="b")

Choix du nombre de classes et classification

# nombre de classes
q=4

# ré-afficher l'arbre, avec les classes choisies
plot(cah, hang = -1)
rect.hclust(cah, q)

# classifier (= couper l'arbre)
classif= cutree(cah,q)
classif
##                   Ain                 Aisne                Allier 
##                     1                     2                     3 
##               Ardèche              Ardennes                Ariège 
##                     4                     2                     4 
##                  Aube               Aveyron              Calvados 
##                     1                     4                     1 
##                Cantal              Charente     Charente-Maritime 
##                     4                     3                     4 
##                  Cher               Corrèze             Côte-d'Or 
##                     3                     4                     1 
##         Côtes-d'Armor                Creuse              Dordogne 
##                     4                     4                     4 
##                 Doubs                  Eure          Eure-et-Loir 
##                     1                     1                     1 
##             Finistère                  Gers       Ille-et-Vilaine 
##                     1                     4                     1 
##                 Indre        Indre-et-Loire                  Jura 
##                     3                     1                     4 
##                Landes          Loir-et-Cher                 Loire 
##                     4                     3                     4 
##           Haute-Loire                Loiret                   Lot 
##                     4                     1                     4 
##        Lot-et-Garonne                Lozère        Maine-et-Loire 
##                     4                     4                     1 
##                Manche                 Marne           Haute-Marne 
##                     3                     1                     3 
##               Mayenne    Meurthe-et-Moselle                 Meuse 
##                     3                     1                     3 
##              Morbihan               Moselle                Nièvre 
##                     4                     1                     3 
##                  Nord                  Oise                  Orne 
##                     2                     1                     3 
##         Pas-de-Calais           Puy-de-Dôme       Hautes-Pyrénées 
##                     2                     1                     4 
##             Haut-Rhin           Haute-Saône        Saône-et-Loire 
##                     1                     3                     3 
##                Sarthe        Seine-Maritime           Deux-Sèvres 
##                     3                     1                     3 
##                 Somme                  Tarn       Tarn-et-Garonne 
##                     2                     4                     4 
##                Vendée                Vienne          Haute-Vienne 
##                     3                     1                     1 
##                Vosges                 Yonne Territoire de Belfort 
##                     3                     3                     1
# afficher les villes par classe
sort(classif)
##                   Ain                  Aube              Calvados 
##                     1                     1                     1 
##             Côte-d'Or                 Doubs                  Eure 
##                     1                     1                     1 
##          Eure-et-Loir             Finistère       Ille-et-Vilaine 
##                     1                     1                     1 
##        Indre-et-Loire                Loiret        Maine-et-Loire 
##                     1                     1                     1 
##                 Marne    Meurthe-et-Moselle               Moselle 
##                     1                     1                     1 
##                  Oise           Puy-de-Dôme             Haut-Rhin 
##                     1                     1                     1 
##        Seine-Maritime                Vienne          Haute-Vienne 
##                     1                     1                     1 
## Territoire de Belfort                 Aisne              Ardennes 
##                     1                     2                     2 
##                  Nord         Pas-de-Calais                 Somme 
##                     2                     2                     2 
##                Allier              Charente                  Cher 
##                     3                     3                     3 
##                 Indre          Loir-et-Cher                Manche 
##                     3                     3                     3 
##           Haute-Marne               Mayenne                 Meuse 
##                     3                     3                     3 
##                Nièvre                  Orne           Haute-Saône 
##                     3                     3                     3 
##        Saône-et-Loire                Sarthe           Deux-Sèvres 
##                     3                     3                     3 
##                Vendée                Vosges                 Yonne 
##                     3                     3                     3 
##               Ardèche                Ariège               Aveyron 
##                     4                     4                     4 
##                Cantal     Charente-Maritime               Corrèze 
##                     4                     4                     4 
##         Côtes-d'Armor                Creuse              Dordogne 
##                     4                     4                     4 
##                  Gers                  Jura                Landes 
##                     4                     4                     4 
##                 Loire           Haute-Loire                   Lot 
##                     4                     4                     4 
##        Lot-et-Garonne                Lozère              Morbihan 
##                     4                     4                     4 
##       Hautes-Pyrénées                  Tarn       Tarn-et-Garonne 
##                     4                     4                     4

Profil classes : analyse spatiale (dispersion classes)

# Effectifs des classes
table(classif)
## classif
##  1  2  3  4 
## 22  5 18 21
# Variances des Ecarts-type des classes
n=length(classif)
variance_totale=sum(diag(var(Xcr)))*(n-1)/n
variances_classes=rep(0,q)
for (k in 1:q) {
    n=sum(classif==k)
    variances_classes[k] = sum(diag(var(Xcr[classif==k,])))*(n-1)/n
}
round(variances_classes,2)
## [1] 9.40 6.49 5.88 9.47
round(variance_totale,2)
## [1] 17.73
# et donc écarts-type des classes
n=length(classif)
variance_totale=sum(diag(var(Xcr)))*(n-1)/n
variances_classes=rep(0,q)
for (k in 1:q) {
    n=sum(classif==k)
    variances_classes[k] = sum(diag(var(Xcr[classif==k,])))*(n-1)/n
}
sqrt(round(variances_classes,2))
## [1] 3.065942 2.547548 2.424871 3.077337
sqrt(round(variance_totale,2))
## [1] 4.210701

Distances inter-classes (sur centres de gravite)

# i. Calcul des individus moyens (= moyennes, centres de gravite, centroïde)
moyennes = aggregate(Xcr[,],list(classif),mean)[,-1]
round(moyennes,2)
##   TxAct15_64 TxAct15_24 TxPauvrete MedianeNvVie SalNetHorMoy SalNetHorMoyF
## 1       0.13      -0.64      -0.51         1.01         1.00          0.97
## 2      -1.86      -0.69       2.08        -1.49         0.22          0.15
## 3       0.23       0.97      -0.11        -0.36        -0.46         -0.42
## 4       0.11       0.00       0.14        -0.39        -0.71         -0.69
##   SalNetHorMoyH TxLgt TxPerso15_24 TxPerso15_64 TxPerso25_64 TxEntrp
## 1          1.01 -0.65         0.96         1.01         0.58   -0.35
## 2          0.07 -1.01         1.00         1.09         0.69   -1.29
## 3         -0.49  0.04        -0.51        -0.53        -0.29   -0.56
## 4         -0.66  0.89        -0.81        -0.86        -0.52    1.15
##   TxEntrpConstru TxEntrpCommerceTransportRestau TxEntrpServMarch
## 1          -0.51                          -0.52             0.05
## 2          -1.29                          -0.95            -1.18
## 3          -0.36                          -0.41            -0.77
## 4           1.15                           1.13             0.88
##   TxEntrpServMarchAupresEntrp TxEntrpServMarchAupresMenages TxEntrpIndustrie
## 1                        0.30                         -0.21            -0.65
## 2                       -1.22                         -0.95            -1.21
## 3                       -0.71                         -0.70            -0.05
## 4                        0.59                          1.04             1.01
# ii. Matrice des distances entre individus moyens
round(dist(moyennes),2)
##      1    2    3
## 2 5.06          
## 3 4.37 4.97     
## 4 5.86 7.50 4.29

Profil classes : individus moyens

matplot(t(moyennes), type="b")
abline(h=0)
abline(h=c(-1,1),lty=2)
text(1:ncol(X), max(moyennes)*1.1,colnames(X), xpd= NA, srt = 90 )

Silhouette

Pour finir, on peut réaliser une silhouette des différentes individus

library(cluster)
sil = silhouette(classif, dist(X3))
rownames(sil)=rownames(X3)
sil
##                       cluster neighbor   sil_width
## Ain                         1        3  0.42029683
## Aisne                       2        4  0.61690546
## Allier                      3        4  0.21571109
## Ardèche                     4        3 -0.34465909
## Ardennes                    2        4  0.62284038
## Ariège                      4        2 -0.64942316
## Aube                        1        3 -0.75904773
## Aveyron                     4        3 -0.33468648
## Calvados                    1        3  0.15658912
## Cantal                      4        3 -0.27059432
## Charente                    3        4  0.27898645
## Charente-Maritime           4        3 -0.20034870
## Cher                        3        4  0.28725371
## Corrèze                     4        3 -0.27494239
## Côte-d'Or                   1        3  0.55460942
## Côtes-d'Armor               4        3 -0.18706862
## Creuse                      4        2 -0.66389325
## Dordogne                    4        2 -0.29577481
## Doubs                       1        3  0.53629346
## Eure                        1        3  0.50705279
## Eure-et-Loir                1        3  0.59663013
## Finistère                   1        3  0.44835963
## Gers                        4        3 -0.36409135
## Ille-et-Vilaine             1        3  0.59879722
## Indre                       3        2  0.10854845
## Indre-et-Loire              1        3  0.56869490
## Jura                        4        1 -0.55348449
## Landes                      4        1 -0.21609164
## Loir-et-Cher                3        1 -0.31472535
## Loire                       4        3 -0.36436993
## Haute-Loire                 4        3 -0.34173521
## Loiret                      1        3  0.59878646
## Lot                         4        3 -0.35955066
## Lot-et-Garonne              4        2 -0.51256772
## Lozère                      4        3 -0.30270071
## Maine-et-Loire              1        3 -0.47826693
## Manche                      3        4  0.29288056
## Marne                       1        3  0.50409738
## Haute-Marne                 3        2 -0.11156519
## Mayenne                     3        4  0.29416087
## Meurthe-et-Moselle          1        3  0.46905370
## Meuse                       3        4  0.26656897
## Morbihan                    4        1 -0.38918965
## Moselle                     1        3  0.46550053
## Nièvre                      3        4  0.23134770
## Nord                        2        3  0.31759796
## Oise                        1        3  0.59727838
## Orne                        3        2 -0.19264636
## Pas-de-Calais               2        4  0.50459676
## Puy-de-Dôme                 1        3  0.58879880
## Hautes-Pyrénées             4        3 -0.33342694
## Haut-Rhin                   1        3  0.43638793
## Haute-Saône                 3        4  0.26756405
## Saône-et-Loire              3        4  0.29525824
## Sarthe                      3        4  0.17841191
## Seine-Maritime              1        3 -0.10872244
## Deux-Sèvres                 3        4  0.29279686
## Somme                       2        3 -0.37384502
## Tarn                        4        3 -0.30923810
## Tarn-et-Garonne             4        2 -0.38695190
## Vendée                      3        4  0.09418831
## Vienne                      1        3 -0.49134763
## Haute-Vienne                1        3 -0.46333596
## Vosges                      3        2 -0.01708901
## Yonne                       3        4  0.26598204
## Territoire de Belfort       1        3  0.54375817
## attr(,"Ordered")
## [1] FALSE
## attr(,"call")
## silhouette.default(x = classif, dist = dist(X3))
## attr(,"class")
## [1] "silhouette"
plot(sil,nmax=70, cex.names = 0.5)

Package FactoExtra

Afin d’avoir une meilleur vision de la silhouette, on peut utiliser le package factoextra servant à la même chose mais représentant les différents départements.

library(factoextra) # clustering algorithms & visualization
Xtest <- kmeans(scale(X3), 4, nstart = 25)
# 3. Visualize
library("factoextra")
fviz_cluster(Xtest, data = Xcr,
             palette = c("#00AFBB","#FF6347", "#E7B800", "#DA70D6"),
             ggtheme = theme_minimal(),
             main = "Partitioning Clustering Plot"
)

Analyse des différentes classes

Pour conclure cette classification, on peut distinguer 4 grands profils dans notre jeu de données, premièrement, on peut observer à l’aide du matplot que ces 4 classes sont les suivantes :

  • Cette première classe, contenant pour la plupart des départements du nord, se définit premièrement par un taux d’activité des jeunes assez faible, on retrouve deuxièmement un taux de pauvreté assez faible aussi en corrélation avec une médiane de niveau de vie, et des salaires horaires net moyens important environ 1 écart type, aucune distinction entre les femmes et les hommes semblent notable. Cependant, cette classe se démarque négativement de part un taux d’entreprise assez faible, avec tout de même un secteur dans les services marchands auprès des marchands remarquable.

  • On retrouve ensuite une deuxième classe très identifiable par un taux d’activité de la population extrêmement faible, plus de deux écarts-types ainsi qu’un taux de pauvreté très significativement élevée, cela reste en adéquation avec une i une médiane de niveau vie faible avec plus d’un écart type. Cette classe possède aussi un taux de logement faible, mais elle se démarque encore plus de part son taux d’entreprise inégalement faible, soit plus de deux écarts-types. En analysant les différents individus de la classe, Nord, Somme, Pas de Calais, on remarque qu’il s’agit de départements très ruraux, ce qui expliquerait donc ces derniers relevés.

  • Quant à la classe 3, on peut voir qu’il s’agit d’une classe contenant des départements ou le taux d’activité des jeunes est important, mais qui semble tout de même être assez en deçà dans l’ensemble comme le témoigne le matplot. En effet hormis le taux d’activité, cette classe se distingue par des taux dans l’ensemble des catégories assez faible, souvent proche de la moyenne.

  • Finalement, cette dernière classe contient 21 individus, ou on retrouve de manière significative un taux de logement élevé et un taux d’entreprise important, paradoxalement, on remarque que les salaires nets moyens sont assez faibles.

  • Intéressons-nous maintenant à la silhouette ainsi qu’au plot du package factorextra. À l’aide de ces deux plots, on peut venir renforcer notre analyse, ainsi, on remarque que dans l’ensemble les classes 1,2,3 sont assez homogènes, en effet les valeurs de leurs silhouettes sont positifs, cependant quelques individus de ces classes semblent avoir tendance à être voisins d’une autre classe.

  • En observant avec la fonction sil et a l’aide du plot final on remarque que dans la classe 1 l’Aube,le Maine-et-Loire,la Seine-Maritime,Vienne et Haute-Vienne sont des départements très voisins à la classe 3, de plus cela est visible sur la representation en 2 dimensions que nous fournit le plot.

  • Concernant la classe 2, on peut voir que la Somme est elle aussi un département très proche de la classe 3, cependant sur le plot étant donné qu’il n’est qu’en 2 dimensions, on ne peut pas apercevoir ce rapprochement, réaliser un plot en 3 dimensions nous aiderait sûrement plus.

  • Pour la classe 3 d’autres individus posent “problèmes” comme le département de la Loir-et-Cher, de la Haute-Marne, de l’Orne, ainsi que celui des Vosges. Ces départements semblent très liés a la classe 2. Enfin la classe 4, elle possède contrairement aux autres une valeur de silhouette très négative, la plupart des individus de cette classe sont voisins avec la classe 3.

  • Pour conclure cette classification, nous avons pu voir plusieurs profils intéressants grâce à l’aide du matplot et des différents boxplots, de plus par le biais de la silhouette et du plot nous avons vu voir le voisinage des différentes classes entre elles.