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==