Ne pas tenir compte de certains individus pour calculer une CAH puis les reinjecter

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

Luca Niang
Messages : 11
Enregistré le : 01 Avr 2012, 10:41

Ne pas tenir compte de certains individus pour calculer une CAH puis les reinjecter

Messagepar Luca Niang » 18 Juil 2018, 09:04

Bonjour à tous,

J'ai une base de données avec 14 indices en base 100.
Le problème, c'est que j'ai des indices énormissimes comme 30 000, dûes à une augmentation s'expliquant par un nombre très faible au départ (de 0,02 à 6,65 par exemple)
J'aimerais en fait pouvoir lancer la CAH uniquement sur les individus n'ayant aucun indice supérieur à 500, et donc obtenir mes classes.

Et ce n'est qu'ensuite que j'aimerais affecter mes individus avec des indices > à 500 aux classes où leur distance est la moins importante

Je pense que celà doit être possible, mais j'ai aucune idée de comment faire
Merci d'avance ! :)

Mon code pour le moment

Code : Tout sélectionner

library(readr)

donneespourrcahprixmoyensurfaces <- read_delim("P:/3-Permanents/Observatoires/Obs Foncier/Programme partenarial 2018/Marchés fonciers agricoles et ruraux/donneespourrcahprixmoyensurfaces.csv", ";", escape_double = FALSE, col_names = FALSE, trim_ws = TRUE)
BasepourTypo <- donneespourrcahprixmoyensurfaces
summary(BasepourTypo)
aixcah<-BasepourTypo

aixcah<-Aix_Cah
summary(aixcah)
#centrage réduction des données
#pour éviter que variables à forte variance pèsent indûment sur les résultats
aixcah.cr<-scale(aixcah,center=T,scale=T)

#matrice de distance ntre les individus
d.aixcah<-dist(aixcah.cr)
cah.ward<-hclust(d.aixcah,method="ward.D2")
plot(cah.ward)
plot (sort(cah.ward$height, decreasing=TRUE) [1:14], type="s", xlab="nb de classes", ylab="inertie")

"choix de 4 classes"
nbcl <- 4
"nom du fichier seq.part"
cah.part4 <- cutree (cah.ward, nbcl)
aixcah$cat_demo<-cah.part4
aixcategories<-aixcah

write.table (aixcategories,file="P:/3-Permanents/Observatoires/Obs Foncier/Programme partenarial 2018/Marchés fonciers agricoles et ruraux/sortiecahprixmoyensurfaces.csv",sep=";")

summary(cah.part4)

tapply(aixcategories$X1, aixcategories$cat_demo, mean)
tapply(aixcategories$X2, aixcategories$cat_demo, mean)
tapply(aixcategories$X3, aixcategories$cat_demo, mean)
tapply(aixcategories$X4, aixcategories$cat_demo, mean)
tapply(aixcategories$X5, aixcategories$cat_demo, mean)
tapply(aixcategories$X6, aixcategories$cat_demo, mean)
tapply(aixcategories$X7, aixcategories$cat_demo, mean)
tapply(aixcategories$X8, aixcategories$cat_demo, mean)
tapply(aixcategories$X9, aixcategories$cat_demo, mean)
tapply(aixcategories$X10, aixcategories$cat_demo, mean)
tapply(aixcategories$X11, aixcategories$cat_demo, mean)
tapply(aixcategories$X12, aixcategories$cat_demo, mean)
tapply(aixcategories$X13, aixcategories$cat_demo, mean)
tapply(aixcategories$X14, aixcategories$cat_demo, mean)

Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité

cron