1. Importer les données

decath <- read.table("https://r-stat-sc-donnees.github.io/decathlon.csv", sep=";", dec=".", header=TRUE, row.names=1, check.names=FALSE)

2 et 3. Construire la Classification Ascendante Hiérarchique

library(cluster)
classif <- agnes(scale(decath[,1:10]),method="ward")
plot(classif,xlab="Individu",which.plot=2,main="Dendrogramme")

4. Couper l’arbre de classification

classif2 <- as.hclust(classif)
plot(rev(classif2$height),type = "h", ylab = "hauteurs")

classe <- cutree(classif, k = 4)

5. Caractériser les classes

decath.comp <- cbind.data.frame(decath,classe=as.factor(classe))
library(FactoMineR)
catdes(decath.comp, num.var = 14)

Link between the cluster variable and the quantitative variables
================================================================
                Eta2      P-value
Points     0.7181466 2.834869e-10
100m       0.5794940 4.206021e-07
Poids      0.4746713 2.358915e-05
Longueur   0.4405023 7.319114e-05
110m.H     0.4254154 1.178937e-04
400m       0.4124012 1.759714e-04
1500m      0.4078248 2.021278e-04
Disque     0.3593367 8.199096e-04
Hauteur    0.2864826 5.454320e-03
Javelot    0.1999118 3.912122e-02
Classement 0.1916166 4.655439e-02

Description of each cluster by quantitative variables
=====================================================
$`1`
              v.test Mean in category Overall mean sd in category   Overall sd
Points      4.242103       8812.66667  8005.365854    68.78145745 338.18394159
Longueur    3.468581          7.87000     7.260000     0.06480741   0.31251927
Disque      3.107539         50.16000    44.325610     1.19668988   3.33639725
Poids       2.974272         15.84000    14.477073     0.46568945   0.81431175
Javelot     2.586808         65.25667    58.316585     6.87867397   4.76759315
Hauteur     2.289003          2.09000     1.976829     0.02449490   0.08785906
110m.H     -2.119695         14.05000    14.605854     0.06531973   0.46599998
Classement -2.299627          2.00000    12.121951     0.81649658   7.82178048
400m       -2.333955         48.12000    49.616341     0.98634004   1.13929751
100m       -2.745523         10.59667    10.998049     0.18080069   0.25979560
                p.value
Points     2.214348e-05
Longueur   5.232144e-04
Disque     1.886523e-03
Poids      2.936847e-03
Javelot    9.686955e-03
Hauteur    2.207917e-02
110m.H     3.403177e-02
Classement 2.146935e-02
400m       1.959810e-02
100m       6.041458e-03

$`2`
          v.test Mean in category Overall mean sd in category Overall sd
100m   -2.265855         10.89789     10.99805      0.1701572  0.2597956
110m.H -2.397231         14.41579     14.60585      0.3097931  0.4660000
400m   -2.579590         49.11632     49.61634      0.5562394  1.1392975
1500m  -2.975997        273.18684    279.02488      5.6838942 11.5300118
           p.value
100m   0.023460250
110m.H 0.016519515
400m   0.009891780
1500m  0.002920378

$`3`
            v.test Mean in category Overall mean sd in category Overall sd
1500m     3.899044       290.763636    279.02488     12.6274652 11.5300118
400m      2.753420        50.435455     49.61634      1.2725877  1.1392975
Longueur -2.038672         7.093636      7.26000      0.2836218  0.3125193
              p.value
1500m    9.657328e-05
400m     5.897622e-03
Longueur 4.148279e-02

$`4`
           v.test Mean in category Overall mean sd in category   Overall sd
100m     4.053791         11.33625    10.998049     0.14194519   0.25979560
110m.H   3.368905         15.11000    14.605854     0.32939338   0.46599998
Hauteur -2.412939          1.90875     1.976829     0.05464373   0.08785906
Poids   -3.134116         13.65750    14.477073     0.60373318   0.81431175
Points  -3.643979       7609.62500  8005.365854   143.94611622 338.18394159
             p.value
100m    5.039416e-05
110m.H  7.546748e-04
Hauteur 1.582447e-02
Poids   1.723728e-03
Points  2.684548e-04
classif <- hclust(dist(scale(decath[,1:10])), method = "ward.D2")

Pour aller plus loin

res.pca<-PCA(decath,quanti.sup=11:12,ncp=8,quali.sup=13,graph=F)
res.hcpc<-HCPC(res.pca,consol=FALSE,nb.clust=4)

res.hcpc$desc.var
res.hcpc$desc.axes
res.hcpc$desc.ind
LS0tDQp0aXRsZTogIkNsYXNzaWZpY2F0aW9uIEFzY2VuZGFudGUgSGnDqXJhcmNoaXF1ZSINCmF1dGhvcjogIkh1c3NvbiBldCBhbC4iDQpkYXRlOiAiMDkvMDkvMjAxOCINCm91dHB1dDoNCiAgaHRtbF9ub3RlYm9vazoNCiAgICB0b2M6IHllcw0KICAgIHRvY19kZXB0aDogMw0KICAgIHRvY19mbG9hdDogeWVzDQogIGh0bWxfZG9jdW1lbnQ6DQogICAgdG9jOiB5ZXMNCiAgICB0b2NfZGVwdGg6ICczJw0KICAgIHRvY19mbG9hdDogeWVzDQotLS0NCg0KYGBge3Igc2V0dXAsIGluY2x1ZGU9RkFMU0V9DQprbml0cjo6b3B0c19jaHVuayRzZXQoZWNobyA9IFRSVUUsIGNhY2hlID0gVFJVRSkNCmBgYA0KDQojIDEuIEltcG9ydGVyIGxlcyBkb25uw6llcw0KDQpgYGB7cn0NCmRlY2F0aCA8LSByZWFkLnRhYmxlKCJodHRwczovL3Itc3RhdC1zYy1kb25uZWVzLmdpdGh1Yi5pby9kZWNhdGhsb24uY3N2Iiwgc2VwPSI7IiwgZGVjPSIuIiwgaGVhZGVyPVRSVUUsIHJvdy5uYW1lcz0xLCBjaGVjay5uYW1lcz1GQUxTRSkNCmBgYA0KDQojIDIgZXQgMy4gQ29uc3RydWlyZSBsYSBDbGFzc2lmaWNhdGlvbiBBc2NlbmRhbnRlIEhpw6lyYXJjaGlxdWUNCmBgYHtyLG1lc3NhZ2U9RkFMU0Usd2FybmluZz1GQUxTRX0NCmxpYnJhcnkoY2x1c3RlcikNCmNsYXNzaWYgPC0gYWduZXMoc2NhbGUoZGVjYXRoWywxOjEwXSksbWV0aG9kPSJ3YXJkIikNCnBsb3QoY2xhc3NpZix4bGFiPSJJbmRpdmlkdSIsd2hpY2gucGxvdD0yLG1haW49IkRlbmRyb2dyYW1tZSIpDQpgYGANCg0KIyA0LiBDb3VwZXIgbOKAmWFyYnJlIGRlIGNsYXNzaWZpY2F0aW9uDQoNCmBgYHtyLG1lc3NhZ2U9RkFMU0Usd2FybmluZz1GQUxTRX0NCmNsYXNzaWYyIDwtIGFzLmhjbHVzdChjbGFzc2lmKQ0KcGxvdChyZXYoY2xhc3NpZjIkaGVpZ2h0KSx0eXBlID0gImgiLCB5bGFiID0gImhhdXRldXJzIikNCmBgYA0KYGBge3J9DQpjbGFzc2UgPC0gY3V0cmVlKGNsYXNzaWYsIGsgPSA0KQ0KYGBgDQoNCiMgNS4gQ2FyYWN0w6lyaXNlciBsZXMgY2xhc3Nlcw0KDQpgYGB7cixtZXNzYWdlPUZBTFNFLHdhcm5pbmc9RkFMU0V9DQpkZWNhdGguY29tcCA8LSBjYmluZC5kYXRhLmZyYW1lKGRlY2F0aCxjbGFzc2U9YXMuZmFjdG9yKGNsYXNzZSkpDQpgYGANCg0KYGBge3IsbWVzc2FnZT1GQUxTRSx3YXJuaW5nPUZBTFNFfQ0KbGlicmFyeShGYWN0b01pbmVSKQ0KY2F0ZGVzKGRlY2F0aC5jb21wLCBudW0udmFyID0gMTQpDQpgYGANCg0KYGBge3J9DQpjbGFzc2lmIDwtIGhjbHVzdChkaXN0KHNjYWxlKGRlY2F0aFssMToxMF0pKSwgbWV0aG9kID0gIndhcmQuRDIiKQ0KYGBgDQoNCiMgUG91ciBhbGxlciBwbHVzIGxvaW4NCg0KYGBge3J9DQpyZXMucGNhPC1QQ0EoZGVjYXRoLHF1YW50aS5zdXA9MTE6MTIsbmNwPTgscXVhbGkuc3VwPTEzLGdyYXBoPUYpDQpyZXMuaGNwYzwtSENQQyhyZXMucGNhLGNvbnNvbD1GQUxTRSxuYi5jbHVzdD00KQ0KYGBgDQoNCmBgYHtyfQ0KcmVzLmhjcGMkZGVzYy52YXINCnJlcy5oY3BjJGRlc2MuYXhlcw0KcmVzLmhjcGMkZGVzYy5pbmQNCmBgYA==