library(sf)library(ineq)library(gtclust)library(adespatial)library(ggplot2)library(dplyr)library(mapsf)library(cartogramR)library(smoothr)library(units)library(ggrepel)library(ggh4x)# métadonnéeslistes<-readRDS("data/net/don_listes.RDS")# Votes par circodon<-readRDS("data/net/don_circ.RDS")mat<-as.matrix(don[,12:49])listes$pct <-100*apply(mat,2,sum)/sum(mat)listes$gini<-apply(mat,2,Gini)tab<-cbind(log(listes$pct), listes$gini)w<-kmeans(tab,centers =2,iter.max =1000)listes$type<-as.factor(w$cluster)levels(listes$type)#> [1] "1" "2"map<-readRDS("data/net/map_circ.RDS")mapdon<-left_join(map,don)# ! les probas nulles ne sont pas acceptés pour le moment lissage bayesien matdon<-as.matrix(st_drop_geometry(mapdon[,12:49])+1)matdon<-matdon/apply(matdon,1,sum)rownames(matdon)<-mapdon$circcolnames(matdon)<-listes$tete_nom# Données % de votes + geometrieXgeo=bind_cols(data.frame(matdon),data.frame(geometry=st_geometry(mapdon))) |>st_as_sf()# Cartogrammemapdon_forcarto = mapdon |>mutate(geometry=densify(geometry,150))mapdon_cartogr =cartogramR(mapdon_forcarto,count="vot",options = )$cartogram |>st_as_sf() |>st_make_valid()
Régionalisaion avec distribution de Dirichlet pour analyser des pourcentages et affichage du dendrogramme.
# regionalisation avec une distribution adaptée au données compositionel (dirichlet)# paramètre du prior (valeur par défaut)lambda_est=rep(0.01,38)regions_tree=gtclust_poly(Xgeo,method=gtclust::gtmethod_bayes_dirichlet(lambda=lambda_est))# plot du dendogramme selection automatique d'un nombre de cluster "pertinent"plot(regions_tree)
Sélection automatique du nombre de région et affichage des régions :
Ksel = regions_tree$Kunif# plot de la partitionregions =geocutree(regions_tree,Ksel)plot(st_geometry(regions))
map<-readRDS("data/net/map_dept.RDS")don<-readRDS("data/net/don_dept.RDS")mapdon<-left_join(map,don)# ! les valeures nulles ne sont pas tolérées matdon<-as.matrix(st_drop_geometry(mapdon[,12:49])+1)rownames(matdon)<-mapdon$deptcolnames(matdon)<-listes$tete_nommatdon<-matdon/apply(matdon,1,sum)# Données % de votes + geometrieXgeo=bind_cols(data.frame(matdon),data.frame(geometry=st_geometry(mapdon))) |>st_as_sf()
Code
# regionalisation avec une distribution adaptée au données compositionel (dirichlet)regions_tree=gtclust_poly(Xgeo,method=gtclust::gtmethod_bayes_dirichlet())# plot du dendogramme selection automatique d'un nombre de cluster "pertinent"plot(regions_tree)