Diffusion spatiale du déplacement forcé en Colombie, 2000-2022
Le mandat prévoit de répartir des enveloppes de stabilisation entre les municipalités. L'analyse suit les déplacements et les violences enregistrées dans 1 121 municipalités de 2000 à 2022, puis estime leur dépendance spatiale à partir d'un registre de 691 373 lignes.
- data/
- raw/non versionne, environ 180 Mo
- processed/panel, geometries, voisinages, LISA
- README_data.md
- notebooks/
- analyse.ipynb
- outputs/
- figures/6 cartes et graphiques
- tables/14 tableaux
- src/
- config.py
- p01_construire_panel.py
- p02_dependance_spatiale.py
- p03_modeles_panel.py
- p04_cartes.py
- style.py
- telecharger_donnees.py
- utils.py
- README.md
- requirements.txt
- run_all.py
Sommaire
Sommaire
Mandat et résultats
L'Observatoire territorial pour la stabilisation, centre d'analyse fictif, doit répartir les enveloppes de stabilisation entre les municipalités colombiennes. Un choc local peut déplacer des personnes vers les communes voisines et étendre ses effets au-delà de la municipalité financée.
Le modèle mesure l'association spatiale restante après prise en compte des violences locales et répartit l'estimation entre la municipalité observée et ses voisines. Les effets présentés dans cette page sont des effets marginaux du modèle. Ils n'établissent pas une relation causale.
Données et construction du panel
| Source | Jeu | Couverture | Licence |
|---|---|---|---|
| UARIV | Registre unique des victimes, faits victimisants | 691 373 lignes, municipalité et mois, 1985 à août 2023 | CC BY |
| OCHA COD-AB | Limites municipales | 1 122 municipalités, millésime 2020 | CC BY |
| OCHA COD-PS | Population municipale projetée | 2024 | CC BY |
| SIDIH / ONUDC | Cultures de coca | 2001 à 2013, annexe seulement | CC BY |
Le portail national datos.gov.co refuse les requêtes automatisées. La chaîne utilise les copies publiées sur le catalogue humanitaire HDX, dont les adresses restent stables. Ces versions peuvent être antérieures à celles du portail national.
La fenêtre retenue est 2000 à 2022. Le registre remonte à 1985. Les déclarations rétrospectives déforment la chronologie antérieure à 2000, car de nombreux faits anciens ont été enregistrés lors de la reconnaissance du statut de victime. L'extraction s'arrête en août 2023 et l'analyse écarte cette année incomplète, qui créerait une chute artificielle en fin de série.
Interprétation des cellules absentes
Le registre contient une ligne uniquement lorsqu'une victime a été enregistrée. Une paire municipalité-année absente correspond à zéro victime.
Le maintien de cellules vides supprimerait des observations et limiterait les moyennes aux municipalités touchées, avec un biais à la hausse. La grille est reconstruite pour toutes les paires municipalité-année et complétée par des zéros. Les zéros représentent 16,3 % des cellules du panel, soit une observation sur six.
Les zéros initiaux des codes DIVIPOLA
Le fichier source stocke le code de municipalité en numérique. Les départements d'Antioquia et d'Atlántico, codés 05 et 08, y perdent leur zéro initial et deviennent 5 et 8. La jointure échoue lorsque ces valeurs sont rapprochées des codes textuels des limites administratives.
Antioquia compte six des cinquante-quatre municipalités en grappe persistante. Les codes sont normalisés sur cinq caractères avant la jointure pour conserver ce département dans l'analyse.
Journal des exclusions
| Motif | Lignes | Victimes |
|---|---|---|
| Hors de la fenêtre 2000-2022 | 187 268 | 2 365 805 |
| Municipalité non renseignée | 2 164 | 46 936 |
| Code DIVIPOLA non conforme | 49 | 175 |
La première ligne correspond à la fenêtre d'analyse. Les deux autres motifs sont des rebuts consignés dans outputs/tables/01_journal_nettoyage.csv. Sept codes du registre ne correspondent à aucune géométrie du millésime 2020. Mapiripana, dans le Guainía, sort du panel faute de population au dénominateur, ramenant le compte de 1 122 à 1 121.
Le panel final comprend 1 121 municipalités × 23 années = 25 783 observations, équilibré.
Effet du dénominateur constant
Le taux de déplacement rapporte les victimes à la population de 2024, utilisée comme dénominateur pour toute la période.
Dans un modèle à avec variable dépendante transformée en logarithme, un facteur constant par municipalité devient une constante additive après transformation. L'effet fixe l'absorbe intégralement et les coefficients restent inchangés. Le dénominateur constant modifie les cartes descriptives, où il est signalé.
Voisinage et préparation des variables
La définition du voisinage entre directement dans le modèle spatial et figure dans la première ligne du fichier de configuration.
La considère deux municipalités comme voisines lorsqu'elles partagent au moins un point de frontière. Cette règle isole San Andrés y Providencia, archipel des Caraïbes situé à 700 km du continent. Sa ligne vide rend la non inversible. Le exige l'inverse de (I − ρW).
Le voisinage principal retient les cinq municipalités les plus proches, calculées à partir des centroïdes projetés en MAGNA-SIRGAS, la projection officielle colombienne. Chaque municipalité possède exactement cinq voisines, y compris l'archipel. Ce nombre correspond à l'ordre de grandeur du nombre moyen de voisins contigus et maintient la comparabilité des deux définitions.
Paramètre de voisinagesrc/config.py
# Le voisinage principal est celui des k plus proches voisins : la contiguïté
# simple laisse San Andrés y Providencia sans voisin, et un îlot sans voisin
# rend la matrice de poids non inversible dans les modèles à décalage spatial.
# Les k plus proches voisins garantissent que chaque municipalité en a
# exactement k.
#
# k = 5 correspond à l'ordre de grandeur du nombre de voisins contigus d'une
# municipalité colombienne moyenne et maintient la comparabilité des définitions.
K_VOISINS = 5
La contiguïté reine sert de contrôle. La corrélation entre les deux séries annuelles d'indices de Moran atteint 0,964. Jusqu'en 2010, la matrice des plus proches voisins donne l'indice le plus élevé. Après 2011, la contiguïté reine domine, avec un écart de 0,036 en 2020. La concentration du phénomène affecte différemment un voisinage à nombre fixe et un voisinage défini par les frontières.
Transformation par sinus hyperbolique inverse
La distribution du taux de déplacement est très asymétrique. La transformation log(1 + x) dépend de l'unité choisie. Ajouter 1 à un taux pour 100 000 habitants et à un taux pour 1 000 produit des compressions différentes.
Le sinus hyperbolique inverse se comporte comme un logarithme aux valeurs élevées, reste défini en zéro et dépend beaucoup moins de l'unité. Sa définition en zéro est nécessaire puisque cette valeur concerne une observation sur six.
Décalage annuel des variables explicatives
Une menace et un déplacement enregistrés la même année dans la même municipalité décrivent souvent le même épisode. Leur utilisation simultanée confondrait co-enregistrement et relation temporelle. Les variables explicatives, violence létale, menaces, combats et engins explosifs, entrent avec un décalage d'un an.
Le décalage réduit la simultanéité. L'exogénéité reste une limite, consignée dans la configuration à côté du paramètre concerné.
Persistance de la structure spatiale
Entre 2002 et 2020, le déplacement passe de 838 276 à 108 156 victimes annuelles, divisé par 7,8, avant de remonter à 290 527 en 2022. La violence létale enregistrée est divisée par 59 entre 2002 et 2016.
L'indice de Moran global reste compris entre 0,60 et 0,73 sur les vingt-trois années et demeure significatif chaque année. Il passe de 0,720 en 2015 à 0,681 en 2016, puis remonte. La structure spatiale persiste après l'accord de paix malgré la baisse du volume national.
Concentration et composition des grappes
Le nombre de municipalités touchées dans l'année tombe de 1 042 en 2002 à 717 en 2020, avant de remonter à 837. La part du déplacement survenant lors d'événements massifs passe de 11,2 % en 2000 à 27,3 % en 2021. La composition des indicateurs locaux se simplifie au cours de la période.
Le nombre de municipalités en rupture avec leur voisinage passe de 31 à 12, et celui des municipalités sans signal significatif de 676 à 589. Les grappes basses gagnent 108 municipalités, de 235 à 343. Les grappes hautes comptent 179 municipalités en 2002 et 177 en 2022, avec un maximum de 207 en 2013.
La majorité des municipalités se regroupe dans les valeurs basses. Le noyau de valeurs hautes conserve une taille stable. La baisse des cas atypiques et la consolidation des grappes indiquent une concentration accrue du phénomène.
Cinquante-quatre municipalités présentes dans les quatre relevés
| Département | Municipalités | Département | Municipalités |
|---|---|---|---|
| Caquetá | 13 | Bolívar | 3 |
| Antioquia | 6 | Cauca | 3 |
| Chocó | 6 | Córdoba | 2 |
| Meta | 6 | Guaviare | 2 |
| Norte de Santander | 6 | Nariño | 1 |
| Putumayo | 6 |
Ces cinquante-quatre municipalités appartiennent à une grappe haute en 2002, en 2008, en 2013 et en 2022. Elles conservent ce statut pendant le pic du conflit, la démobilisation paramilitaire, les négociations de La Havane et l'après-accord.
Choix du modèle spatial
L'estimation compare trois spécifications. M1 utilise des effets fixes à deux voies. M2 ajoute le décalage spatial de la variable dépendante et M3 une erreur spatialement autocorrélée.
Retrait des effets annuels
spreg absorbe les effets fixes individuels uniquement. Les effets d'année sont retirés en amont afin d'estimer un modèle à deux voies.
La chute nationale du déplacement après 2016 touche toutes les municipalités simultanément. Le retrait des effets annuels empêche le modèle spatial d'attribuer cette tendance commune à une dépendance entre municipalités voisines.
Le retrait des effets d'annéesrc/p03_modeles_panel.py
def deux_voies(matrice: np.ndarray) -> np.ndarray:
"""
Retire la moyenne annuelle de chaque colonne.
Les modèles de panel de spreg absorbent les effets fixes individuels. Les
effets d'année sont retirés en amont afin d'estimer un modèle à deux voies.
Sans cette étape, une tendance nationale commune, par
exemple la chute générale du déplacement après 2016, serait attribuée à la
dépendance spatiale : toutes les municipalités baissent en même temps, donc
chacune ressemble à ses voisines.
"""
return matrice - matrice.mean(axis=0, keepdims=True)
Autocorrélation résiduelle du modèle non spatial
Le diagnostic utilise l'indice de Moran des résidus de M1. Les tests du multiplicateur de Lagrange pour panel construisent, dans leur implémentation spreg, une matrice pleine de 24 662 sur 24 662, soit 4,5 Go. L'indice de Moran évalue l'autocorrélation résiduelle avec un coût de calcul réduit.
Il vaut 0,294 en médiane et reste significatif à 1 ‰ dans les vingt-deux années estimées. Après retrait des effets fixes, des effets d'année et des violences locales décalées, les résidus restent fortement groupés dans l'espace.
Le Moran des résidus descend de 0,289 en moyenne sur 2001-2010 à 0,213 sur 2011-2015, puis remonte à 0,340 sur 2016-2022. Il atteint son minimum en 2013, à 0,184, et son maximum en 2020, à 0,399.
La période récente, utilisée pour la programmation actuelle, présente l'autocorrélation résiduelle la plus élevée. Les violences locales expliquaient une part plus grande de la géographie du déplacement pendant le pic du conflit. Depuis l'accord, la composante résiduelle est davantage groupée dans l'espace. Un modèle non spatial estimé sur les seules années récentes accentuerait ce biais.
Réduction des coefficients après ajout du terme spatial
| Variable, décalée d'un an | M1 effets fixes | M2 décalage | M3 erreur | Écart M1 à M2 |
|---|---|---|---|---|
| Violence létale | 0,447 | 0,274 | 0,277 | −38,7 % |
| Menaces | 0,510 | 0,335 | 0,334 | −34,3 % |
| Combats et engins explosifs | 0,105 | 0,057 | 0,077 | −46,0 % |
| Paramètre spatial | ρ = 0,549 | λ = 0,586 | ||
| AIC | 293 713 | 294 681 |
Tous les coefficients sont significatifs à 1 ‰. Les écarts types de M1 sont groupés par municipalité, les observations d'une même municipalité sur vingt ans n'étant pas indépendantes.
L'ajout du terme spatial réduit les coefficients d'un tiers à près de la moitié. M1 attribuait aux violences locales une part liée à la dépendance entre voisines. À nombre de paramètres égal, le décalage spatial présente un AIC inférieur de 968 points à celui de l'erreur spatiale.
Une erreur spatialement autocorrélée correspondrait à un facteur commun non observé qui traverse les frontières, par exemple un relief, une route ou un groupe armé. Le décalage spatial indique que le déplacement dans une municipalité dépend du déplacement chez ses voisines. Cette spécification conduit à traiter les grappes de municipalités comme unités d'intervention.
Diffusion et allocation
Dans un modèle à décalage spatial, l'effet marginal intègre les interactions successives entre une municipalité et ses voisines. Une hausse affecte les communes voisines, puis rétroagit partiellement sur la municipalité initiale. La décomposition sépare les .
La décompositionsrc/p03_modeles_panel.py
n = w.n
W = w.full()[0]
inverse = np.linalg.inv(np.eye(n) - rho * W)
trace_moyenne = np.trace(inverse) / n
somme_moyenne = inverse.sum() / n
for nom, beta in zip([LIBELLES[c] for c in EXPLICATIVES], betas):
direct = trace_moyenne * beta # inclut la boucle de retroaction
total = somme_moyenne * beta # beta / (1 - rho)
indirect = total - direct # deversement sur les voisines
| Variable, décalée d'un an | Effet direct | Effet indirect | Effet total | Part déversée |
|---|---|---|---|---|
| Violence létale | 0,293 | 0,315 | 0,608 | 51,8 % |
| Menaces | 0,358 | 0,386 | 0,744 | 51,8 % |
| Combats et engins explosifs | 0,060 | 0,065 | 0,125 | 51,8 % |
Part déversée identique pour les trois variables
Les trois valeurs identiques de la colonne résultent de la spécification du modèle.
L'effet total vaut β / (1 − ρ) et l'effet direct s'obtient en multipliant β par la trace moyenne de l'inverse de (I − ρW). Le coefficient β est commun aux deux expressions et disparaît de leur rapport. La part déversée dépend de ρ et de la matrice de voisinage, indépendamment de la variable.
Le paramètre spatial fixe la géographie de la diffusion. Les coefficients en déterminent l'intensité. Un modèle de Durbin spatial ajouterait les variables explicatives décalées dans l'espace et autoriserait des parts distinctes par variable. Son estimation constitue la première extension proposée.
Conséquences pour l'allocation
Environ la moitié de l'effet d'un choc se diffuse vers des municipalités voisines situées hors du périmètre financé, puis rétroagit partiellement sur la municipalité initiale.
Les cinquante-quatre municipalités en grappe persistante et les grappes auxquelles elles appartiennent constituent les unités d'intervention retenues. La conception des programmes suit les grappes, avec des décaissements maintenus par municipalité.
Limites de l'analyse
Absence d'identification causale
Les faits de violence et le déplacement sont enregistrés par la même administration à partir des mêmes déclarations. Un décalage d'un an ne rend pas ces variables exogènes. L'anticipation d'une menace, la saturation des communes d'accueil et l'extension d'un contrôle territorial produiraient le même ρ. Le modèle ne permet pas de départager ces mécanismes.
Nature administrative du registre
Le registre compte les personnes reconnues victimes après leur déclaration et son traitement par l'administration. Les zones où l'État est le plus absent sont vraisemblablement les plus exposées à la sous-déclaration. Ce biais atténuerait les valeurs dans les zones où elles devraient être les plus élevées.
Vingt-trois ans traités comme un seul régime
Les coefficients sont estimés sur toute la période. La relation entre violence enregistrée et déplacement évolue au fil des années. Entre 2020 et 2022, le déplacement est multiplié par 2,7 et la violence létale enregistrée par 1,4. La remontée du Moran des résidus après 2016 va dans le même sens. Une estimation par sous-périodes permettrait de mesurer un éventuel changement de ρ.
Les frontières sont figées au millésime 2020
La Colombie a créé quelques municipalités sur la période. Sept codes du registre restent sans géométrie correspondante.
Exclusion de la coca
Le jeu SIDIH s'arrête en 2013 et ses totaux nationaux valent environ trois fois les chiffres publiés par l'ONUDC. Un facteur d'échelle constant serait absorbé par les effets fixes. Son intégration réduirait le panel de dix ans. L'arbitrage est documenté dans data/README_data.md.
Reproduire
La chaîne comprend quatre étapes. Chacune écrit ses sorties sur disque et lit celles de l'étape précédente.
Lancer la chaînerun_all.py
python -m venv .venv
.venv\Scripts\pip install -r requirements.txt
python run_all.py # chaine complete
python run_all.py --depuis 2 # reprend apres la construction du panel
| Étape | Traitement | Sortie principale |
|---|---|---|
| 1 | Lecture du registre, nettoyage, assemblage du panel | panel.parquet |
| 2 | Voisinages, Moran global et local | lisa.parquet, voisinages.pkl |
| 3 | Les trois modèles et la décomposition | outputs/tables/03_*.csv |
| 4 | Cartes et graphiques | outputs/figures/ |
Sources déjà téléchargées, l'exécution prend une vingtaine de minutes. La lecture du registre et l'assemblage du panel en demandent sept. L'étape 2 en demande six, avec 999 permutations par année pour chacune des deux définitions du voisinage.
Le fichier src/config.py centralise la fenêtre, les libellés exacts du champ HECHO, le nombre de voisins, le nombre de permutations, les quatre années cartographiées et la transformation, avec la justification de chaque paramètre. Une faute dans un libellé produirait une colonne de zéros sans lever d'erreur. Avant le filtrage, l'étape 1 vérifie la présence de chaque libellé dans le registre.
Le script docs/colombia-displacement/figures/documentation_figures.py produit les deux graphiques propres à cette page à partir des tableaux de la chaîne. Il vérifie les trois nombres cités à partir des résultats déjà calculés.
Le carnet d'analyse complet reprend les sorties intermédiaires.