Classification et régionalisation

Application aux résultats des élections européennes de 2024 en France métropolitaine

Creative Commons BY License ISSN 2743-8791 - Rzine.fr - Revue de méthodes pour les SHS

Auteur·rice
Affiliation
Claude Grasland
Date de publication

8 octobre 2025

Doi
Keywords

classification, régionalisation, CAH, connexité


Résumé

La combinaison des méthodes de classification et de régionalisation est facilitée par le développement d’une nouvelle fonction du package adespatial qui permet de regrouper les unités spatiales les plus ressemblantes en respectant la contrainte de connexité. Mise au point par des écologues canadiens, cette méthode de classification ascendante hiérarchique avec contrainte de voisinage est beaucoup plus simple d’emploi et efficace que les autres méthodes de régionalisation disponibles actuellement dans des packages tels que rgeoda. Elle s’appuie sur un corpus théorique d’analyse spatiale de la biodiversité des espaces animale ou végétale que l’on peut tenter de transposer à de nombreux problèmes géographiques, mais en adoptant une posture critique dans le cas de thématiques éloignées des questions de biologie végétale. Nous prenons ici comme exemple l’analyse du résultat des élections européennes de 2024 en France métropolitaine à trois niveaux d’agrégation : régions administratives, départements et circonscriptions législatives. Nous comparons à chaque échelle les résultats des méthodes de régionalisation et classification, et nous discutons leurs apports respectifs pour la compréhension des phénomènes de géographie électorale.

Introduction

Les géographes français qui sont confrontés à l’analyse d’un ensemble de variables décrivant un ensemble de lieux vont le plus souvent procéder à une analyse en deux étapes combinant analyse factorielle et classification ascendante hiérarchique (CAH). Si les variables sont hétérogènes (différentes unités de mesure), ils utiliseront une analyse en composantes principales sur le tableau des variables standardisées suivi d’une CAH en métrique euclidienne. Si les variables forment un tableau de contingence, ils pourront appliquer les méthodes précédentes sur un tableau de profils en ligne (standardisés ou non) ou opter pour le couplage entre analyse factorielle des correspondances et classification ascendante hiérarchique en métrique du \(\chi^2\). Ces approches qui s’inscrivent dans la tradition de l’analyse des données « à la française » ont été formalisées initialement par les travaux de Benzecri (1973), puis popularisées en géographie par l’ouvrage de Sanders (1989) et finalement mises à la disposition d’un large public grâce à l’excellent package FactoMineR (Lê et al., 2008) et les publications de ses auteurs, notamment Husson et al. (2016). Les avantages du couplage entre les deux approches sont évidents puisque les méthodes factorielles permettent d’analyser d’abord les corrélations entre les colonnes du tableau avant de procéder au regroupement des lignes à l’aide de la CAH (Husson et al., 2010).

Sans remettre en cause l’intérêt de ces approches, nous souhaiterions proposer ici une autre forme de couplage de méthodes statistiques associant classification et régionalisation, issue des travaux des écologues qui s’intéressent aux associations spatiales de plantes ou d’animaux et cherchent à en mesurer l’abondance, la spécialisation et la diffusion (Legendre et De Cáceres, 2013; Legendre et Fortin, 1989). Si le point de départ est le même (tableau croisant des lieux décrits par un ensemble de variables), les analyses vont ici surtout porter sur des tableaux homogènes décrivant soit l’abondance de différentes espèces (tableau de contingence), soit leur présence/absence (tableau disjonctif complet). Et surtout elles vont ajouter un élément supplémentaire sous la forme d’une matrice de voisinage décrivant généralement - mais pas toujours - les relations entre lieux sous la forme d’un graphe de contiguïté de type planaire.

Figure 1: Différentes formes de graphe de voisinage (source : Spatial Data Science with R and “terra”)

De nombreuses méthodes d’analyse spatiale et d’économétrie tentent de mesurer l’influence exercée ou subie par unité spatiale vis-à-vis des unités proches (Anselin et al., 2009; Anselin, 2022). Dans le cas des unités de type aréal, la solution la plus simple est la présence d’une frontière commune (adjacency) qui aboutit à un graphe de type planaire. Mais bien d’autres solutions sont possibles comme l’illustre l’exemple du Luxembourg décrit dans le document en ligne Spatial Data Science with R and terra (Hijmans, 2023).

La procédure de régionalisation mise au point récemment avec la fonction constr.hclust()du package adespatial suit le schéma suivant (Figure 2) :

Figure 2: Algorithme de régionalisation (Guénard & Legendre, 2022)

Il s’agit donc d’une méthode de classification ascendante hiérarchique comparable à celles réalisables en langage R-Base avec la fonction hclust() ou dans le package FactoMineR avec la fonction HCPC(), mais avec deux différences importantes. D’une part, l’ajout de la contrainte de voisinage limite les possibilités de fusion des unités spatiales, ce qui réduit beaucoup le temps de calcul. D’autre part, il est possible d’utiliser un grand nombre de fonctions de dissimilarité en entrée, sans se limiter à celles qui sont privilégiées par les méthodes d’analyse factorielle à la française. Les écologues considèrent en effet que la distance euclidienne (normée ou non) et la distance du \(\chi^2\) ne sont pas toujours les plus pertinentes pour mesurer les ressemblances entre lieux, surtout si l’on considère le caractère généralement non gaussien des distributions statistiques des variables associées.

Un exemple pédagogique en géographie quantitative…

L’objectif du présent article est de discuter l’intérêt de cette procédure pour l’analyse géographique de tableaux de contingence dont les lignes sont des lieux et les colonnes des attributs dont la somme en ligne a un sens. Nous avons retenu comme exemple d’application l’exploration de la distribution spatiale des votes aux élections européennes de 2024 en France métropolitaine (hors Corse). Nous examinons les résultats des 38 listes de candidats à trois niveaux d’agrégation : les 12 régions, les 94 départements et les 535 circonscriptions législatives (cf. partie suivante).

Pour éviter une répétition, chaque niveau d’analyse sera dédié à un aspect différent du problème général de comparaison des approches de régionalisation et de classification et d’analyse de leurs apports à la géographie électorale.

  • L’échelle régionale sera utilisée pour rappeler les principes de base des méthodes de classification et de régionalisation en insistant sur le rôle déterminant du choix de la matrice de dissimilarité utilisée en entrée. On se limitera ici à la comparaison des résultats des listes conduites par Jordan Bardella et Marion Maréchal.

  • L’échelle départementale constituera le niveau privilégié de comparaison des résultats des méthodes de classification et de régionalisation afin de voir leurs apports respectifs à la compréhension du phénomène. L’analyse porte sur l’ensemble des listes et vise à mettre à jour de grandes régions homogènes sur le plan électoral comme la France de l’Ouest chère à Siegfried (1913) et Goguel (1953,2012).

  • L’échelle des circonscriptions permettra d’examiner l’intérêt d’une approche multiscalaire et de souligner les difficultés de la régionalisation lorsque le niveau d’agrégation dissocie les entités urbaines, périurbaines et rurales. Peut-on produire une régionalisation pertinente face à une distribution spatiale des résultats électoraux en forme de « peau de léopard » ?

L’exemple des données électorales avait été initialement choisi pour des raisons pédagogiques (agrégation à différentes échelles, nombre élevé de listes, intérêt des lecteurs pour un sujet d’actualité…). Il est en effet très classique pour les enseignants de géographie dite « quantitative » d’illustrer les cours d’analyse des données par des tableaux de résultats électoraux par département, région ou arrondissement de Paris, en utilisant successivement une analyse factorielle et une classification ascendante hiérarchique. Dans une publication pédagogique de la revue Feuilles de géographie intitulée « 1995 : les élections présidentielles et la fracture sociale où les jubilations des géographes quantitativistes » (Baron et Karine, 1995), les autrices présentent les apports respectifs de l’analyse factorielle et de la classification et justifient ainsi le choix de l’exemple retenu :

« Car depuis A. Siegfried, les Brouillons Dupont et Theo Quant, quand un géographe quantitativiste rencontre Le Monde daté du surlendemain du scrutin, c’est tout de suite le coup de foudre : et que je t’achète, et que je te feuillette frénétiquement, et que je m’extasie devant tel score et que je pleure devant tel autre, et que je saisis le tableau de données et que je sors les analyses… et - oh suprême récompense - que je cartographie les plus beaux résultats. A chaque nouveau scrutin c’est un éternel recommencement ! Alors, vous pensez : quand, par bonheur, les élections présidentielles surviennent avant la session d’examen de juin, c’est l’EU - PHO - RIE ! Imaginez 96 départements et 9 candidats : toutes ces combinaisons ! Vertigineux, non ? »

Figure 3: 1995, les élections présidentielles et la fracture sociale ou les jubilations des géographes quantitativistes (Baron & Emsellem, 1995)

… mais faisant débat en géographie électorale et géographie sociale

Avec le renouveau de la géographie politique en France (Bussi, 1998; Rivière, 2009) et le développement de liens plus étroits entre géographes et politistes (Bussi et al., 2012; Gombin et Rivière, 2014), il n’est toutefois plus possible d’analyser la distribution spatiale des données électorales sans introduire une dimension plus théorique sur la signification des résultats observés. Et, en tous les cas, il peut sembler choquant de transposer une méthode issue de la biologie aux phénomènes humains sans s’être au préalable assuré de la pertinence du transfert. Ce que souligne à juste titre l’un des rapporteurs de la première version de cet article :

« L’introduction évoque des techniques “issues des travaux des écologues qui s’intéressent aux associations spatiales de plantes ou d’animaux et cherchent à en mesurer l’abondance, la spécialisation et la diffusion”, et le résumé de l’article précise qu’une des techniques de classification/régionalisation présentées dans l’article “s’appuie sur un corpus théorique d’analyse spatiale de la biodiversité des espaces animales ou végétales que l’on peut transposer à de nombreux problèmes géographiques”, mais on aimerait en savoir un peu plus sur ce corpus théorique, et sur les “problèmes géographiques” que l’on peut traiter ainsi. En effet et au plan épistémologique, la question de la diffusion telle que traitée en biogéographie et celle des effets de contexte sur la formation des opinions en géographie électorale (pour reprendre le champ thématique de l’article) peuvent difficilement être abordées de la même manière, au risque d’une tendance à la naturalisation des dynamiques sociales. Est-ce à dire, comme le considère le démographe Le Bras (2002), que les opinions se transmettent de proche en proche à la manière de lois de l’épidémiologie ? Si c’est l’idée que souhaite défendre l’auteur (ce qui est tout à fait possible, il existe une littérature de sociologie anglophone sur les “conversions par la conversation”) et dans l’esprit des précautions de Bourdieu & Passeron “la fausse neutralité des techniques” (Bourdieu et al., 2005), alors il faut aller plus loin dans l’explicitation des implications théoriques des deux techniques discutées. » (Jean Rivière, Mai 2025)

Le choix d’une méthode de classification ou de régionalisation pour étudier la répartition des comportements électoraux n’est donc pas neutre car il conditionne l’interprétation même des résultats en termes de processus de formation des opinions. La classification ne fait en effet pas d’hypothèse a priori sur les déterminants contextuels du vote, alors que la régionalisation postule implicitement l’existence d’une autocorrélation spatiale (similarité des unités de proche en proche, liée par exemple à la diffusion d’une innovation) ou d’une auto-corrélation territoriale (similarité des unités liées à leur appartenance à une même maille territoriale et produisant des discontinuités le long des frontières).

On retrouve en fait ici les termes de la controverse qui opposa G. Tarde et E. Durkheim et que ce dernier discute dans le chapitre 4 du Suicide (Durkheim, 1897). C’est à l’aide de la fameuse carte du taux de suicide par arrondissement que Durkheim réfute l’hypothèse diffusionniste dans un texte à bien des égards fondateur pour l’analyse spatiale des phénomènes sociaux (Grasland, 2010).

« En définitive, ce que nous montrent toutes les cartes, c’est que le suicide, loin de se disposer plus ou moins concentriquement autour de certains foyers à partir desquels il irait en se dégradant progressivement, se présente, au contraire, par grandes masses à peu près homogènes (mais à peu près seulement) et dépourvues de tout noyau central. Une telle configuration n’a donc rien qui décèle l’influence de l’imitation. »

« Il n’y a ici ni imitateurs ni imités, mais identité relative dans les effets due à une identité relative dans les causes. Et on s’explique, aisément qu’il en soit ainsi si, comme tout ce qui précède le fait déjà prévu, le suicide dépend essentiellement de certains états du milieu social. Car ce dernier garde généralement la même constitution sur d’assez larges étendues de territoire. Il est donc naturel que, partout où il est le même, il ait les mêmes conséquences sans que la contagion y soit pour rien. C’est pourquoi il arrive le plus souvent que, dans une même région, le taux des suicides se soutienne à peu près au même niveau. »

« Ce qui prouve que cette explication est fondée, c’est qu’on le voit se modifier brusquement du tout au tout chaque fois que le milieu social change brusquement. Jamais celui-ci n’étend son action au-delà de ses limites naturelles. Jamais un pays que des conditions particulières prédisposent spécialement au suicide n’impose, par le seul prestige de l’exemple, son penchant aux pays voisins, si ces mêmes conditions ou d’autres semblables ne s’y trouvent pas au même degré. »

Figure 4: Suicides en France par arondissement 1887-1991 (Durkheim E., 1897, Le Suicide, Chap. IV)

Émile Durkheim ne disposait évidemment pas de l’apport des modèles multi-niveaux ou des techniques de régression géographiquement pondérée qui permettent de séparer les déterminants individuels et contextuels du suicide. Mais il montre très tôt une sensibilité aux échelles d’agrégation (justification des arrondissements plutôt que des départements qui masqueraient les effets urbains). Il postule très clairement l’existence de « régions » caractérisées par un même « milieu social » jouant le rôle de déterminants dont l’action est bornée par des « limites naturelles » et peut être vu comme un précurseur de Siegfried (1913). Tarde, au contraire, annonce les travaux de Hägerstrand (1968) sur la diffusion spatiale des innovations et serait un lointain ancêtre des théories du gradient d’urbanité de Lévy (2013).

Même si ce n’était pas l’objectif initial de cet article, nous aurons donc le souci tout au long de l’analyse des résultats électoraux aux différentes échelles de comparer les résultats des méthodes de classification et de régionalisation en gardant en tête le fait qu’elles reposent sur des hypothèses interprétatives fondamentalement différentes.

Packages et données

Les packages utilisés

Les packages nécessaires pour réaliser la chaîne de traitement présentée sont les suivants :

  • dplyr pour la manipulation de données
  • ggplot2 pour la construction de graphique
  • ggrepel pour la gestion des labels dans les graphiques ggplot2
  • sf pour la manipulation de données géographiques vectorielles
  • mapsf pour la construction de cartes thématiques
  • ineq pour le calcul de l’indice de Gini
  • spdep pour le calcul de matrices spatiales
  • adespatial pour réaliser des classifications à contrainte spatiale
  • cartogramR pour la construction de cartogrammes (anamorphoses)
# Packages utilitaires
library(dplyr)

# Graphiques
library(ggplot2)
library(ggrepel)

# Manipulation des données géographiques
library(sf)

# Cartographie
library(mapsf)
library(cartogramR)

# Statistique 
library(ineq)
library(spdep)
library(adespatial)

Les données utilisées

Pour faciliter la démonstration, les données brutes utilisées (résultats des élections européennes de 2024, fonds de carte et tables de correspondance) ont été simplifiées (cf. Annexes). La mise en pratique présentée est réalisée à partir des données suivantes :

A. Résultats des élections européennes de 2024

don_reg <- readRDS("data/net/don_regi.RDS") 
Note

La variable vot5 contient le nombre de votes pour la liste Bardella et vot3 le nombre de votes pour la liste Maréchal. La variable exp exprime le nombre de votes exprimés (nuls et blancs exclus).

don_dep <- readRDS("data/net/don_dept.RDS") 
Note

La variable vot5 contient le nombre de votes pour la liste Bardella et vot3 le nombre de votes pour la liste Maréchal. La variable exp exprime le nombre de votes exprimés (nuls et blancs exclus).

don_cir <- readRDS("data/net/don_circ.RDS") 
Note

La variable vot5 contient le nombre de votes pour la liste Bardella et vot3 le nombre de votes pour la liste Maréchal. La variable exp exprime le nombre de votes exprimés (nuls et blancs exclus).

listes <- readRDS("data/net/don_listes.RDS")
Note

Les électeurs français ont eu le choix entre 38 listes lors de ces élections européennes.

B. Fonds de carte des régions, départements et circonscriptions

map_regi <- readRDS("data/net/map_regi.RDS")
map_dept <- readRDS("data/net/map_dept.RDS")
map_circ <- readRDS("data/net/map_circ.RDS")

C. Téléchargement

Les données utilisées dans cet article, annexes incluses, sont mises à disposition dans une archive téléchargeable à ce lien.

1 Échelle régionale : principes de base

Afin de bien comprendre la différence entre classification et régionalisation et l’importance de la pondération, nous allons commencer par un exemple très simple portant sur la distribution des votes pour les deux principales listes d’extrême droite dans les 12 régions de France métropolitaine.

don_reg <- readRDS("data/net/don_regi.RDS") 

On calcule le pourcentage de suffrages exprimés pour les listes conduites par Jordan Bardella (liste n° 5, RN) et Marion Maréchal (liste n° 3, Reconquête) à l’échelle des 12 régions de France métropolitaine (hors Corse).

code_reg <- c("IDF", "CVDL", "BOFC", "NORM", "HDFR", "GEST",
              "PDLO", "BRET", "NAQU", "OCCI","AURA", "PACA")

don <- don_reg  |>
        mutate(Bardella = 100 * vot5 / exp, 
               Marechal = 100 * vot3 / exp,
               regi_code = code_reg)  |>
        select(regi, regi_code, regi_nom, Bardella, Marechal) |>
        arrange(regi)

On obtient la part des suffrages exprimés pour les listes Bardella et Maréchal aux élections européennes de 2024, par région :

regi regi_code regi_nom Bardella Marechal
11 IDF Île-de-France 18.8 5.7
24 CVDL Centre-Val de Loire 34.9 5.4
27 BOFC Bourgogne-Franche-Comté 37.1 5.3
28 NORM Normandie 35.3 4.6
32 HDFR Hauts-de-France 42.4 4.6
44 GEST Grand Est 38.3 5.5
52 PDLO Pays de la Loire 27.6 4.7
53 BRET Bretagne 25.6 4.2
75 NAQU Nouvelle-Aquitaine 30.9 5.0
76 OCCI Occitanie 33.7 5.5
84 AURA Auvergne-Rhône-Alpes 30.9 5.6
93 PACA Provence-Alpes-Côte d’Azur 38.6 7.7

1.1 Exploration des variables

1.1.1 Paramètres principaux

L’examen des paramètres statistiques des deux listes est effectué à l’intérieur des 12 régions étudiées en excluant la Corse et les DROM. Les valeurs sont donc légèrement différentes des résultats obtenus pour la France entière.

# Colonnes ciblées
selcol <- c("Bardella", "Marechal")

# Valeurs minimum
min <- apply(don[, selcol], 2, min)

# Valeurs maximum
max <- apply(don[, selcol], 2, max)

# Moyennes
moy <- apply(don[, selcol], 2, mean)

# Écarts-types
ect <- apply(don[, selcol], 2, sd)

# Variance
var <- ect^2

# Coefficient de variation (%)
cv <- 100 * ect / moy

# Tableau des paramètres calculés
tab <- cbind(min, max, moy, ect, var, cv)
row.names(tab) <- selcol

# Affichage du tableau
print(round(tab,1))
          min  max  moy ect  var   cv
Bardella 18.8 42.4 32.9 6.5 42.7 19.9
Marechal  4.2  7.7  5.3 0.9  0.8 16.7

La liste Bardella obtient une moyenne (non pondérée) de 32.9% dans les 12 régions avec des scores allant de 18.8% en Île-de-France à 42.7% dans les Hauts-de-France. La liste Maréchal affiche quant à elle des scores de 4.2% en Bretagne à 7.7% en PACA avec une moyenne de 5.3%.

La variation absolue des résultats, mesurée par l’écart-type est logiquement beaucoup plus forte pour Bardella (\(\sigma=6.5\)) que pour Maréchal (\(\sigma=0.9\)). Mais les variations relatives mesurées par le coefficient de variation (rapport entre l’écart-type et la moyenne) sont assez voisines avec 19.9% pour Bardella et 16.7% pour Maréchal.

1.1.2 Distribution spatiale

On cartographie la distribution des deux variables en quatre classes à l’aide de la méthode des quantiles (trois régions par classe) et on examine la forme des histogrammes correspondant.

# Chargement du fond de carte
map <- readRDS("data/net/map_regi.RDS")

# Jointure fond de carte et tableau de données
mapdon <- left_join(map, don)

# Carte Bardella
mf_map(mapdon,
       type = "choro",
       var = "Bardella",
       nbreaks = 4,
       method = "quantile",
       leg_title = "en %",
       leg_val_rnd = 1, 
       leg_title_cex = 1.5, 
       leg_val_cex = 1.2,
       leg_size = 1.5)

mf_layout("Vote Bardella", frame = TRUE, credits = "", arrow = FALSE)
# ---

# Carte Maréchal
mf_map(mapdon,
       type = "choro",
       var = "Marechal",
       nbreaks = 4,
       method = "quantile",
       leg_title = "en %",
       leg_val_rnd = 1,  
       leg_title_cex = 1.5, 
       leg_val_cex = 1.2,
       leg_size = 1.5)

mf_layout("Vote Maréchal", frame = TRUE, credits = "", arrow = FALSE)
# ---


# Distribution Bardella
mf_distr(don$Bardella, nbins = 4, bw = sd(don$Bardella))
# ---

# Distribution Maréchal
mf_distr(don$Marechal, nbins = 4, bw = sd(don$Marechal))

La distribution des votes Bardella est légèrement dissymétrique à droite avec une valeur exceptionnellement faible correspondant à l’Île-de-France. La distribution de Maréchal est au contraire dissymétrique à gauche avec une valeur exceptionnellement forte correspondant à la région PACA. La comparaison des deux distributions spatiales ne semble pas révéler à première vue de corrélation positive ou négative, ce qui est confirmé par les coefficients de Pearson (\(r=0.20, p =0.53\)) ou de Spearman (\(\rho =+0.03, p=0.94\)).

1.2 Matrices de dissimilarité

En amont d’une classification ou d’une régionalisation, la création d’une matrice de dissimilarité entre les unités spatiales est une étape essentielle qui conditionne la suite des analyses. Deux choix essentiels interviennent alors :

  • le choix d’une transformation ou non des indicateurs
  • le choix d’une métrique

1.2.1 Espace des variables brutes

La variance des scores de la variable \(X_1\) (Liste Bardella) est beaucoup plus forte que celle de la variable \(X_2\) (Liste Maréchal), ce qui signifie que, si l’on s’en tient aux variables brutes, les différences entre régions seront liées essentiellement aux variations de la liste \(X_1\). Les différentes unités spatiales se positionneront alors dans un espace de la forme suivante :

plot(x = don$Bardella,
     y = don$Marechal,
     asp = 1,
     xlab = "Score Bardella en % (X1)",
     ylab = "Score Maréchal en % (X2)",
     main = "Distances dans l'espace des variables brutes",
     pch = 20)

text(x = don$Bardella, 
     y = don$Marechal, 
     labels = don$regi_code,
     pos = 3, 
     cex = 0.8, 
     col = "red")

grid()

Sur la figure ci-dessus, on a pris soin de construire deux axes orthonormés où une différence d’un point de pourcentage correspond à la même distance horizontalement et verticalement. Il est donc logique que la figure soit beaucoup plus étendue dans le sens horizontal que dans le sens vertical puisque le vote « Bardella » crée plus de différences entre les régions en valeur absolue que le vote « Maréchal ».

On voit sur la figure précédente que les points représentant les unités spatiales sont plus ou moins éloignés, la distance qui les sépare étant une mesure de leur dissimilarité en matière de vote pour les deux listes considérées. Deux mesures de distance peuvent alors classiquement être utilisées pour convertir les positions en matrice de distance :

  • la distance euclidienne : \(D^{Euc}(i,j) = \sqrt{\sum_{k=1}^K (X_{ik}-X_{jk})^2}\)
  • la distance de Manhattan : \(D^{Man}(i,j) = \sum_{k=1}^K |X_{ik}-X_{jk}|\)

Les deux solutions donnant des résultats assez voisins, on se limitera ici à l’analyse de la matrice des distances euclidiennes.

DS_eucl <- as.matrix(dist(don[, c("Bardella", "Marechal")], 
                          method = "euclidean", 
                          upper = TRUE, 
                          diag = FALSE))

colnames(DS_eucl) <- don$regi_code
rownames(DS_eucl) <- don$regi_code

Matrice des distances euclidiennes :

Dissimilarité en distance euclidienne brute
IDF CVDL BOFC NORM HDFR GEST PDLO BRET NAQU OCCI AURA PACA
IDF 0.0 16.2 18.3 16.6 23.6 19.5 8.9 6.9 12.2 14.9 12.1 20.0
CVDL 16.2 0.0 2.2 0.9 7.5 3.4 7.3 9.4 4.0 1.3 4.0 4.4
BOFC 18.3 2.2 0.0 1.9 5.4 1.3 9.5 11.6 6.2 3.4 6.2 2.9
NORM 16.6 0.9 1.9 0.0 7.1 3.1 7.7 9.8 4.4 1.9 4.5 4.5
HDFR 23.6 7.5 5.4 7.1 0.0 4.2 14.8 16.8 11.5 8.8 11.5 4.9
GEST 19.5 3.4 1.3 3.1 4.2 0.0 10.7 12.8 7.4 4.6 7.4 2.2
PDLO 8.9 7.3 9.5 7.7 14.8 10.7 0.0 2.1 3.3 6.1 3.4 11.4
BRET 6.9 9.4 11.6 9.8 16.8 12.8 2.1 0.0 5.4 8.2 5.5 13.5
NAQU 12.2 4.0 6.2 4.4 11.5 7.4 3.3 5.4 0.0 2.8 0.6 8.2
OCCI 14.9 1.3 3.4 1.9 8.8 4.6 6.1 8.2 2.8 0.0 2.8 5.4
AURA 12.1 4.0 6.2 4.5 11.5 7.4 3.4 5.5 0.6 2.8 0.0 8.0
PACA 20.0 4.4 2.9 4.5 4.9 2.2 11.4 13.5 8.2 5.4 8.0 0.0

La plus forte dissimilarité est observée entre la région Île-de-France (IDF) et la région Hauts-de-France (HDFR) et la plus faible entre les régions Centre-Val de Loire (CVDL) et Normandie (NORM).

En comparant la matrice de dissimilarité au graphique orthonormé précédent, on comprend que les différences entre unités spatiales sont essentiellement produites par les variations du vote « Bardella » qui possède une plus forte variance que le vote « Maréchal ». Ce dernier n’introduit que des différenciations secondaires.

1.2.2 Espace des variables standardisées

Si le choix de la métrique euclidienne ou de la métrique de Manhattan introduit peu de différences dans les matrices de dissimilarité, il en va tout autrement de la standardisation des variables qui consiste à ramener chaque indicateur à une même moyenne (\(\mu = 0\)) et surtout un même écart-type (\(\sigma = 1\)).

\[X^*_i = \frac{X_i - \mu_X}{\sigma_X}\]

Pour bien apprécier la différence, on peut commencer par visualiser les distances (donc les dissimilarités) dans l’espace des variables standardisées en adoptant comme précédemment un repère orthonormé mais dont l’unité de mesure est l’écart-type et non plus les points de pourcentage :

# Standardisation des deux variables
don$Bardella_std <- as.double(scale(don$Bardella))
don$Marechal_std <- as.double(scale(don$Marechal))

# Représentation graphique
plot(x = don$Bardella_std,
     y = don$Marechal_std, 
     asp = 1,
     xlim = c(-2.5, 2.5),
     ylim = c(-1.5, 3),
     xlab = "Score Bardella standardisé (X1)",
     ylab = "Score Maréchal standardisé (X2)",
     main = "Distances dans l'espace des variables standardisées",
     pch = 20)

text(x = don$Bardella_std, 
     y = don$Marechal_std, 
     labels = don$regi_code, 
     pos = 2, 
     cex = 0.8, 
     col = "red")

grid()

Les distances euclidiennes dans ce nouvel espace des variables standardisées sont évidemment différentes de celles que l’on avait obtenues dans l’espace des variables brutes.

DS_eucl_std <- as.matrix(dist(don[, c("Bardella_std", "Marechal_std")],
                         method = "euclidean", 
                         upper = TRUE, 
                         diag = FALSE))

colnames(DS_eucl_std) <- don$regi_code
rownames(DS_eucl_std) <- don$regi_code

Matrice des distances euclidiennes standardisées :

Dissimilarité en distance euclidienne standardisée
IDF CVDL BOFC NORM HDFR GEST PDLO BRET NAQU OCCI AURA PACA
IDF 0.0 2.5 2.8 2.8 3.8 3.0 1.7 1.9 2.0 2.3 1.9 3.8
CVDL 2.5 0.0 0.4 0.9 1.5 0.5 1.4 2.0 0.8 0.2 0.6 2.6
BOFC 2.8 0.4 0.0 0.8 1.1 0.3 1.6 2.1 1.0 0.6 1.0 2.7
NORM 2.8 0.9 0.8 0.0 1.1 1.1 1.2 1.6 0.8 1.0 1.3 3.5
HDFR 3.8 1.5 1.1 1.1 0.0 1.2 2.3 2.6 1.8 1.7 2.1 3.6
GEST 3.0 0.5 0.3 1.1 1.2 0.0 1.9 2.4 1.3 0.7 1.1 2.5
PDLO 1.7 1.4 1.6 1.2 2.3 1.9 0.0 0.6 0.6 1.3 1.1 3.8
BRET 1.9 2.0 2.1 1.6 2.6 2.4 0.6 0.0 1.2 1.9 1.7 4.4
NAQU 2.0 0.8 1.0 0.8 1.8 1.3 0.6 1.2 0.0 0.7 0.7 3.3
OCCI 2.3 0.2 0.6 1.0 1.7 0.7 1.3 1.9 0.7 0.0 0.4 2.6
AURA 1.9 0.6 1.0 1.3 2.1 1.1 1.1 1.7 0.7 0.4 0.0 2.7
PACA 3.8 2.6 2.7 3.5 3.6 2.5 3.8 4.4 3.3 2.6 2.7 0.0

Par rapport à la représentation dans l’espace non standardisé, il y a désormais un étirement comparable du nuage de points dans les deux directions de l’espace standardisé. Ce résultat est logique puisque les écarts-types sont désormais égaux pour les deux candidats ce qui signifie que les différences liées au vote « Maréchal » vont jouer le même rôle que celles liées au vote « Bardella ». Les deux unités spatiales les plus différentes ne sont plus l’Île-de-France (IDF) et les Hauts-de-France (HDFR) mais la Bretagne (BRET) et la région Provence-Alpes-Côte d’Azur (PACA), ce que l’on peut facilement vérifier en calculant la distance euclidienne sur variables standardisées.

1.2.3 Espace des variables ordinales

On pourrait transformer nos deux variables \(X_1\) et \(X_2\) en rang pour en faire des distributions uniformes insensibles au jeu des valeurs exceptionnelles. Si l’on effectue une transformation en rang, la géométrie de l’espace devient celle d’une grille de 12x12 positions en fonction des rangs obtenus par les unités spatiales pour le vote « Bardella » ou le vote « Maréchal ». Dans cet espace discret (sauf en cas de valeurs ex æquo) il semble logique d’utiliser la somme des différences de rang en valeur absolue, c’est-à-dire la distance de Manhattan sur les variables transformées. Cette distance correspond au plus court chemin en suivant la grille qui croise les rangs de \(X_1\) et \(X_2\) :

# Calcul des rangs
don$Bardella_rnk <- rank(-don$Bardella)
don$Marechal_rnk <- rank(-don$Marechal)

# Représentation graphique
plot(x = don$Bardella_rnk,
     y = don$Marechal_rnk,
     asp = 1,
     xlab = "Rang pour le score Bardella (X1)",     
     ylab = "Rang pour le score Maréchal (X2)",
     frame = TRUE,
     axes = FALSE,
     xlim = c(1, 12),
     ylim = c(1, 12),
     main = "Distances dans l'espace des rangs",
     pch = 20)

text(x = don$Bardella_rnk, 
     y = don$Marechal_rnk,
     labels = don$regi_code, 
     pos = 2, 
     cex = 0.8, 
     col = "red")

axis(1, at = seq(1, 12, 1), tck = 1, lty = 2, col = "gray")
axis(2, at = seq(1, 12, 1), tck = 1, lty = 2, col = "gray")

Calcul de la matrice de distance sur les rangs :

DS_Man_rnk <- as.matrix(dist(don[, c("Bardella_rnk", "Marechal_rnk")],
                        method = "manhattan",
                        upper = TRUE,
                        diag = FALSE))

colnames(DS_Man_rnk) <- don$regi_code
rownames(DS_Man_rnk) <- don$regi_code
Dissimilarité de Manhattan sur les rangs
IDF CVDL BOFC NORM HDFR GEST PDLO BRET NAQU OCCI AURA PACA
IDF 0 10 13 15 20 11 9 11 10 8 4 11
CVDL 10 0 3 5 10 5 7 11 4 2 6 9
BOFC 13 3 0 4 7 4 8 12 5 5 9 8
NORM 15 5 4 0 5 8 6 8 5 7 11 12
HDFR 20 10 7 5 0 9 11 11 10 12 16 11
GEST 11 5 4 8 9 0 12 16 9 5 7 4
PDLO 9 7 8 6 11 12 0 4 3 7 7 16
BRET 11 11 12 8 11 16 4 0 7 11 11 20
NAQU 10 4 5 5 10 9 3 7 0 4 6 13
OCCI 8 2 5 7 12 5 7 11 4 0 4 9
AURA 4 6 9 11 16 7 7 11 6 4 0 9
PACA 11 9 8 12 11 4 16 20 13 9 9 0

On trouve désormais une distance maximale de 20 qui place à égalité la paire IDF-HDFR (plus forte distance euclidienne brute) et la paire BRET-PACA (plus forte distance euclidienne standardisée). Cette troisième solution offre donc ici une sorte de compromis entre les deux précédentes, même si elle est en réalité plus proche de la méthode standardisée que de la méthode brute.

Il existe de nombreuses autres solutions permettant de transformer le tableau de données en d’autres matrices de dissimilarité tout aussi légitimes que les trois présentées ci-dessus. On pourrait par exemple utiliser une autre métrique telle que distance de Tchebychev qui est la magnitude absolue maximale des différences entre les coordonnées des points.

Le point important à retenir avant de passer à la suite des analyses est que le choix de la matrice de dissimilarité exerce une influence cruciale sur les résultats des méthodes de classification ou de régionalisation qui vont être mises en œuvre. Or, ce choix est trop souvent implicite dans les logiciels de statistiques qui proposent par défaut des méthodes fondées sur la variance c’est-à-dire sur le carré des distances euclidiennes standardisées. Ce choix est le plus souvent justifié car il évite aux débutants en statistique des erreurs fatales telles que le fait de ne pas standardiser un jeu de variables hétérogènes ayant des unités de mesure et des ordres de grandeur différents. Mais il peut aussi aboutir à des résultats discutables ou du moins pas forcément les plus adaptés à la problématique.

1.3 Classification

1.3.1 Choix du critère à optimiser

Les méthodes de classification et de régionalisation ascendante hiérarchiques ont pour point commun d’opérer un regroupement des unités spatiales en allant des plus ressemblantes au moins ressemblantes. Elles fournissent un arbre de regroupement qui permet de visualiser chaque étape du regroupement et des critères permettant d’opérer un compromis entre l’homogénéité interne des classes (ou régions) et leur nombre.

Une bonne classification (ou une bonne régionalisation) devra comporter à la fois le moins de classes (ou régions) possibles pour offrir un bon résumé, mais également un nombre suffisant pour éviter de constituer des ensembles trop hétérogènes. On utilise souvent la part de variance expliquée par la partition pour mesurer cette qualité. Cependant ce choix conduit à imposer une métrique (distance euclidienne) et un algorithme (critère de Ward). Il est plus intéressant de prendre un critère plus général fondé sur le rapport entre les dissimilarités internes et externes des entités constituées. Si on s’en tient à la définition de classes ou régions homogènes comme des groupes d’unités spatiales qui se ressemblent plus entre elles qu’elles ne ressemblent aux unités spatiales des autres groupes, alors notre critère à optimiser \(H\) prendra une des formes suivantes :

\[H = \frac{Dissimilarité \space inter \space groupe}{Dissimilarité \space intra \space groupe}\]

ou

\[H = \frac{Dissimilarité \space inter \space groupe}{Dissimilarité \space totale}\]

ou

\[H = 1- \frac{Dissimilarité \space intra \space groupe}{Dissimilarité \space totale}\]

1.3.2 Choix de l’algorithme de regroupement

Une classification ascendante hiérarchique peut s’opérer selon différents algorithmes qui correspondent à différents critères d’optimisation. Le critère qui semble intuitivement le plus simple est la minimisation des distances moyennes intra-classes et la maximisation des distances moyennes inter-classes. Cette méthode du average linkage est la plus simple à comprendre, mais il existe beaucoup d’autres algorithmes cherchant par exemple à minimiser les distances minimales (single linkage), les distances maximales (complete linkage), les distances médianes, etc. La méthode par défaut de la plupart des logiciels de statistiques est appelée méthode de Ward. Elle consiste à minimiser la somme des distances entre les centres de gravité des classes, ce qui la place dans le cadre de l’analyse de la variance (Ward, 1963). Cette méthode comporte toutefois des variantes qui produisent des résultats différents comme cela a été démontré par Murtagh et Legendre (2014). On distingue en pratique deux méthodes Ward.D et Ward.D2 qui s’appliquent à des distances simples ou des distances élevées au carré.

Pour assurer une bonne comparabilité des résultats de classification et de régionalisation, nous utiliserons ici la fonction R-base hclust() (hierarchical clustering) plutôt que la fonction HCPC() du package FactoMineR qui est plus puissante mais introduit souvent des modifications de l’algorithme de base à l’insu de l’utilisateur non averti (notamment le fait d’optimiser a posteriori les classes par une méthode de type k-means). La régionalisation sera faite à l’aide de la fonction constr.clust() du package adespatial qui reproduit fidèlement la méthode de la fonction hclust() en y ajoutant simplement une contrainte de contiguïté des unités regroupées. Pour plus de détail on se reportera à la description de la classification avec contrainte de contiguïté dans Guénard et Legendre (2022).

1.3.3 Comparaison des classifications

Nous allons examiner les résultats des classifications opérées sur les matrices de dissimilarité en distance euclidienne sur variables standardisées ou non standardisées et en distance de Manhattan sur variables ordinales avec la même méthode Ward.D. Nous examinerons également dans chaque cas la distribution géographique des résultats pour une partition en trois classes afin de voir si les distributions spatiales obtenues correspondent ou non à des régionalisations de la France.

# CAH - Euclidienne non standardisée
cah_euc <- hclust(dist(DS_eucl), method = "ward.D")

# CAH - Euclidienne standardisée
cah_euc_std <- hclust(dist(DS_eucl_std), method = "ward.D")

# CAH - Manhattan ordinale
cah_man_rnk <- hclust(dist(DS_Man_rnk), method = "ward.D")

# Découpage en 3 classes
clas_euc <- as.factor(cutree(cah_euc, k = 3))
clas_euc_std <- as.factor(cutree(cah_euc_std, k = 3))
clas_man_rnk <- as.factor(cutree(cah_man_rnk, k = 3))

# Ajout des classifications dans la couche géographique
map$clas_euc  <- clas_euc 
map$clas_euc_std <- clas_euc_std
map$clas_man_rnk <- clas_man_rnk

Représentation graphique des classifications :

## 1.a Arbre CAH - Euclidienne non standardisée
plot(cah_euc,
     hang = -1,
     cex.main = 1.2,
     main = "1.a Distance euclidienne non standardisée",
     ylab = "Dissimilarité",
     sub = NA,
     xlab = "")
# ---

# 1.b Carte CAH - Euclidienne non standardisée 
mf_map(map, type = "typo", var = "clas_euc")
mf_layout("1.b CAH en 3 classes", arrow = FALSE, credits = "")
# ---


## 2.a Arbre CAH - Euclidienne standardisée
plot(cah_euc_std,
     hang = -1,
     cex.main = 1.2,
     main = "2.a Distance euclidienne standardisée",
     ylab = "Dissimilarité",
     sub = NA,
     xlab = "")
# ---

# 2.b Carte CAH - Euclidienne standardisée 
mf_map(map, type = "typo", var = "clas_euc_std")
mf_layout("2.b CAH en 3 classes",  arrow = FALSE, credits = "")
# ---


## 3.a Arbre CAH - Ordinale de Manhattan
plot(cah_man_rnk,
     hang = -1,
     cex.main = 1.2,
     main = "3.a Distance ordinale de Manhattan",
     ylab = "Dissimilarité",
     sub = NA,
     xlab = "")
# ---

# 3.b Carte CAH - Ordinale de Manhattan 
mf_map(map, type = "typo", var = "clas_man_rnk")
mf_layout("3.b CAH en 3 classes", arrow = FALSE, credits = "")