Analyse territoriale multiscalaire
Application à la concentration de l’emploi dans la métropole du Grand Paris
Cette fiche présente une analyse territoriale multiscalaire menée sur la concentration de l’emploi dans les communes de la métropole du Grand Paris (MGP)1. Cette analyse reproductible utilise des données de l’INSEE librement accessibles et montre l’usage et l’intérêt des fonctions du package MTA
(Multiscalar Territorial Analysis) pour révéler l’existence d’inégalités territoriales dans un contexte multiscalaire.
-
Prérequis : connaissance en analyse de données et en représentations graphiques (plots, cartographie) avec R.
1 Aux origines de MTA…
Le socle méthodologique sur lequel repose le package MTA
(Multiscalar Territorial Analysis) a été conceptualisé dans le courant des années 2000 par le groupe de recherche HyperCarte (Grasland et al. 2005). Bien qu’il ait été conçu dès le départ pour des applications sur des territoires ou des indicateurs quelconques, il s’est d’abord fait connaître à travers la production d’HyperAtlas, outil conçu pour analyser les inégalités régionales en Europe, dans le cadre du programme ESPON (European Spatial Planning Observatory Network)2.
1.1 HyperAtlas : un révélateur des contradictions de la politique régionale européenne
L’objectif politique et empirique de la première application était de montrer que la définition des régions en retard de développement dépend du contexte d’observation et que celui-ci peut se définir d’au moins trois façons différentes. Si l’on prend par exemple le PIB par habitant en parité de pouvoir d’achat, et que l’on fixe un seuil de -25 % à la valeur de référence, trois listes différentes de régions en retard se révèlent :
- contexte européen : régions ayant un PIB/hab. inférieur de 25 % à la moyenne de l’Union européenne
- contexte national : régions ayant un PIB/hab. inférieur de 25 % à la moyenne de son pays d’appartenance
- contexte local : régions ayant un PIB/hab. inférieur de 25 % à la moyenne des régions voisines
Une telle analyse était perturbante pour les décideurs politiques européens car elle mettait en évidence les contradictions qui pouvaient apparaître entre les politiques de solidarité menées à différentes échelles territoriales et spatiales (Grasland 2004).
La contradiction la plus connue concernait l’emboîtement des échelles politiques territoriales (Davezies 1997). Paradoxalement, une même région pouvait être définie comme désavantagée au niveau européen (et percevoir à ce titre des aides) mais avantagée au niveau national (et obligée de ce fait à reverser des aides aux régions plus défavorisées de son propre pays).
Une seconde contradiction concernait les effets d’accessibilité spatiale et le rôle des acteurs économiques dans un contexte d’ouverture des frontières et d’élargissement de l’UE de 15 à 25. L’indicateur de contexte local mettait en effet en valeur des régions plus riches que leurs voisines, alors même qu’elles étaient plus pauvres que la moyenne européenne ou la moyenne nationale. Elles constituaient donc des pics locaux de richesse. Inversement, des régions plus riches que la moyenne européenne ou nationale étaient plus pauvres que leurs voisines et constituaient des territoires localement désavantagés. Or, les économistes spatiaux étaient déjà en plein débat sur les effets de ces avantages comparatifs locaux. Pour les partisans du spillover effect3, les pôles de richesse diffuseraient la prospérité vers les régions voisines, tandis que pour les partisans du backwash effect4, ce serait plutôt le contraire (OECD 2001 ; Camagni 2009).
L’intérêt de combiner les trois types d’inégalités a conduit le programme ESPON à financer le développement de l’application HyperAtlas (Martin 2004 ; Thomas 2008 ; Le Rubrus 2011), qui permet de mener une analyse territoriale multiscalaire dans un environnement logiciel dédié.
Cet outil (ESPON 2020) a bénéficié d’une importante reconnaissance autour de 2010, et plusieurs versions ont été implémentées dans divers projets européens, notamment pour permettre l’analyse des disparités régionales sur des indicateurs socio-économiques à l’échelle de l’Union européenne (Böhm, Schön 2004 ; Gloersen, Dubois 2007). Cet outil (ESPON 2020), a aussi suscité l’intérêt de l’Éducation nationale, notamment pour proposer aux élèves de 1re un cadre méthodologique adapté pour enseigner les disparités socio-spatiales au sein de l’UE.
Cette présentation réalisée en avril 2015 lors d’un atelier organisé au Commissariat général à l’égalité des territoires (CGET, désormais ANCT) synthétise l’histoire et le fonctionnement de cet outil.
1.2 HyperCarte : un projet de recherche interdisciplinaire
Le groupe de recherche HyperCarte, actif entre 1996 et 2015, reposait sur quatre équipes de recherche en géographie (RIATE et Géographie-cités) et en informatique (LIG-STEAMER et LIG-MESCAL).
Si le développement d’applications pour l’Union européenne a constitué une activité privilégiée, il a toujours été clair que le projet avait une portée plus générale et pouvait s’appliquer à d’autres échelles. Plusieurs instances ont ainsi été proposées afin d’étudier les inégalités territoriales dans différents contextes spatiaux (Monde, Europe, territoires locaux). Pour en savoir plus, se reporter à la page Web du projet HyperCarte qui restitue l’historique du projet, les concepts mobilisés et les publications associées.
Ces applications ont permis de monter en généralité et de proposer une vision plus globale des concepts mis en oeuvre dans HyperAtlas en redéfinissant les trois contextes d’un point de vue plus théorique :
- Le contexte global analyse la position d’un lieu par rapport à l’ensemble des lieux étudiés qui forment l’espace de référence.
- Le contexte territorial analyse la position d’un lieu par rapport à une partition de l’espace de référence en mailles territoriales. Chaque lieu appartient à une maille et une seule qui définit son contexte territorial.
- Le contexte spatial analyse la position d’un lieu par rapport à un ensemble de lieux voisins. Ce voisinage peut aussi bien être basé sur la contiguïté (frontière commune) que sur une accessibilité mesurée en temps, coût ou kilomètre. Comme dans les modèles d’autocorrélation spatiale5, on introduit une fonction de pondération pour que la somme des voisinages de chaque lieu soit égale à 1 (Anselin 1995).
Il est important de préciser que, dans ce cadre théorique, la variable \(Z = \frac{V}{P}\) utilisée pour analyser les inégalités entre les lieux doit obligatoirement correspondre à un modèle d’allocation d’une ressource par rapport à une population de référence. La référence implicite de l’analyse des inégalités est en effet l’équirépartition des ressources par rapport à la population, quelle que soit l’échelle considérée.
On peut donc utiliser les procédures mise au point dans HyperAtlas pour étudier la richesse (V) par habitant (P) ou le nombre d’automobile (V) par ménage (P). Mais il ne serait pas logique d’appliquer la méthode à la densité de population, sauf si l’on inverse le rapport et considère la quantité d’espace (V) par habitant (P).
1.3 Le package MTA
Aujourd’hui, HyperCarte n’est plus actif et HyperAtlas plus maintenu. L’objectif du package MTA
consiste à mettre à disposition les connaissances, les méthodes et les solutions de visualisation développées durant des années de recherche par le biais de fonctions R. L’adaptation en langage R permet de s’affranchir des limites liées à l’usage d’une application clic-bouton, où l’import des données s’avérerait relativement complexe et la modularité des analyses peu flexible pour pousser l’aspect d’exploration des données.
D’un point de vue conceptuel, HyperAtlas et MTA
reposent sur l’hypothèse que la signification d’un indicateur dépend du contexte territorial de référence dans lequel il s’inscrit.
Confronter ces contextes d’analyse en utilisant des représentations synoptiques permet de synthétiser les inégalités mesurées et de mettre en évidence des situations de domination, de soumission ou de contradiction (Ysebaert et al. 2012). La mise à disposition de ces trois mesures d’écarts - associées à des représentations graphiques et cartographiques adaptées - sont au coeur d’HyperAtlas et des fonctions d’analyse proposées par MTA
.
Un préalable essentiel à l’analyse multiscalaire consiste à identifier :
- un indicateur (\(Z = \frac{V}{P}\))
- des contextes qui font sens d’un point de vue thématique ou politique
Nous proposons ci-dessous une analyse multiscalaire du rapport entre l’emploi au lieu de travail et les actifs occupés au lieu de résidence dans les communes de la métropole du Grand Paris en 2016. Dans la logique d’équirépartition expliquée précédemment, les emplois constituent donc une ressource (V) et les actifs occupés la population de référence (P). Le rapport \(Z = \frac{V}{P}\) permet donc de mesurer dans quelle mesure le nombre d’emplois disponibles en un lieu est en adéquation avec la population active présente.
Les contextes de déviation utilisés seront la métropole du Grand Paris (déviation générale), l’EPCI6 d’appartenance (déviation territoriale) et les unités territoriales qui partagent une limite communale (déviation spatiale).
2 Objectifs et données mobilisées
2.1 Objectifs
Les emplois sont-ils situés à proximité du domicile des employés ? Trouve-t-on dans chaque commune autant d’emplois qu’il y a d’actifs ? C’est l’approche que nous proposons d’explorer dans les différents contextes territoriaux de la métropole du Grand Paris.
Nul besoin d’être expert en géographie de l’emploi pour percevoir son inégale répartition sur ce territoire : certaines municipalités concentrent les emplois (La Défense, Paris), quand d’autres ont une vocation quasi-exclusivement résidentielle (banlieues pavillonnaires, cités-dortoirs).
Raisonner sur l’asymétrie qui existe entre offre d’emploi et lieu de résidence des actifs ne constitue pas une nouveauté. Comme l’a montré Kain avec le concept du spatial mismatch7 appliqué à l’inégale répartition de l’emploi pour certaines catégories de population (les Afro-Américains) (Kain 1968 ; Kain 1992). Dans la région parisienne, les travaux récents de l’UMR Géographie-cités autour du Mobiliscope ont mis en évidence les inégalités d’accès à l’emploi en fonction des lieux de résidence des actifs et leurs spécificités (catégories socio-professionnelles, etc.) et les coûts de transport induis (Le Roux et al. 2017).
Cette analyse ne vise bien entendu pas à révolutionner ce champ de recherche déjà fécond, mais plutôt à apporter des compléments méthodologiques pour explorer ce type de données, car les ordres de grandeur qui structurent ces inégalités sont plus méconnus, que ce soit en termes de masse d’emplois ou de configurations territoriales plus spécifiques (métropole du Grand Paris, EPCI ou voisinage géographique proche). Ces contextes territoriaux sont par ailleurs, au niveau local, des échelons essentiels pour la prise de décision politique (aménagement et organisation sociale) et pour l’emploi :
- La métropole du Grand Paris (composée de 12 EPCI : 11 communautés d’agglomération et Paris) a notamment pour compétence l’aménagement économique, social et culturel, et la politique du cadre de vie.
- La communauté d’agglomération a pour compétence obligatoire l’aménagement de l’espace, le développement économique, l’équilibre social de l’habitat et la politique de l’habitat.
- Le niveau administratif de base en France, la commune, est la collectivité territoriale de proximité. Malgré la réduction de ses compétences en matière d’aménagement avec la loi NOTRe d’août 2015, elle conserve des compétences marquées en matière d’urbanisme, d’aide sociale ou de logement. C’est aussi bien souvent le niveau administratif auquel se rattachent naturellement les résidents.
D’un point de vue purement méthodologique, le fait d’utiliser des jeux de données non modifiés issus de fournisseurs institutionnels de référence (INSEE pour les données, IGN pour les géométries), associés à une approche reproductible, permet de mettre à jour l’analyse ou de la transposer à d’autres espaces d’études. Ainsi, moyennant une interprétation adaptée des sorties statistiques, graphiques et cartographiques proposées, cette analyse peut utilement compléter les diagnostics territoriaux menés par de nombreuses institutions comme l’Apur, ou la Direction régionale et interdépartementale de l’Équipement et de l’Aménagement (DRIEA), qui s’intéresse dès la page 14 de son rapport de 2015 au même indicateur que dans cette analyse.
2.2 Sources mobilisées
Cinq sources de données sont mobilisées dans cette analyse :
1) CONTOURS…IRIS® : les géométries des IRIS8 de France métropolitaine et leur commune d’appartenance, au découpage du 1er janvier 2019, fournies par l’IGN.
2) Table d’appartenance géographique : l’appartenance des communes (version 2019) à leur EPCI de rattachement et le type de coopération (communautés de communes, communautés d’agglomération, communautés urbaines, métropoles) au 1er janvier 2019. Ce fichier est distribué par l’INSEE.
3) Emploi-activité en 2016 : des indicateurs sur l’emploi au lieu de travail et la population active occupée en 2016, mis à disposition par l’INSEE à l’échelon communal.
4) Logement en 2016 : des indicateurs décrivant le niveau de motorisation des ménages à l’échelle des IRIS et mis à disposition par l’INSEE.
Un cinquième fichier, metropole.xls , construit par nos soins à partir des sites Web de référence des métropoles, vise à identifier des sous-ensembles territoriaux cohérents à l’intérieur de ces métropoles. Dans le cadre de la métropole du Grand Paris, il s’agit des 11 communautés d’agglomération (+ Paris). Pour les autres métropoles, l’importance des EPCI intermédiaires est moins prépondérante, puisque les métropoles ont vocation à remplacer les anciens EPCI. Nous avons néanmoins restitué quand c’était possible la géographie de ces anciennes mailles de décision afin de disposer d’un découpage territorial intermédiaire entre les communes et les métropoles. Quand ce maillage intermédiaire était inexistant (transformation de communautés urbaines en métropole sans inclusion de nouvelles communes au périmètre de coopération), nous avons uniquement fait la distinction entre la ville centre (LIB_EPCI = C) et sa périphérie (LIB_EPCI = P).
Hormis ce dernier fichier, il s’agit donc de sources de données officielles, mises à jour annuellement, qui sont associées à un découpage géographique libre de droit et dd’utilisation, ce qui facilite la mise à jour et la transposition des analyses.
Pour rejouer la préparation des données - jointures attributaires, sélection des métropoles, agrégation par clé d’appartenance territoriale - se reporter à ce script R.
2.3 Données consolidées
Le script de préparation des données aboutit à la création d’un geopackage constitué de quatre couches géographiques qui seront utilisées dans l’analyse :
iris
: la couche géographique des IRIS, qui contient des données relatives à la motorisation des ménages.com
: celle des communes, qui contient des données relatives à l’emploi au lieu de travail. C’est le principal jeu de données utilisé dans cette fiche.epci
: la couche géographique des communautés d’agglomération (EPCI) contenues dans les métropoles, qui sera utilisé pour l’habillage des cartes.
metropole
: celle des métropoles, que l’on pourrait éventuellement utiliser à des fins d’habillage.
Voici le détail des indicateurs inclus dans les couches géographiques des communes et des IRIS.
2.3.1 Communes
C’est la couche principale qui sera utilisée dans cette fiche.
Code | Libellé | Source |
INSEE_COM | Code communal INSEE | INSEE (base-cc-emploi-pop-active-2016) |
NOM_COM | Libellé de la commune | INSEE (base-cc-emploi-pop-active-2016) |
EPCI | Code de la métropole d'appartenance | INSEE (table-appartenance-geo-communes-19) |
LIB_EPCI | Libellé de la métropole d'appartenance | INSEE (table-appartenance-geo-communes-19) |
EPCI_SUB | Code de l'EPCI entre la commune et la métropole (si adapté) | RIATE (metropole.xls) |
LIB_EPCI_SUB | Libellé de l'EPCI entre la commune et la métropole (si adapté) | RIATE (metropole.xls) |
P16_EMPLT | Nombre d'emplois au lieu de travail en 2016 | INSEE (base-cc-emploi-pop-active-2016) |
C16_ACTOCC1564 | Nombre de personnes actives de 15 à 64 ans en 2016 | INSEE (base-cc-emploi-pop-active-2016) |
geom | Géométries des communes | IGN (CONTOUR-IRIS) |
2.3.2 IRIS
C’est la couche qui sera utilisée en fin de document pour discuter de la transposition de l’analyse à un autre espace d’étude.
Code | Libellé | Source |
CODE_IRIS | Code complet IRIS | IGN (CONTOUR-IRIS) |
INSEE_COM | Code communal INSEE | INSEE (table-appartenance-geo-communes-19) |
NOM_COM | Libellé de la commune | INSEE (table-appartenance-geo-communes-19) |
IRIS | Code IRIS | IGN (CONTOUR-IRIS) |
NOM_IRIS | Nom de l'IRIS | IGN (CONTOUR-IRIS) |
TYP_IRIS | Type d'IRIS | IGN (CONTOUR-IRIS) |
EPCI | Code de la métropole d'appartenance | INSEE (table-appartenance-geo-communes-19) |
LIB_EPCI | Libellé de la métropole d'appartenance | INSEE (table-appartenance-geo-communes-19) |
EPCI_SUB | Code de l'EPCI entre la commune et la métropole (si adapté) | RIATE (metropole.xls) |
LIB_EPCI_SUB | Libellé de l'EPCI entre la commune et la métropole (si adapté) | RIATE (metropole.xls) |
P16_MEN | Nombre de ménages en 2016 | INSEE (base-ic-logement-2016) |
P16_RP_VOIT1P | Nombre de ménages disposant au moins d'une voiture en 2016 | INSEE (base-ic-logement-2016) |
geom | Géométries | IGN (CONTOUR-IRIS) |
2.3.3 Emprise géographique
Ces données sont disponibles pour les 22 métropoles françaises.
Métropole | Nb IRIS | Nb Communes | Nb EPCI intermédiaires |
Bordeaux Métropole | 277 | 28 | 1 |
Brest Métropole | 93 | 8 | 2 |
Clermont Auvergne Métropole | 103 | 21 | 1 |
Dijon Métropole | 122 | 24 | 1 |
Eurométropole de Strasbourg | 195 | 33 | 2 |
Métropole d'Aix-Marseille-Provence | 779 | 107 | 6 |
Métropole de Lyon | 512 | 67 | 1 |
Métropole du Grand Nancy | 115 | 20 | 1 |
Métropole du Grand Paris | 2,841 | 150 | 12 |
Métropole Européenne de Lille | 509 | 90 | 2 |
Métropole Grenoble-Alpes-Métropole | 201 | 49 | 3 |
Métropole Nice Côte d'Azur | 236 | 49 | 5 |
Métropole Rennes Métropole | 172 | 43 | 3 |
Métropole Rouen Normandie | 241 | 71 | 4 |
Métropole Toulon-Provence-Méditerranée | 176 | 12 | 1 |
Metz Métropole | 113 | 44 | 2 |
Montpellier Méditerranée Métropole | 160 | 31 | 1 |
Nantes Métropole | 234 | 24 | 2 |
Orléans Métropole | 117 | 22 | 2 |
Saint-Etienne Métropole | 187 | 53 | 4 |
Toulouse Métropole | 253 | 37 | 1 |
Tours Métropole Val de Loire | 120 | 22 | 3 |
3 Initialisation de l’analyse
3.1 Packages nécessaires
Cinq packages R sont requis pour reproduire les analyses présentées dans cette fiche :
MTA
pour la mesure des écarts multiscalaires
sf
pour la manipulation et le traitement de données géographiquesmapsf
pour les représentations cartographiquesineq
pour le calcul d’indices économétriques de concentrationspdep
pour le calcul des indices d’autocorrélation spatiale
Le code ci-dessous vérifie que toutes les librairies requises sont bien installées. Dans le cas contraire, elles sont installées puis chargées dans la session de travail.
# Noms de packages nécessaires
<- c("MTA", "sf", "ineq", "spdep", "mapsf")
my_packages
# Vérifier si ces packages sont installés
<- my_packages[!(my_packages %in% installed.packages()[,"Package"])]
missing_packages
# Installation des packages manquants depuis le CRAN
if(length(missing_packages)) install.packages(missing_packages,
repos = "http://cran.us.r-project.org")
# Chargement des packages nécessaires
lapply(my_packages, library, character.only = TRUE)
invisible(lapply(my_packages, library, character.only = TRUE))
3.2 Import des données
Pour rejouer l’analyse, décompressez les données contenues dans l’archive data.zip puis ouvrez les couches com et epci contenues dans le geopackage data.gpkg.
# Import des données (après les avoir téléchargées et décompressées)
<- st_read("data/data.gpkg", layer = "com", quiet = TRUE)
com <- st_read("data/data.gpkg", layer = "epci", quiet = TRUE) epci
Nous filtrons ce jeu de données (22 métropoles) pour ne considérer que les unités territoriales qui appartiennent à la métropole du Grand Paris.
# Filtrer sur Paris
<- com[com$LIB_EPCI == "Métropole du Grand Paris",]
com <- epci[epci$LIB_EPCI == "Métropole du Grand Paris",] epci
L’objet com contient toutes les informations nécessaires à la réalisation de l’analyse : des identifiants géographiques (code communal et nom de la commune), la métropole d’appartenance de la commune (METRO), l’identifiant et le nom de l’EPCI d’appartenance (LIB_EPCI_SUB et POS), des données socio-économiques (P16_EMPLT et C16_ACTOCC15654) et les géométries communales.
head(com)
Simple feature collection with 6 features and 8 fields
Geometry type: MULTIPOLYGON
Dimension: XY
Bounding box: xmin: 649855.9 ymin: 6859834 xmax: 653707.7 ymax: 6863752
Projected CRS: RGF93_Lambert_93
INSEE_COM NOM_COM EPCI LIB_EPCI
771 75101 Paris 1er Arrondissement 200054781 Métropole du Grand Paris
772 75102 Paris 2e Arrondissement 200054781 Métropole du Grand Paris
773 75103 Paris 3e Arrondissement 200054781 Métropole du Grand Paris
774 75104 Paris 4e Arrondissement 200054781 Métropole du Grand Paris
775 75105 Paris 5e Arrondissement 200054781 Métropole du Grand Paris
776 75106 Paris 6e Arrondissement 200054781 Métropole du Grand Paris
EPCI_SUB LIB_EPCI_SUB P16_EMPLT C16_ACTOCC1564
771 T1 Paris 61213.89 8061.414
772 T1 Paris 61152.99 11953.851
773 T1 Paris 31460.89 18880.705
774 T1 Paris 41601.54 13794.282
775 T1 Paris 53332.77 26531.098
776 T1 Paris 45135.11 16819.452
geom
771 MULTIPOLYGON (((652048.7 68...
772 MULTIPOLYGON (((652243.5 68...
773 MULTIPOLYGON (((653617.9 68...
774 MULTIPOLYGON (((653427.2 68...
775 MULTIPOLYGON (((653170.9 68...
776 MULTIPOLYGON (((651487.5 68...
3.3 Numérateur - dénominateur
MTA
requiert un ratio défini par un numérateur et un dénominateur pour calculer les déviations et redistributions. Nous allons ici mettre en relation l’emploi localisé au lieu de travail (P16_EMPLT) et le lieu de résidence des actifs occupés, âgés de 15 à 64 ans (C16_ACTOCC1564).
Pour faciliter la réutilisation / mise à jour du code, le numérateur est renommé num et le dénominateur denom. Le ratio ciblé est aussi calculé. Ainsi, un indice supérieur à 1 signifie que la commune dispose de plus d’emplois que d’actifs occupés résidents, et inversement.
# Initialisation de l'analyse
<- which(colnames(com) == "P16_EMPLT")
num <- which(colnames(com) == "C16_ACTOCC1564")
denom colnames(com)[c(num,denom)] <- c("num", "denom")
# Retirer les valeurs égales à 0
<- com[com$num != 0 & com$denom != 0,]
com
# Calculer le ratio de référence
$ratio <- com$num / com$denom com
3.4 Présentation de l’espace d’étude
Notre espace d’étude, la métropole du Grand Paris, est composé de 150 communes, assemblées en 12 regroupements de communes (11 communautés d’agglomération + Paris). La palette de couleurs utilisée restitue les départements d’appartenance de ces territoires, nous la réutiliserons par la suite sur certaines représentations graphiques.
Les représentations cartographiques sont réalisées avec le package mapsf
(consulter la documentation pour davantage d’information). L’utilisation de ce package n’est pas détaillée dans cette fiche, nous précisons cependant que la mise en page des cartes repose sur un thème défini dans le code ci-dessous (mta_theme()
). Chaque carte obéit à la même logique :
- initialisation de la carte et du thème avec
mf_init()
- représentation cartographique avec
mf_map()
- représentation des contours d’EPCI pour l’habillage cartographique avec
mf_map()
- ajout des éléments d’habillage de la carte :
mf_title()
,mf_credits()
etmf_scale()
# Ordre des labels et couleurs pour les EPCI
<- c("Paris", "Est Ensemble", "Grand Paris Grand Est", "Paris Terres d'Envol",
epts "Plaine Commune", "Boucle Nord de Seine", "Paris Ouest - La Défense",
"Grand Paris Seine Ouest", "Vallée Sud Grand Paris",
"Grand-Orly Seine Bièvre", "Grand Paris Sud Est Avenir",
"Paris Est Marne et Bois")
# Couleurs
<- c("#cfcfcf", # Gris (Paris)
cols "#92C8E0", "#7BB6D3", "#64A4C5", "#458DB3", # Bleus (Seine-Saint-Denis)
"#A6CC99", "#8CBB80", "#71A966", "#4E9345", # Verts (Hauts-de-Seine)
"#F38F84", "#EF6860", "#EA3531") # Rouges (Val-de-Marne)
<- data.frame(epts, cols)
colEpt
# Un thème cartographique pour l'ensemble des cartes produites
<- list(bg = NA, fg = NA, mar = c(0, 0, 0, 0), tab = TRUE, pos = "left",
mta_theme inner = TRUE, line = 1.3, cex = 1, font = 2)
# Cartographie
# Appeler le thème
mf_init(epci, expandBB = c(0,0.2,0,0), theme = mta_theme)
# Carte de typologie
mf_map(x = com, type = "typo", var = "LIB_EPCI_SUB", val_order = epts,
pal = cols, border = "white", lwd = 0.2, leg_val_cex = 0.7,
leg_title = NA, leg_pos = "bottomleft", add = TRUE)
# Contour des EPCI
mf_map(x = epci, col = NA, border = "black", lwd = 1, add = TRUE)
# Titre
mf_title("Les territoires d'appartenance des 150 communes de la MGP")
# Echelle
mf_scale(size = 5, col = "black", pos = c(666000, 6839000))
# Sources
<- "Sources : INSEE, IGN, 2021 / Réalisation : Ronan Ysebaert, RIATE, 2021"
credits mf_credits(txt = credits, pos = "rightbottom", cex = 0.5)
3.5 Résumé statistique
L’analyse des ordres de grandeur des numérateurs, dénominateurs et ratios souligne la grande hétérogénéité des situations au sein de la MGP. Certaines communes n’hébergent que quelques centaines d’emplois ou d’actifs, tandis que d’autres plusieurs dizaines de milliers.
Dans son ensemble, la MGP cumule 3,9 millions d’emplois, pour 3,1 millions d’actifs occupés au lieu de résidence. Le rapport emploi localisé / actifs occupés est donc excédentaire (1,26 emplois par actif occupé résidant dans la MGP). Cela s’explique naturellement par le fait que les emplois localisés au sein de la MGP sont occupés par des actifs résidant en dehors de la métropole, notamment dans le reste de l’Île-de-France. L’INSEE rappelle à ce titre qu’en “2015, plus d’un million d’actifs occupés ne résidant pas dans la métropole du Grand Paris s’y rendent quotidiennement pour travailler. Ils occupent 26 % des emplois parisiens” (INSEE 2019). Les flux en sens inverse sont bien moindre, même si une partie des habitants de la MGP travaillent en dehors, en Grande Couronne ou hors Île-de-France.
<- st_set_geometry(com, NULL)
stat
# Résumé statistique
summary(stat[c("num", "denom", "ratio")])
num denom ratio
Min. : 366.4 Min. : 699.5 Min. : 0.2622
1st Qu.: 5722.7 1st Qu.: 8959.4 1st Qu.: 0.5907
Median : 11496.1 Median : 14299.1 Median : 0.8247
Mean : 26042.7 Mean : 20746.7 Mean : 1.1792
3rd Qu.: 29886.7 3rd Qu.: 24973.6 3rd Qu.: 1.2668
Max. :175585.4 Max. :113069.9 Max. :10.0736
# Somme des emplois au lieu de travail (milliers)
round(sum(stat$num)/1000, 0)
[1] 3906
# Somme des actifs occupés au lieu de résidence (milliers)
round(sum(stat$denom)/1000, 0)
[1] 3112
# Moyenne pondérée
<- round(sum(stat$num) / sum(stat$denom), 2)
moy moy
[1] 1.26
Une simple représentation du nombre d’emplois et d’actifs occupés permet de juger de l’inégale répartition géographique de ces masses. Bien évidemment structurées selon un modèle centre-périphérie autour de Paris, ces représentations laissent néanmoins percevoir des distinctions entre emplois et actifs.
# Découpage de la fenêtre graphique en 1 ligne / 2 colonnes
# Ce qui permet de mettre deux cartes en vis-à-vis
par(mfrow = c(1,2))
# Carte du numérateur
mf_init(epci, expandBB = c(0.02, 0.02, 0.02, 0.02), theme = mta_theme)
mf_map(epci, col = "peachpuff", border = "black", lwd = 1, add = TRUE)
mf_map(type = "prop", x = com, var = "num", col = "#F6533A", border = "white",
leg_pos = "bottomleft", leg_val_rnd = -2, inches = 0.15,
leg_title = "Nombre d'emplois\nau lieu de travail, 2016", add = TRUE)
mf_title("Numérateur - Emploi au lieu de travail")
mf_scale(size = 5, col = "black", pos = c(666000, 6839000))
# Carte du dénominateur
mf_init(epci, expandBB = c(0.02, 0.02, 0.02, 0.02), theme = mta_theme)
mf_map(epci, col = "peachpuff", border = "black", lwd = 1, add = TRUE)
mf_map(type = "prop", x = com, var = "denom", col = "#515FAA", border = "white",
leg_pos = "bottomleft", leg_val_rnd = -2, inches = 0.15,
leg_title = "Nombre d'actifs\nau lieu de résidence", add = TRUE)
mf_title("Dénominateur - Actifs au lieu de résidence, 2016")
mf_credits(txt = credits, pos = "rightbottom", cex = 0.5)
La carte choroplèthe qui en découle représente le ratio emploi au lieu de travail / actifs occupés au lieu de résidence. Elle met en évidence les principales configurations spatiales qui structurent la MGP. La métropole est caractérisée par d’important différentiels puisqu’un rapport de 39 existe entre la valeur maximale (8e arrondissement de Paris : 10.07) et la valeur minimale (Ablon-sur-Seine : 0.26).
# Paramètrage de la fenêtre graphique
par(mfrow = c(1,1))
# Palette (Color Brewer)
<- c("#FCFBFD", "#EFEDF5", "#DADAEB", "#BCBDDC", "#9E9AC8", "#807DBA", "#6A51A3",
cols "#4A1486")
# Carte de concentration de l'emploi au regard des actifs
mf_init(epci, expandBB = c(0,0.2,0,0), theme = mta_theme)
mf_map(x = com, var = "ratio", type = "choro",
breaks = c(min(com$ratio), 0.5, 0.75, 1, 1.25, 1.50, 1.75, 2, max(com$ratio)),
pal = cols, border = "white", lwd = 0.2, leg_pos = "bottomleft", leg_val_rnd = 2,
leg_title = "Emploi au lieu de travail /\nactifs occupés au lieu de résidence, 2016",
add = TRUE)
mf_map(x = epci, col = NA, border = "black", lwd = 1, add = TRUE)
mf_title("Ratio d'intérêt : concentration d'emploi au lieu de travail dans la MGP")
mf_scale(size = 5, col = "black", pos = c(666000, 6839000))
mf_credits(txt = credits, pos = "rightbottom", cex = 0.5)
# Labels
mf_label(x = com[which.min(com$ratio),], var = "NOM_COM", halo = TRUE, cex = 0.6,
bg = "white")
mf_label(x = com[which.max(com$ratio),], var = "NOM_COM", halo = TRUE, cex = 0.6,
bg = "white")
4 Analyses multiscalaires
4.1 Eléments de méthode
4.1.1 Contextes général, territorial et spatial
MTA
propose trois fonctions pour mener une exploration multiscalaire et donner à voir autrement les inégalités qui structurent cet espace d’étude :
gdev
: le contexte général évalue la situation de chaque unité territoriale au regard d’un ensemble (ou d’une valeur) de référence. Dans notre cas, il s’agit de la moyenne de la métropole du Grand Paris.tdev
: le contexte territorial calcule l’écart des unités territoriales au regard d’un niveau territorial de référence intermédiaire englobant, défini par une table d’appartenance. Dans ce cas, il s’agira d’évaluer le positionnement des communes par rapport à la moyenne de leur EPCI d’appartenance.sdev
: le contexte spatial présente cet écart au regard d’un voisinage géographique. DansMTA
, le critère de voisinage peut être défini de trois façons : selon le critère de contiguïté (d’ordre 1, 2 ou n), selon un critère de distance (centroïdes des unités territoriales localisées à moins de X mètres à vol d’oiseau) ou selon des valeurs incluses dans une matrice de distance, définies par l’utilisateur (temps de transport routier, par exemple). DansMTA
, les déviations selon les critères de contiguïté ou de distance sont calculées directement par la fonctionsdev
. Si l’utilisateur souhaite importer sa propre matrice de distance, celle-ci doit être contenue dans un dataframe avec les champs suivants : id1, id2, mesure de distance. Dans le cas présent et compte tenu de la relative homogénéité de surface des unités territoriales, nous retiendrons le critère de contiguïté d’ordre 1, c’est-à-dire le fait que deux communes soient voisines, pour évaluer la déviation spatiale.
4.1.2 Méthodes absolue et relative
Dans MTA
, deux méthodes sont proposées pour quantifier ces déviations :
La méthode relative exprime la position de chaque unité territoriale au regard de la moyenne du contexte de référence, exprimé en indice 100. Cette déviation est calculée de la façon suivante : \[ Déviation~Relative~(région~i) = \frac{\frac{Numérateur(région~i)}{Dénominateur(région~i)}}{\bar{x}(contexte~de~ référence)} \times 100 \] Ainsi, les unités territoriales caractérisées par un indice inférieur à 100 sont situées sous la moyenne du contexte de référence, et inversement. La méthode relative est donc un outil de diagnostic qui permet de mesurer l’intensité des inégalités par rapport à un modèle hypothétique d’équirépartition9.
La méthode absolue mesure la redistribution de numérateur nécessaire pour aboutir à une parfaite équirépartition entre les unités territoriales (même ratio pour toutes les unités territoriales du contexte d’analyse). La redistribution peut être positive (une unité territoriale doit redistribuer aux autres) ou négative (une unité territoriale doit recevoir des autres). Cette déviation est calculée de la façon suivante : \[ Déviation~Absolue~(région~i) = Numérateur(région~i) - \bar{x}(espace~d'étude) \times Dénominateur(région~i) \] La méthode absolue est plutôt un outil de prospective puisqu’elle permet de mesurer la quantité de ressource qu’il faudrait théoriquement déplacer des zones favorisées vers les zones défavorisées pour aboutir à l’équirépartition. Si la ressource n’est pas mobile, elle permet symétriquement de mesurer la quantité de population qui devrait se déplacer des zones défavorisées vers les zones favorisées pour aboutir à l’équirépartition.
Il convient d’insister une fois encore sur l’importance du choix du critère d’inégalité \(Z = \frac{V}{P}\) qui est introduit dans le modèle MTA
et sur la signification politique du critère d’équirépartition. Dans l’exemple étudié ici, ce qui est en jeu n’est rien moins que la politique de régulation des constructions de logement et de création d’emplois dans une région marquée de longue date par des déséquilibres persistants.
4.1.3 Cartographie des résultats
Dans notre cas, la palette de couleurs proposée pour représenter les valeurs des déviations est celle suggérée dans HyperAtlas (bleu = inférieur à la moyenne, rouge = supérieur à la moyenne).
Les valeurs des déviations absolues sont représentées par des figurés proportionnels. S’ils sont représentés en rouge, cela signifie que les communes bénéficient d’un excédent de ressource ; inversement les figurés représentés en bleu présentent les communes qui souffrent d’un déficit de ressource.
4.1.4 Représentations graphiques associées
Des indicateurs statistiques et des représentation graphiques sont généralement associés à la cartographie des résultats. Ils s’inspirent en grande partie des fonctionnalités du logiciel HyperAtlas (courbes de Lorenz, boîtes à moustache) et permettent d’approfondir l’interprétation des résultats.
4.2 Déviation générale
4.2.1 Calcul des déviations et cartographie
La déviation générale (déviation à la moyenne de l’ensemble de la MGP) se calcule avec la fonction gdev
. Elle prend en entrée le numérateur (num) et le dénominateur (denom). La déviation relative est calculée avec l’argument type = rel
.
# Déviation générale
$gdevrel <- gdev(x = com, var1 = "num", var2 = "denom", type = "rel")
com
# Palette de couleurs (déviation, 6 classes, origine Color Brewer)
<- c("#4575B4", "#91BFDB", "#E0F3F8", "#FEE090", "#FC8D59", "#D73027")
devpal
# Cartographie
mf_init(epci, expandBB = c(0,0.2,0,0), theme = mta_theme)
mf_map(x = com, var = "gdevrel", type = "choro", pal = devpal,
breaks = c(min(com$gdevrel), 75, 90, 100, 111, 133, max(com$gdevrel)),
border = "white", lwd = 0.2, leg_pos = "left", leg_val_rnd = 0,
leg_title = "Déviation au contexte général\n(100 = moyenne de la MGP)",
add = TRUE)
mf_map(x = epci, col = NA, border = "black", lwd = 1, add = TRUE)
mf_title(paste0("Déviation générale"))
mf_scale(size = 5, col = "black", pos = c(666000, 6839000))
mf_credits(txt = credits, pos = "rightbottom", cex = 0.5)
Cette carte met en évidence les inégalités de concentration d’emplois dans le contexte de la MGP. Les communes au-dessus de la moyenne (100 = 1,26 emplois/actifs occupés) sont quasi exclusivement toutes situées dans la partie ouest de l’espace d’étude, à Paris ou dans les Hauts-de-Seine. Les arrondissements du nord-est parisien ont un ratio inférieur à la moyenne. Par ailleurs, on peut noter que la totalité des communes affiche un ratio inférieur à la moyenne dans 3 EPCI (Grand Paris Grand Est, Vallée Sud Grand Paris et Grand Paris Sud Est Avenir).
Les deux tableaux ci-dessous présentent les extrêmes (min et max) pour cette déviation.
# Déviation générale - déviations les plus élevées
<- st_set_geometry(com, NULL)
df <- df[order(df$gdevrel, decreasing = TRUE), ]
df
1:10,c("INSEE_COM", "NOM_COM", "LIB_EPCI_SUB", "gdevrel" ,"num" ,"denom" ,"ratio")] df[
INSEE_COM | NOM_COM | LIB_EPCI_SUB | gdevrel | num | denom | ratio |
75108 | Paris 8e Arrondissement | Paris | 802.5 | 174253.6 | 17298.1 | 10.1 |
94065 | Rungis | Grand-Orly Seine Bièvre | 780.7 | 27219.4 | 2777.5 | 9.8 |
75101 | Paris 1er Arrondissement | Paris | 604.9 | 61213.9 | 8061.4 | 7.6 |
75102 | Paris 2e Arrondissement | Paris | 407.5 | 61153.0 | 11953.9 | 5.1 |
75109 | Paris 9e Arrondissement | Paris | 287.7 | 117151.8 | 32442.7 | 3.6 |
92062 | Puteaux | Paris Ouest - La Défense | 272.0 | 77080.0 | 22572.7 | 3.4 |
75107 | Paris 7e Arrondissement | Paris | 240.9 | 70762.4 | 23397.1 | 3.0 |
75104 | Paris 4e Arrondissement | Paris | 240.3 | 41601.5 | 13794.3 | 3.0 |
75106 | Paris 6e Arrondissement | Paris | 213.8 | 45135.1 | 16819.5 | 2.7 |
94054 | Orly | Grand-Orly Seine Bièvre | 199.7 | 22609.1 | 9018.4 | 2.5 |
# Déviation générale - déviations les plus élevées
<- st_set_geometry(com, NULL)
df <- df[order(df$gdevrel, decreasing = FALSE), ]
df
1:10,c("INSEE_COM", "NOM_COM", "LIB_EPCI_SUB", "gdevrel", "num", "denom", "ratio")] df[
INSEE_COM | NOM_COM | LIB_EPCI_SUB | gdevrel | num | denom | ratio |
94001 | Ablon-sur-Seine | Grand-Orly Seine Bièvre | 20.9 | 650.9 | 2483.0 | 0.3 |
94056 | Périgny | Grand Paris Sud Est Avenir | 21.2 | 366.4 | 1375.0 | 0.3 |
94053 | Noiseau | Grand Paris Sud Est Avenir | 25.1 | 681.9 | 2162.4 | 0.3 |
93015 | Coubron | Grand Paris Grand Est | 25.4 | 692.5 | 2176.1 | 0.3 |
93033 | Gournay-sur-Marne | Grand Paris Grand Est | 25.5 | 1000.3 | 3127.3 | 0.3 |
93032 | Gagny | Grand Paris Grand Est | 26.3 | 5458.2 | 16540.3 | 0.3 |
94059 | Le Plessis-Trévise | Grand Paris Sud Est Avenir | 26.8 | 3030.1 | 9016.6 | 0.3 |
94058 | Le Perreux-sur-Marne | Paris Est Marne et Bois | 28.9 | 5718.4 | 15769.5 | 0.4 |
92022 | Chaville | Grand Paris Seine Ouest | 29.5 | 3619.7 | 9783.3 | 0.4 |
91589 | Savigny-sur-Orge | Grand-Orly Seine Bièvre | 29.7 | 6081.4 | 16302.3 | 0.4 |
Outre les arrondissements du centre-ouest parisien, largement excédentaires en termes d’emplois au regard du nombre d’actifs qui y résident, cette analyse fait très nettement ressortir Rungis, son marché et son réseau d’entreprises (plus de 1 200 localisées sur le marché), comme en atteste l’extrait de la page Web du marché international de Rungis.
4.2.2 Courbe de Lorenz et indices économétriques d’inégalité
La courbe de Lorenz est la représentation graphique de la fonction qui, à la part x des détenteurs d’un ordre de grandeur, associe la part y de la grandeur détenue. Initialement développée par Max O. Lorenz pour représenter des inégalités de distribution de revenus, la méthodologie peut être transposée à d’autres indicateurs.
Cette représentation nécessite tout d’abord d’ordonner les valeurs sur le ratio de référence, de la plus faible à la plus élevée, puis de calculer séparément la fréquence cumulée (%) pour les numérateurs numérateurs et dénominateurs.
En mettant en relation ces fréquences cumulées, on obtient le tracé de cette courbe. L’axe diagonal rouge présente l’équirépartition parfaite (50 % de x disponible pour 50 % de y).
# Indice de concentration de Gini
<- Gini(df$num)
ind_gini
# Récupération du tableau de concentration de x par rapport à y
<- Lc(df$num, df$den)
Lc.p <- data.frame(cumX = 100 * Lc.p$L, cumY = 100 * Lc.p$p)
Lp $rank <- rank(-Lp$cumX) # Rang de la commune
Lp
# Représentation des concentrations
par(mar = c(4,4,4,4), xaxs = "i", yaxs = "i", pty = "s")
plot(Lp$cumY, Lp$cumX, type = "l", col = "red", lwd = 2, panel.first = grid(10,10),
main = paste0("Courbe de Lorenz (indice de Gini = ", round(ind_gini,3),")"),
ylab = "Emplois au lieu de travail", xlab = "Actifs occupés",
ylim = c(0,100), xlim = c(0,100))
lines(c(0,100), c(0,100), lwd = 2)
# Aide à l'interprétation
<- Lp[which.min(abs(50 - Lp$cumX)), ]
xy1 <- Lp[which.min(abs(50 - Lp$cumY)), ]
xy2 <- rbind(xy1, xy2)
xy points(y = xy[,"cumX"], x = xy[,"cumY"], pch = 21, cex = 1.5, bg = "red")
text(y = xy[,"cumX"], x = xy[,"cumY"], pos = 2, cex = 0.6,
label = paste(round(xy[,"cumX"], 0), round(xy[,"cumY"], 0), sep = " , "))
On peut aussi la construire plus rapidement - mais moins esthétiquement - à l’aide des fonctions disponibles dans le package ineq
.
par(mar = c(4, 4, 4, 4), xaxs = "i", yaxs = "i", pty = "s")
plot(Lc.p,
main = paste("Courbe de Lorenz (Ind. Gini = ", round(ind_gini, 3), ")"),
ylab = "Emplois au lieu de travail",
xlab = "Actifs occupés", ylim = c(0,1), xlim = c(0,1))
L’indice de Gini (ou coefficient de Gini)10, qui mesure la surface comprise entre la droite d’équirépartition (axe diagonal) et la courbe de Lorenz, est ici de 0,596 ce qui indique une très forte concentration des emplois dans quelques communes. On peut aussi l’exprimer à l’aide d’indicateurs caractéristiques déduits de la courbe :
- les 11 communes ou arrondissements les plus favorisés concentrent 49,3 % des emplois alors qu’elles ne sont le lieu de résidence que de 22 % des actifs occupés (100 - 77,98 ; cf. tableau ci-dessous).
- à l’inverse, les 117 communes ou arrondissements les plus défavorisés sont le lieu de résidence de 50 % des actifs occupés pour seulement 14 % des emplois.
<- Lp[order(Lp$rank), ]
Lp head(Lp, 11)
cumX cumY rank
151 100.00000 100.00000 1
150 87.73242 96.36665 2
149 85.86990 95.81080 3
148 79.47888 93.16664 4
147 74.28531 90.92878 5
146 71.93682 89.88628 6
145 67.00960 87.69600 7
144 61.53241 85.03131 8
143 59.14110 83.72609 9
142 54.66146 81.12924 10
141 49.33842 77.98091 11
Dans une logique de redistribution, on peut également calculer l’indice d’équirépartition de Hoover11 qui indique la quantité d’emplois (ou d’actifs) qui devraient être déplacés d’une commune à une autre pour aboutir à l’équirépartition.
# Construction de l'indice de Hoover
<- data.frame(freqnum = df$num / sum(df$num, na.rm = TRUE),
hoov freqdenom = df$denom / sum(df$denom, na.rm = TRUE))
$dif <- hoov$freqnum - hoov$freqdenom
hoov$difabs <- abs(hoov$dif)
hoov
<- sum(hoov$difabs) / 2
hoover hoover
[1] 0.2285331
L’indice d’équirépartition est ici de 0,229 ce qui signifie que, pour aboutir à une équirépartiton générale des emplois par rapport aux actifs dans le Grand Paris, il faudrait soit déplacer 22,9 % des emplois des communes favorisées vers les communes défavorisées, soit déplacer 22,9 % des actifs des communes défavorisées vers les communes favorisées, soit combiner les deux opérations.
4.3 Déviation territoriale
Le revenu des ménages est maintenant comparé à un contexte intermédiaire, aussi appelé territorial. La valeur de chaque commune est comparée à la moyenne de sa communauté d’agglomération d’appartenance.
4.3.1 Calcul des déviations et cartographie
On utilise la fonction tdev
de MTA
. Les arguments var1
, var2
et type
sont les mêmes que pour le calcul de la précédente déviation. L’argument key
définit la variable d’appartenance sur laquelle sera calculée la déviation intermédiaire.
# Déviation territoriale - calcul
$tdevrel <- tdev(x = com, var1 = "num", var2 = "denom", type = "rel", key = "LIB_EPCI_SUB") com
Cette analyse n’a évidemment d’intérêt que si les responsables politiques de chaque territoire de la MGP sont susceptibles de mener une politique d’emploi à l’intérieur de leurs frontières. Or, les 12 territoires du Grand Paris disposent bien d’une compétence partagée avec la métropole en matière d’aménagement de l’espace. Ils peuvent donc agir sur la répartition des emplois et des actifs. Ainsi le territoire Grand Sud Est Avenir décrit son action “par l’aménagement de zones d’activité économiques ou de projets mixtes, mêlant logements, commerces et activités, à l’instar de l’agroquartier de Noiseau, du centre commercial du Grand Ensemble à Alfortville ou encore de la Ballastière Nord à Limeil-Brévannes”.
Les configurations spatiales révélées par la représentation cartographique sont bien différentes de celles mises en évidence dans le contexte de la MGP, puisqu’on s’intéresse ici, au sein de chaque territoire, aux communes qui concentrent les emplois au regard de leur population active résidente. Les communes caractérisées par la valeur maximale de déviation au sein de leur EPCI sont labellisées en rouge sur la carte, et la valeur minimale en bleu.
# Déviation territoriale - cartographie
mf_init(epci, expandBB = c(0,0.2,0,0), theme = mta_theme)
mf_map(x = com, var = "tdevrel", type = "choro", pal = devpal,
breaks = c(min(com$tdevrel), 75, 90, 100, 111, 133, max(com$tdevrel)),
border = "white", lwd = 0.2, leg_pos = "left", leg_val_rnd = 0,
leg_title = paste0("Déviation au contexte territorial\n",
"(100 = moyenne de l'EPCI\nd'appartenance)"), add = TRUE)
mf_map(x = epci, col = NA, border = "black", lwd = 1, add = TRUE)
mf_title("Déviation territoriale")
mf_scale(size = 5, col = "black", pos = c(666000, 6839000))
mf_credits(txt = credits, pos = "rightbottom", cex = 0.5)
# Extraction du maximum et du minimum par EPCI, puis affichage sur la carte
<- aggregate(tdevrel ~ LIB_EPCI_SUB, com, FUN = max)
df.agg <- merge(df.agg, com)
df.max <- st_as_sf(df.max)
df.max
<- aggregate(tdevrel ~ LIB_EPCI_SUB, com, FUN = min)
df.agg <- merge(df.agg, com)
df.min <- st_as_sf(df.min)
df.min
mf_label(x = df.max, var = "NOM_COM", cex = 0.6, halo = TRUE, bg = "white",
col = "#8B1713")
mf_label(x = df.min, var = "NOM_COM", cex = 0.6, halo = TRUE, bg = "white",
col = "#135D89")
Cette analyse souligne encore ici le comportement singulier de Rungis dans ce contexte territorial : avec un indice 1 025, il montre une concentration de l’emploi plus de 10 fois plus élevée que la moyenne de son EPCI d’appartenance.
Pour le reste, hormis le cas particulier des arrondissements centraux parisiens faiblement peuplés et offrant une grande concentration d’emplois, les valeurs descendent rapidement sous l’indice 200 :
INSEE_COM | NOM_COM | LIB_EPCI_SUB | tdevrel | num | denom | ratio |
94065 | Rungis | Grand-Orly Seine Bièvre | 1025.4 | 27219.4 | 2777.5 | 9.8 |
75108 | Paris 8e Arrondissement | Paris | 583.0 | 174253.6 | 17298.1 | 10.1 |
75101 | Paris 1er Arrondissement | Paris | 439.5 | 61213.9 | 8061.4 | 7.6 |
75102 | Paris 2e Arrondissement | Paris | 296.1 | 61153.0 | 11953.9 | 5.1 |
94054 | Orly | Grand-Orly Seine Bièvre | 262.3 | 22609.1 | 9018.4 | 2.5 |
92036 | Gennevilliers | Boucle Nord de Seine | 240.8 | 40572.3 | 17438.4 | 2.3 |
75109 | Paris 9e Arrondissement | Paris | 209.0 | 117151.8 | 32442.7 | 3.6 |
94003 | Arcueil | Grand-Orly Seine Bièvre | 190.0 | 17053.9 | 9393.5 | 1.8 |
92062 | Puteaux | Paris Ouest - La Défense | 188.8 | 77080.0 | 22572.7 | 3.4 |
93073 | Tremblay-en-France | Paris Terres d'Envol | 181.0 | 20551.0 | 14375.4 | 1.4 |
# Déviation générale - déviations les plus élevées
<- st_set_geometry(com, NULL)
df <- df[order(df$tdevrel, decreasing = TRUE), ]
df
1:10,c("INSEE_COM", "NOM_COM", "LIB_EPCI_SUB", "tdevrel", "num", "denom", "ratio")] df[
S’agissant des valeurs minimales sur cette déviation, plusieurs communes hébergeant un nombre significatif d’actifs (Épinay-sur-Seine, Savigny-sur-Orge, L’Haÿ-les-Roses) sont caractérisées par des valeurs très basses (indice inférieur à 50, ratio deux fois inférieur à la moyenne de leur EPCI d’appartenance) :
INSEE_COM | NOM_COM | LIB_EPCI_SUB | tdevrel | num | denom | ratio |
94001 | Ablon-sur-Seine | Grand-Orly Seine Bièvre | 27.4 | 650.9 | 2483.0 | 0.3 |
92022 | Chaville | Grand Paris Seine Ouest | 31.3 | 3619.7 | 9783.3 | 0.4 |
94056 | Périgny | Grand Paris Sud Est Avenir | 31.6 | 366.4 | 1375.0 | 0.3 |
92077 | Ville-d'Avray | Grand Paris Seine Ouest | 33.8 | 2034.9 | 5090.0 | 0.4 |
93031 | Épinay-sur-Seine | Plaine Commune | 36.8 | 9051.3 | 20172.9 | 0.4 |
94053 | Noiseau | Grand Paris Sud Est Avenir | 37.4 | 681.9 | 2162.4 | 0.3 |
91589 | Savigny-sur-Orge | Grand-Orly Seine Bièvre | 39.0 | 6081.4 | 16302.3 | 0.4 |
94059 | Le Plessis-Trévise | Grand Paris Sud Est Avenir | 39.9 | 3030.1 | 9016.6 | 0.3 |
92033 | Garches | Paris Ouest - La Défense | 40.1 | 5536.1 | 7637.6 | 0.7 |
94038 | L'Haÿ-les-Roses | Grand-Orly Seine Bièvre | 41.6 | 5147.9 | 12957.7 | 0.4 |
# Déviation générale - déviations les moins élevées
<- df[order(df$tdevrel, decreasing = FALSE), ]
df
1:10,c("INSEE_COM", "NOM_COM", "LIB_EPCI_SUB", "tdevrel", "num", "denom", "ratio")] df[
Cette analyse donne aussi à voir la proximité de communes aux caractéristiques bien différentes en termes d’emplois, comme par exemple Fontenay-sous-Bois qui, au sein de son EPCI d’appartenance, affiche le plus d’emplois au regard de son nombre d’actifs, et que la mairie aime à présenter comme “la petite Défense de l’est-parisien”…
A quelques kilomètres seulement, Le Perreux-sur-Marne concentre le moins d’emplois dans ce même contexte territorial. Les commentaires laissés sur ville-ideale.fr, un site Web qui propose des classements entre villes à partir des notes et avis laissés par leurs habitants, identifie bien les contradictions inhérentes à ce type de communes : d’un côté un cadre de vie globalement agréable, bien connecté au reste de la Métropole, de l’autre des critiques sur le fait que les constructions récentes de logements sont jugées trop massives et l’offre commerciale de proximité pas suffisamment présente sur le territoire communal.
4.3.2 Boîtes à moustaches
La méthode de représentation en boîtes à moustaches, ou boxplot, est efficace pour visualiser et comparer des au sein de populations de tailles différentes.
Quelques pré-traitements sont nécessaires afin d’améliorer la visualisation. Les géométries sont retirées du jeu de données initial, les individus sont ordonnés selon le ratio moyen, on affecte un vecteur de couleur pour ces boxplots.
La boxplot prend alors en ordonnées les valeurs de la déviation générale et regroupe en abscisses ces valeurs par EPCI. L’argument varwidth
permet de rendre la largeur de la boîte à moustaches proportionnelle au nombre d’observations (le nombre de communes). L’argument range
gère les valeurs extrêmes et les limites des moustaches : les valeurs supérieures et inférieures à la valeur de range
multiplié par la valeur de l’interquartile (par défaut 1,5) ne sont pas incluses dans les moustaches. Si l’argument range
est paramétré à 0, les moustaches vont jusqu’aux valeurs extrêmes.
par(cex.lab = 1, cex.axis = 0.75, mar = c(4, 4, 2, 2))
# Ordonner les EPCI selon la moyenne du ratio
$EPCI_SUB <- with(df, reorder(EPCI_SUB, gdevrel, mean, na.rm = TRUE))
df
# Gestion des labels et des couleurs
<- aggregate(x = df[,"gdevrel"], by = list(LIB_EPCI_SUB = df$LIB_EPCI_SUB),
col FUN = mean)
<- merge(col, colEpt, by = "LIB_EPCI_SUB", by.y = "epts")
col <- col[order(col$x),]
col <- as.vector(col$cols)
cols
# Supprimer levels inexistants
<- droplevels(df)
df
# Boxplot
<- boxplot(df$gdevrel ~ df$EPCI_SUB, col = cols,
bp ylab = "Déviation générale", xlab = "Déviation territoriale",
varwidth = TRUE, # boîtes proportionnelles au nombre d'observations
boxwex = 1, # largeur entre les boïtes
range = 1.5, # gestion des valeurs extrêmes (r * IQR)
outline = TRUE, # visualisation des extrêmes
las = 1)
# Lignes de repère horizontales calées sur la valeur maximale
abline (h = seq(0, round(max(df$gdevrel),-1), 25), col = "#00000060",
lwd = 0.5, lty = 3)
# Représenter les valeurs moyennes
<- tapply(df$gdevrel, df$EPCI_SUB, mean, na.rm = TRUE)
xi points(xi, col = "#7C0000", pch = 19)
# Légende
legend("topleft", legend = rev(as.vector(col$LIB_EPCI_SUB)), pch = 15,
col = rev(as.vector(col$cols)), cex = 0.8, pt.cex = 1.5)
Appliqué à notre exemple, cette représentation graphique permet d’apprécier, pour notre indicateur d’intérêt, la dispersion statistique au sein de chaque EPCI. Pour les EPCI ayant une déviation générale globalement faible, on peut tout d’abord distinguer les EPCI homogènes (pas de valeurs exceptionnelles, intervalle interquartile faible : T9, T10, T2) de ceux ayant une dispersion des valeurs plus importantes (T11, T7, T8, T3 et T6). Les EPCI avec les valeurs moyennes les plus importantes sont aussi ceux ayant les valeurs exceptionnelles les plus élevées, T1 et T12 notamment : avec deux communes dont la déviation générale est supérieure à 1,5 fois la valeur de l’intervalle interquartile de leur EPCI d’appartenance.
On peut également compléter l’analyse descriptive par un modèle statistique d’analyse de la variance12 du ratio emploi par actif (Z) en fonction du territoire d’appartenance (T) en introduisant une pondération par le dénominateur qui est ici le nombre d’actifs (P).
# Paramètres du modèle
<- df$ratio
Z <- as.factor(df$EPCI_SUB)
T <- df$denom
P
# Analyse de variance
<- lm(Z ~ T, weights = P)
model summary(model)
Call:
lm(formula = Z ~ T, weights = P)
Weighted Residuals:
Min 1Q Median 3Q Max
-268.51 -37.49 -13.10 19.81 1097.65
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.62363 0.34154 1.826 0.07002 .
TT11 0.21892 0.51140 0.428 0.66926
TT10 0.06767 0.44727 0.151 0.87997
TT2 0.19589 0.47241 0.415 0.67903
TT7 0.16623 0.51100 0.325 0.74545
TT8 0.36310 0.48182 0.754 0.45237
TT3 0.55967 0.49321 1.135 0.25845
TT6 0.59654 0.48578 1.228 0.22154
TT5 0.34275 0.46742 0.733 0.46463
TT12 0.33209 0.42678 0.778 0.43782
TT4 1.18528 0.43768 2.708 0.00762 **
TT1 1.10423 0.36763 3.004 0.00317 **
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 138.9 on 138 degrees of freedom
Multiple R-squared: 0.1821, Adjusted R-squared: 0.1169
F-statistic: 2.793 on 11 and 138 DF, p-value: 0.0026
Ce modèle permet tout d’abord de confirmer la présence d’inégalités significatives entre les territoires (\(p-value\) < 0,01). Il indique que l’appartenance à un territoire explique une part non négligeable des inégalités observées entre les communes (\(R^2\) = 18 %). Il permet enfin de repérer les écarts statistiquement les plus significatifs entre le territoire de référence (T1 = Paris) et les autres territoires.
4.4 Déviation spatiale
La valeur de chaque commune est maintenant comparée à la moyenne de son voisinage géographique, appelé contexte spatial.
La fonction sdev
prend toujours le numérateur et le dénominateur utilisés pour le calcul du ratio. La déviation sera calculée selon le critère de contiguïté d’ordre 1 à n grâce à l’argument order
(valeur attendue 1 à n). Nous retenons ici le critère de contiguïté d’ordre 1, c’est à dire toutes les communes qui partagent une limite communale.
# Calcul de la déviation spatiale
$sdevrel <- sdev(x = com,
comvar1 = "num",
var2 = "denom",
type = "rel",
order = 1)
Ce nouveau contexte permet d’évaluer les pôles locaux d’emplois et ainsi indirectement de qualifier les principales discontinuités territoriales qui structurent l’espace d’étude.
Pour souligner graphiquement ces discontinuités, nous associons à la cartographie des déviations spatiales celle des discontinuités territoriales : les plus fortes discontinuités (valeur de ratio max. / valeur de ratio min. entre deux communes contiguës) sont ainsi extraites. Sur la carte, plus la ligne est épaisse, plus la discontinuité est importante.
# Déviation spatiale - cartographie
mf_init(epci, expandBB = c(0,0.2,0,0), theme = mta_theme)
mf_map(x = com, var = "sdevrel", type = "choro", pal = devpal,
breaks = c(min(com$sdevrel), 75, 90, 100, 111, 133, max(com$sdevrel)),
border = "white", lwd = 0.2, leg_pos = "topleft2", leg_val_rnd = 0,
leg_title = paste0("Déviation au contexte spatial\n",
"(100 = moyenne des communes contiguës)"), add = TRUE)
mf_map(x = epci, col = NA, border = "black", lwd = 1, add = TRUE)
mf_title(paste0("Déviation spatiale - Emploi au lieu de travail ",
"- Actifs occupés au lieu de résidence, 2016"))
mf_scale(size = 5, col = "black", pos = c(666000, 6839000))
mf_credits(txt = credits, pos = "rightbottom", cex = 0.5)
# Extraction des limites communales
<- st_intersection(st_buffer(com, 5), st_buffer(com, 5))
borders <- st_cast(borders,"MULTILINESTRING")
borders <- borders[borders$INSEE_COM != borders$INSEE_COM.1, ]
borders
# Calcul des discontinuités
$disc <- pmax(borders$ratio/borders$ratio.1,
borders$ratio.1/borders$ratio)
borders
# Ne conserver que les 25 % les plus importantes
<- as.numeric(quantile(borders$disc, probs = c(1 - 0.25)))
val <- borders[borders$disc >= val,]
borders
# Cartographie des discontinuités
mf_map(x = borders, var = "disc", type = "prop", lwd_max = 20,
border = "black", col = "black", leg_pos = "bottomleft",
leg_title = "Discontinuités relatives\n(max/min sur le ratio de référence)",
add = TRUE)
# Extraire top 10 max./min.
<- com[order(com$sdevrel, decreasing = TRUE), ]
df.max <- df.max[1:10,]
df.max
<- com[order(com$sdevrel, decreasing = FALSE), ]
df.min <- df.min[1:10,]
df.min
mf_label(x = df.max, var = "NOM_COM", cex = 0.6, halo = TRUE, bg = "white",
col = "#8B1713")
mf_label(x = df.min, var = "NOM_COM", cex = 0.6, halo = TRUE, bg = "white",
col = "#135D89", overlap = FALSE)
Cette carte montre ainsi que les arrondissements centraux parisiens constituent bien un ensemble cohérent pourvoyeur d’emplois et que cela crée une discontinuité territoriale forte au sein de l’espace parisien. Dans le reste de la métropole, plusieurs pôles locaux d’emplois émergent assez nettement. La valeur maximale de discontinuité (14,5) est observée entre les communes de Rungis (emploi au lieu de travail / actifs = 9,8) et de Fresnes (0,7). Cela peut laisser présager d’un échange potentiel de travailleurs entre ces deux communes. Enfin, le sud-ouest de la métropole semble relativement homogène puisqu’aucune valeur exceptionnelle dans un voisinage géographique proche n’émerge nettement.
S’agissant des arrondissements centraux parisiens, l’extrême densité de petits commerces explique en grande partie les écarts.
Localement, on voit aussi apparaître dans le nord de la métropole un ensemble de communes ayant des déviations locales parmi les plus faibles de la métropole (Pierrefitte-sur-Seine, Épinay-sur-Seine, Stains).
# Déviation générale - déviations les plus élevées
<- st_set_geometry(df.max, NULL)
df
1:10,c("INSEE_COM", "NOM_COM", "LIB_EPCI_SUB", "sdevrel", "num", "denom", "ratio")] df[
INSEE_COM | NOM_COM | LIB_EPCI_SUB | sdevrel | num | denom | ratio |
94065 | Rungis | Grand-Orly Seine Bièvre | 585.8 | 27219.4 | 2777.5 | 9.8 |
75108 | Paris 8e Arrondissement | Paris | 361.5 | 174253.6 | 17298.1 | 10.1 |
92036 | Gennevilliers | Boucle Nord de Seine | 257.1 | 40572.3 | 17438.4 | 2.3 |
75101 | Paris 1er Arrondissement | Paris | 195.8 | 61213.9 | 8061.4 | 7.6 |
93008 | Bobigny | Est Ensemble | 191.5 | 29377.2 | 17483.8 | 1.7 |
93013 | Le Bourget | Paris Terres d'Envol | 191.4 | 8472.5 | 6657.6 | 1.3 |
93066 | Saint-Denis | Plaine Commune | 188.0 | 86933.5 | 42087.3 | 2.1 |
94054 | Orly | Grand-Orly Seine Bièvre | 186.8 | 22609.1 | 9018.4 | 2.5 |
94003 | Arcueil | Grand-Orly Seine Bièvre | 180.4 | 17053.9 | 9393.5 | 1.8 |
94028 | Créteil | Grand Paris Sud Est Avenir | 174.9 | 53177.3 | 37200.2 | 1.4 |
# Déviation générale - déviations les moins élevées
<- st_set_geometry(df.min, NULL)
df
1:10,c("INSEE_COM", "NOM_COM", "LIB_EPCI_SUB", "sdevrel","num","denom","ratio")] df[
INSEE_COM | NOM_COM | LIB_EPCI_SUB | sdevrel | num | denom | ratio |
93059 | Pierrefitte-sur-Seine | Plaine Commune | 37.6 | 5786.0 | 10313.5 | 0.6 |
93031 | Épinay-sur-Seine | Plaine Commune | 38.5 | 9051.3 | 20172.9 | 0.4 |
92004 | Asnières-sur-Seine | Boucle Nord de Seine | 41.0 | 23496.3 | 40233.3 | 0.6 |
94001 | Ablon-sur-Seine | Grand-Orly Seine Bièvre | 41.9 | 650.9 | 2483.0 | 0.3 |
94056 | Périgny | Grand Paris Sud Est Avenir | 43.2 | 366.4 | 1375.0 | 0.3 |
93072 | Stains | Plaine Commune | 44.7 | 8572.7 | 13928.5 | 0.6 |
92075 | Vanves | Grand Paris Seine Ouest | 45.0 | 7912.5 | 13010.5 | 0.6 |
94044 | Limeil-Brévannes | Grand Paris Sud Est Avenir | 46.3 | 6062.1 | 11992.6 | 0.5 |
92077 | Ville-d'Avray | Grand Paris Seine Ouest | 46.3 | 2034.9 | 5090.0 | 0.4 |
93033 | Gournay-sur-Marne | Grand Paris Grand Est | 46.6 | 1000.3 | 3127.3 | 0.3 |
En appliquant les éléments de méthode issus de la statistique spatiale, on peut aussi proposer une analyse d’autocorrélation spatiale13 fondée sur l’indice de Moran et les indicateurs locaux associés, à l’aide du package spdep
créé par Roger Bivand. L’analyse ci-dessous utilise comme variable dépendante le logarithme du rapport emploi sur actif (pour disposer d’une distribution plus gaussienne).
# Extraction et mise en forme
<- com[,c("INSEE_COM", "NOM_COM", "ratio", "geom")]
Moran names(Moran) <- c("code", "nom", "Y", "geom")
row.names(Moran) <- Moran$code
# Normalisation log
$Y <- log(Moran$Y)
Moran$Y_std <- scale(Moran$Y)
Moran
# Table de contiguïté
<- poly2nb(Moran, row.names = Moran$code)
contig_nb <- nb2listw(contig_nb)
contig_nb_w
# Moyenne locale
$Y_lag <- lag.listw(contig_nb_w, Moran$Y)
Moran$Y_std_lag <- lag.listw(contig_nb_w, Moran$Y_std)
Moran
# Calcul de l'indice de Moran
cor.test(Moran$Y, Moran$Y_lag)
Pearson's product-moment correlation
data: Moran$Y and Moran$Y_lag
t = 10.814, df = 148, p-value < 2.2e-16
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
0.5641950 0.7452904
sample estimates:
cor
0.6643838
Il existe une autocorrélation spatiale positive et très significative (I = +0,66, p < 0,001) qui met en évidence un regroupement spatial des zones ayant le même niveau. Autrement dit, les zones favorisées sont généralement entourées de zones favorisées et les zones défavorisées entourées de zones défavorisées.
On peut enfin extraire les indices locaux d’autocorrélation spatiale (LISA)14 qui permettront de repérer les situations les plus exceptionnelles de regroupement spatial de zones favorisées ou de zones défavorisées.
# Local Moran : significativité des valeurs (Z.Ii)
<- localmoran(Moran$Y, contig_nb_w, alternative = "two.sided")
L.Moran <- as.data.frame(L.Moran)
L.Moran $code <- row.names(L.Moran)
L.Moran
# Jointure avec les indices de Moran calculés en amont
<- merge(Moran, L.Moran, by = "code", all.x = TRUE)
Moran
# Interprétation des valeurs en quadrants
$q1 <- as.factor(Moran$Y_std > 0)
Moranlevels(Moran$q1) <- c("Bas","Haut")
$q2 <- as.factor(Moran$Y_std_lag > 0)
Moranlevels(Moran$q2) <- c("Bas","Haut")
# Synthèse des quadrants et définition d'un seuil de valeurs non significatives
<- 0.75
signThr $q <- paste(as.character(Moran$q1), as.character(Moran$q2), sep = "-")
Moran$q <- ifelse(abs(Moran$Z.Ii) < signThr, "Non Sign.", Moran$q)
Moran
# Réorganiser les valeurs des quadrants par ordre alphabétique (gestion des couleurs)
<- Moran[order(as.factor(Moran$q)),]
Moran $q <- as.factor(Moran$q)
Moran<- c("blue", "skyblue2", "lightpink", "red", "#f5f5f5")[as.factor(Moran$q)]
cols
# Graphique
par(mfrow = c(1,2), mar = c(2,4,2,2), pty = "s")
plot(x = Moran$Y_std, y = Moran$Y_std_lag, bg = cols, asp = 1,pch = 21,
cex = 0.8, cex.main = 1, cex.lab = 0.6, cex.axis = 0.6,
main = "Diagramme de Moran", xlab = "Valeur observée",
ylab = "Moyenne des communes voisines")
abline(h = 0, v = 0)
<- lm(Moran$Y_std_lag ~ Moran$Y_std)
lm.Moran abline(lm.Moran, lty = 2, lwd = 1, col = "red")
legend(-1, -2, "Bas-Bas", xjust = 0.5, yjust = 0.5, cex = 0.9,
x.intersp = -0.5, y.intersp = 0.1, bg = "#ffffff90")
legend(-1, 2, "Bas-Haut", xjust = 0.5, yjust = 0.5, cex = 0.9,
x.intersp = -0.5, y.intersp = 0.1, bg = "#ffffff90")
legend(2, -2, "Haut-Bas", xjust = 0.5, yjust = 0.5, cex = 0.9,
x.intersp = -0.5, y.intersp = 0.1, bg = "#ffffff90")
legend(2, 2, "Haut-Haut", xjust = 0.5, yjust = 0.5, cex = 0.9,
x.intersp = -0.5, y.intersp = 0.1, bg = "#ffffff90")
legend(0, 0, "Non Sign.", xjust = 0.5, yjust = 0.5, cex = 0.9,
x.intersp = -0.5, y.intersp = 0.1, bg = "#ffffff90")
# Cartographie
mf_init(epci, expandBB = c(0.02, 0.02, 0.02, 0.02), theme = mta_theme)
mf_map(type = "typo", x = Moran, var = "q", val_order = levels(Moran$q),
pal = unique(cols), border = "white", lwd = 0.2, leg_val_cex = 0.7,
leg_title = NA, leg_pos = "bottomleft", add = TRUE)
mf_map(epci, col = NA, border = "black", lwd = 1, add = TRUE)
mf_title("Autocorrélation spatiale - Synthèse")
mf_scale(size = 5, col = "black", pos = c(666000, 6839000))
mf_credits(txt = credits, pos = "rightbottom", cex = 0.5)
La classe “Haut-Bas” décrit les situations exceptionnellement élevées de concentration d’emplois au regard du voisinage géographique. Avec le seuil statistique retenu (0,75), elle fait ressortir quatre communes : d’un côté les préfectures de département (Bobigny pour la Seine-Saint-Denis et Créteil pour le Val-de-Marne) - qui concentrent l’emploi dans l’administration publique et la santé, de l’autre les pôles d’emplois (grandes zones d’activité) significatifs dans la MGP (Gennevilliers et Saint-Denis). Le port autonome de Paris, plateforme multimodale d’Île-de-France localisée à Gennevilliers, concentre en effet 270 entreprises. De son côté, la zone de la Plaine Saint-Denis, principalement localisée à Saint-Denis, constitue le premier pôle d’emplois du département, essentiellement dans le domaine tertiaire.
Avec le seuil retenu, la seule commune qui apparaît dans la catégorie “Bas-Haut” (faible concentration de l’emploi au regard de son voisinage géographique) est Asnières-sur-Seine, principalement parce qu’elle est voisine de deux communes pourvoyeuses d’emplois : Gennevilliers au nord et Courbevoie au sud (quartier de La Défense).
4.5 Redistributions ?
4.5.1 Relocalisation d’emplois
Les redistributions permettent d’aborder différemment la situation. On ne s’intéresse plus ici aux inégalités en tant que telles, mais plutôt au processus statistique (transfert de numérateur d’un groupe de communes à d’autres) nécessaire pour aboutir à l’état d’équilibre au sein de chacun des contextes territoriaux.
Si ce calcul repose sur une formulation mathématique, on comprendra bien que la quantification de ces transferts peut revêtir une signification politique extrêmement forte : il est ici question d’évaluer le nombre d’emplois à transférer d’une commune à l’autre pour disposer en tout lieu d’un même niveau d’emploi, toute chose étant égale par ailleurs par rapport à la population active résidente.
Comme précédemment, on peut envisager ces transferts selon différentes approches : un rééquilibrage de l’emploi à l’échelle de la métropole (déviation globale) ou au sein de l’EPCI (déviation territoriale). Même s’il est évident que la mise en oeuvre d’un équilibre entre l’offre et la demande d’emploi ne peut constituer un objectif politique en tant que tel, raisonner sur des masses pour qualifier les inégalités territoriales permet de les approcher avec un sens tout autre.
Pour calculer ces déviations dans MTA
, il suffit de préciser type = abs
. Nous allons ici nous intéresser spécifiquement aux déviations générale (MGP) et territoriale (EPCI d’appartenance) qui sont aussi des champs d’action politique comme nous l’avons vu précédemment.
# Déviation générale
$gdevabs <- gdev(x = com, var1 = "num", var2 = "denom", type = "abs")
com
# Déviation territoriale
$tdevabs <- tdev(x = com, var1 = "num", var2 = "denom", type = "abs", key = "LIB_EPCI_SUB")
com
# Déviation spatiale
$sdevabs <- sdev(x = com, var1 = "num", var2 = "denom", type = "abs", order = 1) com
Les deux cartes ci-dessous représentent la masse d’emplois (taille des cercles) que les communes excédentaires devraient transférer (cercles rouges) aux communes déficitaires (cercles bleus).
# Sens des déviations
$gdevsign <- ifelse(com$gdevabs > 0, "Excédent d'emplois", "Déficit d'emplois")
com$tdevsign <- ifelse(com$tdevabs > 0, "Excédent d'emplois", "Déficit d'emplois")
com
# Déviation globale
par(mfrow = c(1,2))
mf_init(epci, expandBB = c(0.02, 0.02, 0.02, 0.02), theme = mta_theme)
mf_map(epci, col = "peachpuff", border = "black", lwd = 1, add = TRUE)
mf_map(x = com, var = c("gdevabs", "gdevsign"), type = "prop_typo", inches = 0.2,
val_order = c("Excédent d'emplois", "Déficit d'emplois"),
pal = c("#F6533A","#515FAA"), val_max = max(abs(com$gdevabs)),
leg_pos = c("n","n"), border = "white", leg_val_rnd = -2)
mf_legend(type = "typo", pos = "bottomleft", pal = c("#F6533A","#515FAA"),
title = "Sens de la redistribution",
val = c("Excédent d'emplois", "Déficit d'emplois"))
mf_title("Contexte de la métropole du Grand Paris")
mf_scale(size = 5, col = "black", pos = c(666000, 6839000))
# Déviation territoriale
mf_init(epci, expandBB = c(0.02, 0.02, 0.02, 0.02), theme = mta_theme)
mf_map(epci, col = "peachpuff", border = "black", lwd = 1, add = TRUE)
mf_map(x = com, var = c("tdevabs", "tdevsign"), type = "prop_typo", inches = 0.2,
val_order = c("Excédent d'emplois", "Déficit d'emplois"),
pal = c("#F6533A","#515FAA"), leg_pos = c("n","n"), border = "white")
mf_legend(type = "prop", pos = "bottomleft", col = "lightgrey", border = "white",
title = "Emplois à redistribuer\npour atteindre l'équilibre\ndu contexte",
val = c(15000, 70000, max(abs(com$gdevabs))), inches = 0.2)
mf_title("Contexte de l'EPCI d'appartenance")
mf_credits(txt = credits, pos = "rightbottom", cex = 0.5)
On s’intéresse ensuite aux communes qui devraient le plus contribuer ou recevoir d’emplois dans les contextes de la MGP et de l’EPCI d’appartenance. Les résultats sont ici classés selon la part de l’emploi que la redistribution implique dans le contexte général (gdevabsPerc).
# Déviation générale - top 10 des contributeurs...
<- st_set_geometry(com, NULL)
df
# ... au regard de leur masse de numérateur
$gdevabsPerc <- df$gdevabs / df$num * 100
df$tdevabsPerc <- df$tdevabs / df$num * 100
df<- df[order(df$gdevabsPerc, decreasing = TRUE), ]
df
1:10, c("INSEE_COM", "NOM_COM", "LIB_EPCI_SUB", "num",
df["gdevabs", "gdevabsPerc", "tdevabs", "tdevabsPerc")]
INSEE_COM | NOM_COM | LIB_EPCI_SUB | num | gdevabs | gdevabsPerc | tdevabs | tdevabsPerc |
75108 | Paris 8e Arrondissement | Paris | 174253.6 | 152539.9 | 87.5 | 144365.0 | 82.8 |
94065 | Rungis | Grand-Orly Seine Bièvre | 27219.4 | 23732.8 | 87.2 | 24564.8 | 90.2 |
75101 | Paris 1er Arrondissement | Paris | 61213.9 | 51094.7 | 83.5 | 47284.9 | 77.2 |
75102 | Paris 2e Arrondissement | Paris | 61153.0 | 46147.7 | 75.5 | 40498.4 | 66.2 |
75109 | Paris 9e Arrondissement | Paris | 117151.8 | 76427.5 | 65.2 | 61095.3 | 52.2 |
92062 | Puteaux | Paris Ouest - La Défense | 77080.0 | 48745.2 | 63.2 | 36247.9 | 47.0 |
75107 | Paris 7e Arrondissement | Paris | 70762.4 | 41392.7 | 58.5 | 30335.4 | 42.9 |
75104 | Paris 4e Arrondissement | Paris | 41601.5 | 24286.0 | 58.4 | 17766.9 | 42.7 |
75106 | Paris 6e Arrondissement | Paris | 45135.1 | 24022.2 | 53.2 | 16073.4 | 35.6 |
94054 | Orly | Grand-Orly Seine Bièvre | 22609.1 | 11288.7 | 49.9 | 13990.0 | 61.9 |
Ainsi, pour un rééquilibrage, c’est 87,5 % de l’emploi (174 253 emplois) du 8e arrondissement de Paris qui devraient être transférés à des communes déficitaires de la MGP.
Si l’on place la redistribution dans le contexte de l’EPCI d’appartenance (tdevabs, tdevabsPerc), c’est 24 564 emplois de Rungis (90,2 % du total des emplois localisés dans la ville) qui devraient être attribués aux autres communes de la communauté d’agglomération de Grand Orly Seine Bièvre.
Dans le sens inverse des redistributions, Savigny-sur-Orge devrait recevoir 14 382 emplois des communes excédentaires de la MGP, soit 236 % du nombre d’emplois localisés actuellement dans ses limites communales (6 081). Dans le contexte de Grand Orly Seine Bièvre, un rééquilibrage n’impliquerait le transfert que de 9 499 emplois sur son territoire.
<- df[order(df$gdevabsPerc, decreasing = FALSE), ]
df
1:10, c("INSEE_COM", "NOM_COM", "LIB_EPCI_SUB", "num",
df["gdevabs", "gdevabsPerc", "tdevabs", "tdevabsPerc")]
INSEE_COM | NOM_COM | LIB_EPCI_SUB | num | gdevabs | gdevabsPerc | tdevabs | tdevabsPerc |
94001 | Ablon-sur-Seine | Grand-Orly Seine Bièvre | 650.9 | -2465.9 | -378.8 | -1722.1 | -264.6 |
94056 | Périgny | Grand Paris Sud Est Avenir | 366.4 | -1359.6 | -371.1 | -792.1 | -216.2 |
94053 | Noiseau | Grand Paris Sud Est Avenir | 681.9 | -2032.5 | -298.0 | -1140.0 | -167.2 |
93015 | Coubron | Grand Paris Grand Est | 692.5 | -2039.1 | -294.4 | -664.6 | -96.0 |
93033 | Gournay-sur-Marne | Grand Paris Grand Est | 1000.3 | -2925.3 | -292.4 | -950.0 | -95.0 |
93032 | Gagny | Grand Paris Grand Est | 5458.2 | -15304.2 | -280.4 | -4856.8 | -89.0 |
94059 | Le Plessis-Trévise | Grand Paris Sud Est Avenir | 3030.1 | -8288.1 | -273.5 | -4566.8 | -150.7 |
94058 | Le Perreux-sur-Marne | Paris Est Marne et Bois | 5718.4 | -14076.5 | -246.2 | -5183.1 | -90.6 |
92022 | Chaville | Grand Paris Seine Ouest | 3619.7 | -8661.0 | -239.3 | -7956.9 | -219.8 |
91589 | Savigny-sur-Orge | Grand-Orly Seine Bièvre | 6081.4 | -14382.3 | -236.5 | -9499.1 | -156.2 |
4.5.2 Synthèse des rééquilibrages
La fonction mas
du package MTA
permet la synthèse de toutes ces redistributions. Si l’on souhaite que l’ensemble des communes de la MGP aient un ratio emploi / actifs au lieu de résidence identique, ce sont 892 741 emplois (22,9 % de l’emploi total) qui seraient à relocaliser dans ses communes déficitaires. Dans un contexte de rééquilibrage au sein de chaque EPCI, ce seraient 717 365 emplois (18,3 % de l’emploi total). Enfin dans un contexte de rééquilibrage local (critère de contiguïté, non exploré ci-dessus), ce seraient 488 685 emplois qui faudrait relocaliser.
# Multiscalar absolute synthesis
mas(x = com, num = "num", gdevabs = "gdevabs", tdevabs = "tdevabs", sdevabs = "sdevabs")
Numerator to be transfered Share of the total (%)
General redistribution 892741.5 22.85
Territorial redistribution 717365.5 18.36
Spatial redistribution 622891.1 15.95
Overall Numerator mass 3906398.6 100.00
En intervertissant le numérateur et le dénominateur, le problème est inversé puisque il s’agit d’évaluer le nombre d’actifs que les communes pourvoyeuses d’emplois auraient à accueillir pour assurer l’équilibre. Si l’on souhaite que les travailleurs des petits commerces parisiens résident sur place ou que les cadres de La Défense disposent d’un petit mobil-home à côté des tours dans lesquelles ils travaillent, ces communes excédentaires devraient accueillir plus de 710 000 actifs résidant dans d’autres communes de la MGP.
# Déviation générale
$gdevabs <- gdev(x = com, var1 = "denom", var2 = "num", type = "abs")
com
# Déviation territoriale
$tdevabs <- tdev(x = com, var1 = "denom", var2 = "num", type = "abs", key = "LIB_EPCI_SUB")
com
# Déviation spatiale
$sdevabs <- sdev(x = com, var1 = "denom", var2 = "num", type = "abs", order = 1)
com
# Multiscalar absolute synthesis
mas(x = com, num = "denom", gdevabs = "gdevabs", tdevabs = "tdevabs", sdevabs = "sdevabs")
Numerator to be transfered Share of the total (%)
General redistribution 711195.8 22.85
Territorial redistribution 553946.4 17.80
Spatial redistribution 488685.8 15.70
Overall Numerator mass 3112003.1 100.00
5 Synthèse des déviations
Des typologies synthétiques sont proposées pour résumer le positionnement des unités territoriales au regard de deux déviations (fonction bidev
) ou des trois déviations (fonction mst
). L’usage de ces typologies est particulièrement utile pour mettre en évidence les situations d’avantage absolu (valeurs supérieures à la moyenne pour les 3 contextes), de désavantage absolu (inférieures sur les 3 contextes) ou de contradiction (supérieures ou inférieures selon les contextes).
5.1 Analyse croisée (2 déviations)
La fonction bidev
évalue le positionnement de chaque unité territoriale au regard de deux déviations (dev1
et dev2
, préalablement calculées) et l’éloignement statistique (distance euclidienne) aux valeurs moyennes (100) selon une typologie en 13 classes.
La fonction plot_bidev
permet de visualiser directement le positionnement des communes sur ces deux déviations. Il est aussi possible d’élargir l’étendue statistique de ces classes, comme nous le proposons dans l’exemple qui suit.
par(mar = c(0,0,0,0), mfrow = c(1,1))
plot_bidev(x = com, dev1 = "gdevrel", dev2 = "tdevrel",
dev1.lab = "Déviation générale (MGP)",
dev2.lab = "Déviation territoriale (EPCI d'appartenance)")
La fonction map_bidev
retourne cette typologie (et les couleurs associées) à un objet spatial pour permettre de cartographier les résultats.
La tonalité rouge est utilisée pour les unités territoriales dont la valeur des déviations est supérieure à 100 pour les deux contextes. La tonalité bleue dans le cas inverse. Les tonalités jaune et verte sont utilisées pour les situations contradictoires. Plus la couleur apparaît saturée, plus les écarts pour les deux déviations sont éloignés des valeurs moyennes.
Les bornes par défaut proposées dans les fonctions bidev
(25, 50 et 100) sont modifiées pour s’adapter aux écarts très importants du jeu de données. L’argument breaks
permet ainsi de paramétrer manuellement les seuils souhaités pour réaliser cette typologie. Nous utilisons 25 % au-dessus / en-dessous de la moyenne (indices 80 et 125), 250 % (indices 29 et 350) et 500 % (indices 20 et 600). Sont affichés les labels de deux communes aux positionnements géographique et statistique complètement opposés : Rungis et Épinay-sur-Seine.
# Gdev * TDev
<- map_bidev(x = com, xid = "INSEE_COM",
bidev dev1 = "gdevrel", dev2 = "tdevrel",
breaks = c(25, 250, 500))
# Sortir de la liste les objets retournés par la fonction
<- bidev$geom
com <- bidev$cols
cols
# Représentations cartographiques et graphiques en vis-à-vis
par(mfrow = c(1,2), par(mar = c(0,0,1.2,0)))
plot_bidev(x = com, dev1 = "gdevrel", dev2 = "tdevrel",
dev1.lab = "Déviation générale (MGP)",
dev2.lab = "Déviation territoriale (EPCI d'appartenance)",
breaks = c(25, 250, 400),
lib.var = "NOM_COM", lib.val = c("Rungis", "Épinay-sur-Seine"),
cex.lab = 0.7, cex.names = 0.6, cex.axis = 0.5, pos.names = 1)
mtext(text = "Synthèse - 2 déviations", side = 3,
adj = 0, line = 3, cex = 1, font = 2)
mtext(text = c("Écarts à la métropole du Grand Paris (écart général)\n",
"et l'EPCI d'appartenance des communes (écart territorial)"), side = 3,
adj = 0, line = 1, cex = 0.7, font = 3)
mf_init(epci, expandBB = c(0.02, 0.02, 0.02, 0.02), theme = mta_theme)
mf_map(x = com, var = "bidev", type = "typo", border = "white", lwd = 0.2,
pal = cols, leg_pos = "n", val_order = unique(com$bidev), add = TRUE)
mf_map(epci, col = NA, border = "black", lwd = 1, add = TRUE)
mf_label(com[com$NOM_COM %in% c("Rungis", "Épinay-sur-Seine"),],
var = "NOM_COM", col = "black", bg = "white", halo = TRUE)
Cette composition graphique permet tout d’abord de mettre en évidence les communes particulièrement pourvues en terme d’emplois, présentées comme Rungis en rouge foncé, et à l’opposé les communes nettement dépourvues (au regard de leur population active résidante) comme Épinay-sur-Seine, représentées en bleu foncé.
Elle permet aussi de souligner les situations contradictoires :
- En vert, les communes présentant des caractéristiques défavorables dans le contexte de la MGP mais en situation avantageuse dans un contexte territorial. On retrouve ici majoritairement des communes de Seine-Saint-Denis.
- En jaune, les communes qui présentent un surplus d’emplois dans le contexte global, mais qui se situent en retrait dans leur territoire d’appartenance. On retrouve ici les arrondissements extérieurs de l’ouest de Paris.
5.2 Typologie (3 déviations)
Les 3 déviations peuvent être résumées par le biais d’une typologie synthétique et la fonction mst
. Les unités territoriales sont regroupées en 8 classes en fonction :
- de leur position sur les trois déviations relatives (préalablement calculées)
- d’un seuil (argument
threshold
), l’indice 100 représentant toujours la moyenne
- d’un sens (argument
superior
) de comparaison
Si superior = TRUE
, l’analyse portera sur les unités territoriales dont la valeur est supérieure à la valeur de seuil (threshold
). Si superior = FALSE
ce sera l’inverse.
La typologie est retournée dans le vecteur mst
et définit le positionnement de chaque unité territoriale au regard des paramètres fixés par l’utilisateur :
Les unités territoriales au-dessus / en dessous du seuil pour les trois déviations (classe 7). Cette classe met en lumière les objets géographiques en situation favorable ou défavorable quel que soit le contexte d’analyse.
Les unités territoriales dans une situation contradictoire, selon deux configurations : une unité territoriale est dans une situation avantageuse dans un contexte général, mais pas localement (une commune favorisée dans un voisinage de communes encore plus favorisées par exemple) ; et une unité territoriale est avantagée localement mais pas globalement (une commune un peu plus riche que ses voisines globalement pauvres, par exemple). Cela correspond aux classes 1, 2, 3, 4, 5 et 6 en fonction des situations sur les trois déviations.
Les unités territoriales qui ne répondent à aucun des critères spécifiés par les valeurs de seuil et de sens de comparaison (classe 0).
Pour commencer, nous appliquons la fonction mst
aux communes au-dessus de l’indice 125 (25 % au-dessus de la moyenne) avec les trois déviations précédemment calculées. Analysons dans un premier temps les communes qui répondent à ce critère pour les 3 déviations, en réalisant un subset
sur le résultat de la fonction. Il s’agit donc des communes concernées par une nette surreprésentation d’emplois au regard de leur population active résidente, quel que soit le contexte d’analyse.
# Typologie de synthèse
$mst <- mst(x = com, gdevrel = "gdevrel", tdevrel = "tdevrel",
comsdevrel = "sdevrel", threshold = 125, superior = TRUE)
# Extraction des communes répondant à mst = 7
<- subset(com, mst == 7,
tmp select = c(NOM_COM, ratio, gdevrel, tdevrel, sdevrel, mst),
drop = TRUE)
Cela concerne 15 communes, dont 6 arrondissements parisiens. On retrouve ici les situations remarquables mises en évidence dans les précédentes analyses (Courbevoie - La Défense, Bobigny, Saint-Denis, etc.)
NOM_COM | ratio | gdevrel | tdevrel | sdevrel | mst |
Paris 6e Arrondissement | 2.7 | 213.8 | 155.3 | 133.9 | 7 |
Courbevoie | 2.3 | 186.9 | 129.7 | 132.0 | 7 |
Bobigny | 1.7 | 133.9 | 170.3 | 191.5 | 7 |
Saint-Denis | 2.1 | 164.6 | 169.3 | 188.0 | 7 |
Saint-Ouen-sur-Seine | 1.6 | 130.4 | 134.1 | 136.6 | 7 |
Arcueil | 1.8 | 144.6 | 190.0 | 180.4 | 7 |
Paris 4e Arrondissement | 3.0 | 240.3 | 174.5 | 160.7 | 7 |
Gennevilliers | 2.3 | 185.3 | 240.8 | 257.1 | 7 |
Puteaux | 3.4 | 272.0 | 188.8 | 167.9 | 7 |
Orly | 2.5 | 199.7 | 262.3 | 186.8 | 7 |
Paris 1er Arrondissement | 7.6 | 604.9 | 439.5 | 195.8 | 7 |
Paris 2e Arrondissement | 5.1 | 407.5 | 296.1 | 172.1 | 7 |
Paris 8e Arrondissement | 10.1 | 802.5 | 583.0 | 361.5 | 7 |
Paris 9e Arrondissement | 3.6 | 287.7 | 209.0 | 155.7 | 7 |
Rungis | 9.8 | 780.7 | 1025.4 | 585.8 | 7 |
La fonction map_mst
reprend le code couleur d’HyperAtlas. Elle prend exactement les mêmes arguments que mst
et renvoie, dans une liste des géométries ordonnées en fonction des résultats de mst
, un vecteur de couleur et une légende adaptée. Une fois ces éléments extraits de la liste et cartographiés en utilisant les fonctions proposées par le package cartography
, on peut mettre en évidence sur le même plan les communes en position contradictoire en fonction des contextes territoriaux et spatiaux considérés.
C’est notamment le cas des communes de Villepinte, Le Bourget, Bry-sur-Marne, Noisy-le-Grand, Créteil et Bonneuil-sur-Marne, pour qui, même si leur concentration de l’emploi n’est pas spécifiquement au-dessus de la moyenne dans la MGP, elle l’est considérablement dans leur EPCI d’appartenance et de leurs communes voisines.
# Typologie de synthèse
<- map_mst(x = com, gdevrel = "gdevrel", tdevrel = "tdevrel",
mst sdevrel = "sdevrel", threshold = 125, superior = TRUE)
# Extraction de la liste
<- mst$geom
com <- mst$cols
cols <- mst$leg_val
leg_val
# Cartographie
par(mfrow = c(1,1))
mf_init(epci, expandBB = c(0,0.2,0,0), theme = mta_theme)
mf_map(x = com, var = "mst", type = "typo", border = "white", lwd = 0.2,
pal = cols, val_order = unique(com$mst), leg_pos = "n", add = TRUE)
mf_map(epci, col = NA, border = "black", lwd = 1, add = TRUE)
mf_legend(type = "typo", pos = "left", val = leg_val, pal = cols,
title = "Pour le contexte général (G)\net/ou territorial (T)\net/ou spatial (S)",)
mf_title("Synthèse multiscalaire - Déviations > 150 (+ 50 % au-dessus de la moyenne)")
mf_scale(size = 5, col = "black", pos = c(666000, 6839000))
mf_credits(txt = credits, pos = "rightbottom", cex = 0.5)
# Ajouter des labels pour mst = 6
mf_label(x = com[com$mst == 6,], var = "NOM_COM", col = "black", bg = "white",
halo = TRUE, overlap = FALSE, cex = 0.7)
Il est possible de visualiser la situation spécifique de ces unités territoriales en situation contradictoire grâce à la fonction plot_mst
. Les unités d’intérêt sont extraites (nom de colonne comprenant les labels des unités territoriales avec lib.var
et sélection des labels d’intérêt avec lib.val
) et représentées par un graphique en barre.
On constate ainsi que Bry-sur-Marne et Noisy-le-Grand, bien qu’avantagées localement, le sont nettement moins dans la MGP puisque les déviations générales qui les caractérisent se situent en dessous de la moyenne (indice 100).
par(mfrow = c(1,1), par(mar = c(4,4,4,4)))
plot_mst(x = com, gdevrel = "gdevrel", tdevrel = "tdevrel", sdevrel = "sdevrel",
lib.var = "NOM_COM", cex.names = .6,
lib.val = c("Le Bourget", "Créteil", "Bry-sur-Marne", "Noisy-le-Grand",
"Bonneuil-sur-Marne", "Villepinte"),
legend.lab = paste0("G = métropole du Grand Paris, T = EPCI d'appartenance,",
"S : Communes contiguës (100 = moyenne du contexte)"))
En spécifiant superior = FALSE
et threshold = 80
, l’analyse est retournée pour se focaliser sur les territoires affichant une sous-représentation d’emplois. Dans ce cas, sont mises en évidence les communes disposant 25 % d’emplois en moins que d’actifs résidents, au regard de la moyenne des contextes d’analyse.
# Typologie de synthèse
$mst <- mst(x = com, gdevrel = "gdevrel", tdevrel = "tdevrel",
comsdevrel = "sdevrel", threshold = 80, superior = FALSE)
# Extraction des communes répondant à mst = 7
<- subset(com, mst == 7,
tmp select = c(NOM_COM, ratio, gdevrel, tdevrel, sdevrel, mst),
drop = TRUE)
Près du tiers des communes de l’espace d’étude (45) se situent dans la catégorie 7 (indice inférieur à 80 pour les trois contextes), ce qui souligne les grandes inégalités qui structurent cet espace.
C’est par exemple le cas pour Pierrefitte-sur-Seine (avec des indices inférieurs à 50 pour les trois déviations), commune de 30 000 habitants où le taux de chômage des 15 à 64 ans s’élève à 21,7 % d’après le comparateur des territoires de l’INSEE, contre 13,4 % pour la moyenne française.
NOM_COM | ratio | gdevrel | tdevrel | sdevrel | mst |
Paris 18e Arrondissement | 0.9 | 71.5 | 51.9 | 61.3 | 7 |
Paris 20e Arrondissement | 0.8 | 66.7 | 48.5 | 71.3 | 7 |
Savigny-sur-Orge | 0.4 | 29.7 | 39.0 | 57.8 | 7 |
Asnières-sur-Seine | 0.6 | 46.5 | 60.4 | 41.0 | 7 |
Châtenay-Malabry | 0.5 | 43.7 | 67.0 | 69.0 | 7 |
Chaville | 0.4 | 29.5 | 31.3 | 50.8 | 7 |
Garches | 0.7 | 57.7 | 40.1 | 63.2 | 7 |
La Garenne-Colombes | 0.8 | 63.0 | 43.7 | 49.3 | 7 |
Meudon | 0.9 | 69.6 | 73.9 | 72.5 | 7 |
Vanves | 0.6 | 48.4 | 51.4 | 45.0 | 7 |
Vaucresson | 0.8 | 62.6 | 43.5 | 71.5 | 7 |
Ville-d'Avray | 0.4 | 31.8 | 33.8 | 46.3 | 7 |
Coubron | 0.3 | 25.4 | 51.0 | 57.8 | 7 |
La Courneuve | 0.9 | 71.4 | 73.5 | 73.0 | 7 |
Drancy | 0.5 | 36.7 | 58.3 | 55.3 | 7 |
Épinay-sur-Seine | 0.4 | 35.7 | 36.8 | 38.5 | 7 |
Gagny | 0.3 | 26.3 | 52.9 | 64.4 | 7 |
Gournay-sur-Marne | 0.3 | 25.5 | 51.3 | 46.6 | 7 |
L'Île-Saint-Denis | 0.6 | 46.2 | 47.6 | 48.4 | 7 |
Les Lilas | 0.5 | 42.8 | 54.4 | 57.0 | 7 |
Livry-Gargan | 0.5 | 37.4 | 75.3 | 74.3 | 7 |
Noisy-le-Sec | 0.6 | 49.2 | 62.5 | 62.8 | 7 |
Pierrefitte-sur-Seine | 0.6 | 44.7 | 46.0 | 37.6 | 7 |
Le Pré-Saint-Gervais | 0.4 | 35.5 | 45.2 | 46.8 | 7 |
Romainville | 0.7 | 52.1 | 66.3 | 61.6 | 7 |
Sevran | 0.5 | 37.5 | 59.6 | 64.2 | 7 |
Stains | 0.6 | 49.0 | 50.4 | 44.7 | 7 |
Villemomble | 0.4 | 31.7 | 63.9 | 69.2 | 7 |
Ablon-sur-Seine | 0.3 | 20.9 | 27.4 | 41.9 | 7 |
Alfortville | 0.6 | 46.9 | 69.9 | 63.6 | 7 |
Cachan | 0.6 | 50.9 | 66.9 | 77.0 | 7 |
Choisy-le-Roi | 0.6 | 45.1 | 59.2 | 57.5 | 7 |
Fresnes | 0.7 | 53.7 | 70.6 | 61.2 | 7 |
L'Haÿ-les-Roses | 0.4 | 31.6 | 41.6 | 53.6 | 7 |
Joinville-le-Pont | 0.5 | 42.0 | 76.3 | 52.0 | 7 |
Limeil-Brévannes | 0.5 | 40.3 | 60.0 | 46.3 | 7 |
Noiseau | 0.3 | 25.1 | 37.4 | 58.9 | 7 |
Périgny | 0.3 | 21.2 | 31.6 | 43.2 | 7 |
Le Perreux-sur-Marne | 0.4 | 28.9 | 52.5 | 51.3 | 7 |
Le Plessis-Trévise | 0.3 | 26.8 | 39.9 | 50.7 | 7 |
Valenton | 0.8 | 60.4 | 79.4 | 77.9 | 7 |
Villecresnes | 0.4 | 30.4 | 45.2 | 63.9 | 7 |
Villeneuve-le-Roi | 0.7 | 55.2 | 72.5 | 66.2 | 7 |
Villiers-sur-Marne | 0.4 | 35.7 | 64.8 | 65.0 | 7 |
Argenteuil | 0.7 | 54.8 | 71.1 | 74.1 | 7 |
La cartographie qui suit suggère une organisation spatiale des sous-représentations d’emplois globalement auréolaire autour de Paris. La majeure partie des territoires avec un indice inférieur à 80 sur les trois contextes se situant à plus de 5 km des arrondissements parisiens.
Ici encore, des situations spécifiques apparaissent, comme pour les 11e et 17e arrondissements parisiens, ou à Suresnes : une situation défavorable localement, mais pas dans le contexte de la MGP pour lequel le rapport emploi / population active résidente se situe autour de la moyenne.
6 Du travail à la maison ?
Les fonctions et les représentations associées à MTA
constituent un socle méthodologique utile pour mener à bien une analyse territoriale multiscalaire et discuter des inégalités inhérentes à un espace d’étude sous diverses perspectives territoriales. Ce package, maintenu par les membres de l’UMS RIATE, peut être amené à évoluer en fonction du retour des utilisateurs.
Pour en revenir à l’application proposée ici, plusieurs pistes méthodologiques pourraient être explorées pour poursuivre ces analyses et s’approprier ce support pédagogique :
Prise en compte de la dimension temporelle : pour discuter de l’augmentation ou de la diminution de ces inégalités dans le temps, ainsi que des reconfigurations spatiales qui s’opèrent, les différentes versions de ce jeu de données mis à disposition par l’INSEE (2006 et 2012) rend possible l’intégration de la dimension temporelle à l’analyse. Il faudra néanmoins veiller à la cohérence des définitions et méthodes de calcul des indicateurs, parfois changeantes dans le temps, ainsi qu’à la stabilité du maillage territorial (de nombreuses communes ont fusionné sur cet intervalle de temps).
Variation(s) autour des indicateurs : un grand nombre d’indicateurs sont mis à disposition au niveau communal par l’INSEE, notamment sur la thématique de l’emploi (par sexe, par tranche d’âge, par type de contrat, par branche d’activité économique, etc.). Il peut s’avérer utile de confronter d’autres composantes de l’emploi et discuter ainsi de la stabilité de ces inégalités sur d’autres sous-catégories.
Effets de maillages et zooms locaux : certaines communes agrègent des situations très hétérogènes (arrondissements parisiens ou Montreuil par exemple). La transposition de l’analyse à une maille territoriale plus fine (IRIS), en limitant le contexte général d’analyse à un EPCI donné et non plus à la métropole du Grand Paris peut constituer une piste intéressante. Les données d’emploi sont mises à disposition par l’INSEE, même si elles ne concernent pas l’emploi au lieu de travail mais au lieu de résidence.
Une ouverture à d’autres métropoles : le jeu de données préparé en amont rend possible l’extension de l’analyse parisienne aux 21 autres métropoles françaises, à l’échelle communale avec le même indicateur qu’utilisé précédemment, ou à l’échelle des IRIS avec la part des ménages disposant d’au moins un véhicule.
Cet ultime bloc de code décrit une procédure permettant de transposer une analyse multiscalaire à l’échelle des IRIS pour la métropole grenobloise, sur la part des ménages équipés d’au moins une automobile. Les données sont d’abord ré-importées puis filtrées pour ne conserver que les objets géographiques appartenant à Grenoble-Alpes métropole. Les valeurs égales à 0 sont ensuite retirées du jeu de données (IRIS d’activité). La déviation générale est calculée (déviation à la métropole), ainsi que la déviation à un contexte intermédiaire (commune d’appartenance de l’IRIS).
# 1 - Import et sélection des données
<- st_read("data/data.gpkg", layer = "iris", quiet=TRUE)
iris <- st_read("data/data.gpkg", layer = "com", quiet = TRUE)
com
# et voir les métropoles disponibles
levels(as.factor(com$LIB_EPCI))
# 2 - Filtrer sur Grenoble et initialiser l'analyse
<- iris[iris$LIB_EPCI == "Métropole Grenoble-Alpes-Métropole",]
iris <- com[com$LIB_EPCI == "Métropole Grenoble-Alpes-Métropole",]
com
<- which(colnames(iris) == "P16_RP_VOIT1P")
num <- which(colnames(iris) == "P16_MEN")
denom colnames(iris)[c(num,denom)] <- c("num", "denom")
# Retirer les valeurs égales à 0
<- iris[iris$num != 0 & iris$denom != 0,]
iris
# 3 - Calcul des déviations
# Ecart général
$gdevrel <- gdev(x = iris, var1 = "num", var2 = "denom", type = "rel")
iris
# Ecart spatial (moins de 5 km)
$tdevrel <- tdev(x = iris, var1 = "num", var2 = "denom", type = "rel", key = "INSEE_COM") iris
La carte de synthèse qui en résulte (map_bidev
) permet ainsi de juger du degré d’équipement automobile des ménages grenoblois. Si les communes (l’IRIS correspond ici à la commune) périphériques de Belledonne, du Vercors et de Chartreuse présentent sans surprise des niveaux d’équipements supérieurs à la moyenne de la métropole, on observe des distinctions intéressantes dans l’hypercentre grenoblois : ce sont les secteurs piétonniers et proches de la gare (IRIS en bleu) qui présentent les niveaux les plus faibles dans les deux contextes de l’analyse, qui correspondent aussi aux endroits bien desservis par le tram et relativement aisés pour la pratique du vélo (pistes cyclables, pas de dénivelé). Il n’en est pas de même pour le sud de Grenoble où le niveau d’équipement automobile est au-dessus des moyennes grenobloise et de la métropole. Les communes situées à l’est de Grenoble (La Tronche, Saint-Martin-d’Hères) présentent des niveaux d’équipement automobile relativement faibles, qui s’expliquent par leur bonne liaison avec le centre de la métropole du fait de la présence de l’université et du CHU.
# Typologie 2 indicateurs
<- map_bidev(x = iris, dev1 = "gdevrel", dev2 = "tdevrel", breaks = c(15, 50, 150))
bidev
# Extraire de la liste
<- bidev$geom
metroG <- bidev$cols
cols
# Extraire les valeurs de Grenoble-centre
<- metroG[metroG$NOM_COM == "Grenoble",] # Grenoble
gre <- gre[gre$bidev %in% c("A2", "C3"),] # Cas exceptionnels
gre_exc <- gre_exc$NOM_IRIS # Labels des cas exceptionnels
gre_labels
# Représentations cartographiques et graphiques en vis-à-vis
par(mfrow = c(1,2), par(mar = c(0,0,1.2,0)))
plot_bidev(x = metroG, dev1 = "gdevrel", dev2 = "tdevrel",
dev1.lab = "Déviation générale (métropole de Grenoble)",
dev2.lab = "Déviation territoriale (commune d'appartenance)",
lib.var = "NOM_IRIS", lib.val = gre_labels,
cex.lab = 0.7, breaks = c(15, 50, 150))
mtext(text = "Part des ménages ayant une voiture ou plus",
side = 3, adj = 0, line = 3, cex = .9, font = 2)
mtext(text = c("Ecarts à la métropole de Grenoble (écart général)\n",
"et la commune d'appartenance des IRIS (écart territorial)"), side = 3,
adj = 0, line = 1, cex = .7, font = 3)
mf_init(x = metroG, expandBB = c(-0.3,-0.15,-0.15,0.15))
mf_map(x = metroG, var = "bidev", type = "typo", border = "white", lwd = 0.2,
pal = cols, leg_pos = "n", val_order = unique(metroG$bidev), add = TRUE)
mf_map(com, col = NA, border = "black", add = TRUE)
mf_label(x = gre[gre$bidev %in% c("A2","C3"),], var = "NOM_IRIS", halo = TRUE,
overlap = FALSE, cex = .5, bg = "white", col = "black")
mf_scale(size = 5, col = "black", pos = "bottomleft")
mf_credits(txt = "Sources : INSEE, IGN, 2021 / Réalisation : Ronan Ysebaert, RIATE, 2021",
pos = "rightbottom")
Bibliographie
Annexes
Info session
setting | value |
---|---|
version | R version 4.0.2 (2020-06-22) |
os | Ubuntu 18.04.5 LTS |
system | x86_64, linux-gnu |
ui | X11 |
language | (EN) |
collate | fr_FR.UTF-8 |
ctype | fr_FR.UTF-8 |
tz | Europe/Paris |
date | 2021-10-29 |
package | ondiskversion | source |
---|---|---|
cartography | 2.4.2 | CRAN (R 4.0.2) |
flextable | 0.6.8 | CRAN (R 4.0.2) |
ineq | 0.2.13 | CRAN (R 4.0.2) |
mapsf | 0.1.1 | CRAN (R 4.0.2) |
MTA | 0.3.0 | CRAN (R 4.0.2) |
readxl | 1.3.1 | CRAN (R 4.0.2) |
sf | 1.0.2 | CRAN (R 4.0.2) |
sp | 1.4.2 | CRAN (R 4.0.2) |
spData | 0.3.10 | CRAN (R 4.0.2) |
spdep | 1.1.11 | CRAN (R 4.0.2) |
Citation
Ronan Ysebaert, Claude Grasland (2021). “Analyse territoriale, multiscalaire.” doi: 10.48645/hjvq-yp94 (URL:, https://doi.org/10.48645/hjvq-yp94), <URL:, https://rzine.fr/docs/20211101_ysebaert_grasland_MTA/index.html>.
BibTex :
@Misc{,
title = {Analyse territoriale multiscalaire},
subtitle = {Application à la concentration de l'emploi dans la métropole du Grand Paris},
author = {{Ronan Ysebaert, Claude Grasland}},
doi = {10.48645/hjvq-yp94},
url = {https://rzine.fr/docs/20211101_ysebaert_grasland_MTA/index.html},
keywords = {FOS: Other social sciences},
language = {fr},
publisher = {FR2007 CIST},
year = {2021},
copyright = {Creative Commons Attribution Share Alike 4.0 International},
}
Glossaire
Métropole : en France, un établissement de coopération intercommunale (EPCI) qui correspond à une des formes les plus intégrées d’intercommunalité. Elle concerne des territoires de plus de 400 000 habitants situés dans des aires urbaines de plus 650 000 habitants. Au 1er janvier 2019, la France compte 21 métropoles. Elles exercent de plein droit, en lieu et place de leurs communes membres, les compétences en matières d’aménagement de l’espace métropolitain ; de développement et d’aménagement économique, social et culturel ; de politique locale de l’habitat ; de protection et de mise en valeur de l’environnement et de politique du cadre de vie.↩︎
ESPON : programme européen de recherche appliquée qui vise à produire de la connaissance, des méthodes et des préconisations politiques sur les dynamiques territoriales européennes, principalement à l’échelle régionale.↩︎
Spillover effect : en économie les effets de spillover (ou débordement) sont des événements qui se produisent dans un contexte donné à cause d’autre chose survenant dans un contexte apparemment sans rapport.↩︎
Backwash effect : concept issu du champ de l’économétrie spatiale qui stipule que la croissance économique offre des avantages et des coûts dans la région où elle se produit. Cela a un impact positif sur les territoires voisins si les emplois, la population et la richesse se répandent dans ces communautés. Au contraire, les effets sont néfastes sur les localités voisines si la croissance dans la région centrale attire les populations et les activités des régions périphériques. L’effet backwash se produit si les effets négatifs dominent et que l’activité économique dans les régions périphériques diminue.↩︎
Indices d’autocorrélation spatiale : ont été développés à partir des années 1950 afin de mettre en évidence une relation entre voisins qui serait plus marquée que la relation avec le reste du groupe.↩︎
EPCI : établissement de coopération intercommunale. Il s’agit d’une structure administrative regroupant plusieurs communes afin d’exercer certaines compétences en commun. Aujourd’hui, en principe, chaque commune doit appartenir à un EPCI à fiscalité propre, en vertu de la loi NOTRe de 2015.↩︎
Spatial mismatch : exprime l’inadéquation entre le lieu de résidence des ménages à faible revenu et les opportunités convenables d’emploi. Ce concept a été initialement utilisé aux Etats-Unis pour des études portant sur la population afro-américaine, en raison de la ségrégation résidentielle, de la restructuration économique et de la suburbanisation de l’emploi.↩︎
IRIS : signifie « îlots regroupés pour l’information statistique ». Il s’agit d’un découpage territorial en mailles de taille homogène (environ de 2 000 habitants) proposé par l’INSEE. Ce découpage constitue la brique de base en matière de diffusion de données infra-communales.↩︎
Equirépartition : pour cette analyse, elle implique des valeurs de ratio identique (numérateur / dénominateur) pour l’ensemble des unités territoriales du contexte d’analyse.↩︎
Indice de Gini : indicateur synthétique permettant de rendre compte du niveau d’inégalité pour une variable et sur une population donnée. Il varie entre 0 (égalité parfaite) et 1 (inégalité extrême).↩︎
Indice de Hoover : aussi appelé indice de différenciation, il exprime la part de la population X (ou de la population Y) qu’il faudrait déplacer d’une maille à une autre pour aboutir à l’équirépartition. Il varie entre 0 (équirépartition parfaite) et 1 (concentration maximale).↩︎
Analyse de variance : permet d’évaluer le lien entre une variable catégorielle et une variable quantitative et ainsi d’identifier s’il existe des différences de moyenne de Y en fonction de groupes définis par X.↩︎
Autocorrélation spatiale : mesure la corrélation d’une variable avec elle même dans l’espace. En présence d’autocorrélation spatiale, on observe que la valeur d’une variable pour une observation est liée aux valeurs de cette variable pour les observations voisines dans l’espace.↩︎
Indicateurs d’autocorrélation spatiale locale (LISA) : permettent de détecter les regroupements significatifs de valeurs identiques autour d’une localisation particulière et de repérer les zones de non-stationnarité spatiale, qui ne suivent pas le processus global.↩︎