Created
June 18, 2015 14:00
-
-
Save juba/029aef50bd143a44bb6e to your computer and use it in GitHub Desktop.
Récupérer les points les plus extrêmes des groupes issus d'une classification
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
library(questionr) | |
library(FactoMineR) | |
library(dplyr) | |
library(imva) | |
library(ggplot2) | |
## Jeu de données d'exemple | |
data(hdv2003) | |
d <- hdv2003 %>% select(sexe, qualif, cuisine, sport, bricol, freres.soeurs, relig) | |
## ACM | |
acm <- MCA(d, ncp = 3) | |
## CAH | |
classif <- HCPC(acm, nb.clust = 5) | |
## On rapatrie les groupes dans les données | |
d$groupes <- classif$data.clust$clust | |
## Nombre de dimensions pour le calcul des extrêmes : a priori | |
## le même que le nombre d'axes utilisés pour la classification | |
nb.dim <- 3 | |
## Nombre d'individus extrêmes retenus pour chaque groupe | |
nb.ind <- 1 | |
tmp <- acm$ind$coord[,1:nb.dim] | |
d$dist <- sqrt(apply(tmp^2, 1, sum)) | |
dd <- d %>% bind_cols(data.frame(tmp)) | |
sel <- dd %>% group_by(groupes) %>% arrange(desc(dist)) %>% slice(1:nb.ind) | |
## Le tableau sel contient la liste des individus les plus extrêmes pour chaque groupe | |
## Pour représenter les individus retenus sur les deux premiers axes de l'ACM | |
## (pour vérification visuelle que c'est pas tout à fait n'importe quoi) | |
ggind(acm, 1, 2, d$groupes) + | |
geom_point(data=sel, aes(x=Dim.1, y=Dim.2), col="red", size=5) | |
ggind(acm, 1, 3, d$groupes) + | |
geom_point(data=sel, aes(x=Dim.1, y=Dim.2), col="red", size=5) | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment