Note sur les corrélations
Corrélation n’est pas causalité. Ce dashboard montre des associations descriptives au niveau communal. Aucun lien causal n’est établi.
Le constat
49 indicateurs croisables × 35 000 communes = environ 1 200 paires possibles, soit autant de coefficients de corrélation calculés. La page Explorer affiche ces paires sous trois angles :
- Une heatmap 49 × 49 triée par thématique (vue d’ensemble).
- Un top 25 inter-thématiques ordonné par |ρ| (vue ranking).
- Un scatter interactif avec courbe LOESS et ρ live (vue zoom).
La page Bivariée affiche les paires pré-calculées dans une palette choroplèthe 3 × 3 terciles (Stevens 2015) — 9 classes par paire, 1 176 combinaisons disponibles.
Granularité par source
Les 13 sources n’ont pas la même maille native :
| Sujet | Maille native | Couverture | Date |
|---|---|---|---|
| Élections législatives | Commune (~35 000) | Quasi-totale | 2024 T2 (+ T1 fallback) |
| Municipales 2026 | Commune ≥ 1 000 hab. (~3 300) | Scrutin liste uniquement | 2026 T1+T2 |
| DVF immobilier | Commune (~35 000) | Variable selon N transactions | 2021-2024 |
| Atmo qualité air | Station (~700) → commune | Inégale, urbaine | 30 j glissants |
| SSMSI sécurité | Commune (~18 000 après secret) | Secret stat < 5 faits / 3 ans | 2025 |
| BAAC accidents | Commune (~11 000) | Communes avec ≥ 1 accident | 2024 |
| DGFiP finances | Commune (~35 000) | Quasi-totale | 2024 |
| APL DREES santé | Commune (~35 000) | Quasi-totale | 2023 |
| Espérance de vie INSEE | Commune (~28 000) | 81,6% match nom + dept | 2024 |
| FiLoSoFi revenus | Commune (~30 000) | Secret stat | 2021 |
| INSEE populations | Commune (~35 000) | Quasi-totale | 2017-2021 |
| INSEE grille densité | Commune (~35 000) | Quasi-totale | 2024 |
| DARES DEFM chômage | Commune (~7 400) | Limitée | 1 trimestre |
| RARE/CITEPA carbone | Commune (~34 800) | Quasi-totale | 2018 (EXIOBASE) |
| INSEE MOBPRO mobilité | Commune (~34 800) | Quasi-totale | RP 2019 |
| Agence Bio agriculture | Commune (~23 000) | Communes avec bio uniquement | 2024 |
Conséquence pratique. Une corrélation entre deux variables de couvertures différentes (par ex. air × DVF) est calculée sur leur intersection — moins de communes, distribution potentiellement biaisée vers les zones urbaines mieux couvertes par les stations Atmo.
Biais écologique
Une corrélation entre deux variables au niveau commune ne dit rien sur leur corrélation au niveau individuel. Exemple classique :
Si les communes où le vote RN est élevé ont aussi des prix au m² faibles, on ne peut pas en déduire que les électeurs RN paient leur logement moins cher individuellement. Le lien commune ≠ le lien individu.
C’est l’ecological fallacy (Robinson, 1950). Tout l’onglet Explorer et toutes les cartes bivariées sont soumis à cette limite.
Confondant urbain/rural
La densité urbaine est corrélée à presque toutes les variables d’intérêt :
- Vote : les communes denses votent plus à gauche / au centre ; les communes rurales votent davantage RN.
- Prix immobilier : croissant avec la densité (Spearman ~0,6).
- Pollution : NO₂ surtout, croissant avec la densité (trafic).
- Désert médical : APL souvent meilleur en zone dense (mais densité + pénurie urbaine spécifique : Paris a un APL faible malgré sa centralité).
- Empreinte carbone : surprenamment faible en zone dense (transport public, appartements moins énergivores). Confondant inversé.
- Mobilité voiture : croissante avec la ruralité, miroir du précédent.
- Abstention : variable selon les scrutins, souvent plus forte en périurbain.
Toute corrélation brute entre ces variables capture en grande partie ce confondant. La stratification par taille de commune (5 strates pop INSEE) permet d’observer les liens intra-strate et de dégonfler ce confondant.
Stratification
5 strates issues de la strate de taille INSEE (recensement) :
- Très petite (< 500 hab.)
- Rurale (500 - 2 000)
- Bourg / périurbain (2 000 - 10 000)
- Ville moyenne (10 000 - 50 000)
- Grande ville (≥ 50 000)
Les corrélations sont pré-calculées par paire de variables × strate (script 05_merge_and_explore.R). Le scatter de l’Explorer expose un selector de strate.
Une variable continue alternative est aussi disponible : densite_rang (1 = rural non périurbain → 6 = grand centre urbain, INSEE typologie 6 niveaux). Elle apparaît dans la heatmap et la Bivariée mais ne sert pas (encore) de variable de stratification dans l’Explorer.
Métriques
- Spearman (défaut) — coefficient de rang. Capture les relations monotones, robuste aux outliers. Adapté aux distributions à queues lourdes (prix m², délinquance ‰, surface bio).
- Pearson (alternative) — coefficient linéaire. Plus interprétable mais sensible aux valeurs extrêmes.
Les coefficients sont calculés par paire × méthode × strate, pré-calculés en amont du dashboard et sauvegardés dans data/processed/explorer/correlations.parquet (15 912 lignes).
Top corrélations — filtrage des tautologies
Le top 25 affiché à droite de la heatmap exclut les paires intra-thématique. Sans filtre, le top serait saturé par des tautologies :
del_total_pour_mille × del_vols_pers(ρ = 0,98) — la délinquance totale inclut les vols.fin_charges × fin_recettes(ρ = 0,99) — un budget équilibré.ctx_log_inscrits × ctx_log_pop(ρ = 0,99) — inscrits ≈ pop adulte.revenu_median × revenu_d9(ρ = 0,95) — la médiane et le D9 bougent ensemble.
Ces 4 paires apporteraient zéro information sur les liens réels entre sujets. Les filtrer fait remonter les corrélations inter-thématiques intéressantes : densité × vote, revenu × abstention, APL × population, CO₂ × revenu.
Lecture du bivariate choropleth
La carte bivariée encode deux variables sur une palette 3 × 3 (Stevens, 2015) :
- Axe horizontal — tercile de la variable X
- Axe vertical — tercile de la variable Y
- 9 classes au total, chaque commune appartient à une cellule
Les coins de la palette donnent les associations extrêmes ; le centre rassemble les communes “moyennes” sur les deux variables. La légende sert aussi de filtre : cliquer une cellule met en évidence les communes correspondantes.
16 paires pré-calculées côté R (scripts/05_merge_and_explore.R) — par ex. elec_pct_rn × dvf_prix_app, carb_hab_total × revenu_median, mob_pct_voiture × densite_rang, bio_surface_ha × elec_pct_nfp. Toutes les 1 176 paires possibles sont calculables côté JS si l’utilisateur change les selectors X/Y de la page Bivariée.
Profil radar — comparaison commune vs distribution
La page Profil commune encode une commune sur 8 dimensions normalisées en rang centile national (0 = bas, 100 = haut). Lecture :
- Polygone “rond et grand” (~50 sur tous les axes ou plus) = commune proche de la médiane FR sur tout.
- Polygone “écrasé en bas” sur revenu + APL + recettes = commune rurale paupérisée.
- Polygone “asymétrique” (haut sur revenus, prix, APL, faible sur CO₂ + voiture) = grande ville aisée bien équipée.
Le radar ne dit pas si une commune est “bonne” ou “mauvaise” — il dit où elle se situe dans la distribution. Un score 100 sur “Délinquance” signifie “plus forte délinquance que 99% des communes”, pas “plus dangereuse”.
Limites supplémentaires
- Snapshot temporel décalé. Les croisements impliquent une comparaison dernière observation contre dernière observation. Sources les plus anciennes : MOBPRO 2019 et carbone EXIOBASE 2018.
- Couverture air très inégale géographiquement (urbain surdoté, rural sous-couvert).
- Petites communes : les médianes DVF avec N < 5 sont grisées ; les pourcentages électoraux restent calculables mais bruités ; FiLoSoFi applique le secret statistique.
- Pas de variable de temps dans les corrélations. Une corrélation entre vote 2024 et revenu 2021 n’est pas erronée mais sa causalité est compliquée par les 3 ans entre les deux observations.