10 — Algèbre des distances civilisationnelles¶
Avertissement éthique : Ce profil est inféré à partir de sources publiques agrégées. Il ne doit pas être utilisé pour classer des individus réels.
1. Besoin¶
Comparer rigoureusement deux États (ou un État et une civilisation, ou deux civilisations) dans un cadre cohérent et multi-métrique, parce qu'aucune distance unique ne capture toutes les facettes d'une affinité civilisationnelle :
- distance visuelle dans le plan IW,
- distance psycho-sociale dans Hofstede,
- distance d'identité sur le simplexe d'affinité,
- distance de structure interne entre seconds moments
M(s)(cf. doc 09).
2. Définitions formelles¶
Soit deux États s et t, leurs coordonnées (xₛ^viz, xₛ^score, wₛ, M_s) et (xₜ^viz, xₜ^score, wₜ, M_t).
2.1 Distance visuelle dans B_viz¶
Euclidienne dans le plan Inglehart-Welzel. Distance primaire de visualisation.
2.2 Distance Euclidienne dans B_score¶
Baseline scoring. Suppose des unités comparables (Hofstede 0-100 par axe).
2.3 Mahalanobis dans B_score — deux versions¶
La v3.0 publie deux versions de la distance de Mahalanobis (cf. doc 11 §D14) :
2.3.1 Inter-civilisationnelle (centroïdes) — d_score_mahalanobis_centroids¶
où Σ_centroids est la covariance pondérée des 11 centroïdes civilisationnels dans B_score (avec régularisation ridge λ=1.0). Cette version mesure les écarts à l'aune de la dispersion inter-civilisationnelle.
Limite : estimée sur 11 observations en ℝ⁶ + ridge. Statistiquement peu robuste. Conservée pour comparabilité v2.0.
2.3.2 Intra-civilisationnelle (variance interne) — d_score_mahalanobis_intra ⭐ nouveauté v3.0¶
où Σ_intra est la covariance intra-civilisationnelle pondérée, calculée comme :
Σ_intra[k, k] = ⟨σᵢ^score[k]²⟩ᵢ # moyenne des variances par-axe au sein des civilisations
Σ_intra[k, l] = 0 pour k ≠ l # diagonale par approximation
Σ_intra ← Σ_intra + ridge · I # régularisation
Cette version pondère les axes Hofstede par leur variance intra-civilisationnelle moyenne : un axe avec une grande dispersion à l'intérieur des civilisations (par exemple MAS — culturalement bruité) pèse moins dans la distance qu'un axe avec une faible dispersion (par exemple LTO, plus discriminant).
C'est la version recommandée par défaut, utilisée par d_hyb.
2.4 Distance cosinus sur les vecteurs d'affinité¶
Distance d'identité civilisationnelle. ⚠️ Ce n'est pas une vraie distance (ne vérifie pas l'inégalité triangulaire) — étiquetée dissimilarity dans le code.
2.5 Divergence de Jensen-Shannon¶
d_w^JS est une vraie distance (la racine carrée de la divergence JS satisfait l'inégalité triangulaire). Distance d'information sur les distributions d'affinité.
2.6 Distance de Wasserstein-2 sur le simplexe¶
Sur le simplexe Δ¹⁰ des 11 civilisations, avec matrice de coûts au sol :
la distance de Wasserstein-2 est :
Distance géométriquement consistante : deux États proches de civilisations adjacentes ont une d_w^W plus faible que de civilisations éloignées.
Implémentation : algorithme de Sinkhorn (régularisation entropique, ε=0.05) en NumPy pur — voir packages/civvec_core/algebra/transport.py. Pas de dépendance POT.
Circularité partielle assumée¶
d_w^W utilise des affinités w dérivées des centroïdes μ, et un coût au sol lui-même dérivé des mêmes centroïdes. Cette circularité est explicitement reconnue (cf. doc 11 §D16) : la métrique est fiable pour comparer deux États relativement, mais ne donne pas une mesure absolue interprétable hors de ce contexte.
Travail futur : explorer un coût au sol indépendant (par exemple distances Pew religieuses inter-civilisations).
2.7 Distance de Frobenius sur les seconds moments¶
Distance de structure interne : deux États avec des seconds moments similaires (mêmes directions principales, magnitudes comparables) sont proches.
Renommée v3.0 depuis d_T_frobenius (anciennement « Frobenius sur les tenseurs de tension »).
2.8 Distance hybride¶
Définition formelle v3.0¶
Chaque composante est normalisée par sa médiane panel avant la combinaison convexe :
d̃ = d / median(d_panel_off_diagonal_upper_triangle)
d_hyb(s, t) = α · d̃_score^M_intra(s, t) + β · d̃_w^W(s, t) + γ · d̃_M_F(s, t)
avec α + β + γ = 1.
Justification de la normalisation : sans elle, les trois composantes opèrent sur des échelles différentes (Mahalanobis ~ 0.5-3, Wasserstein ~ 20-100 sur Hofstede 0-100, Frobenius ~ 1000-10000). La médiane panel ramène chaque composante à un panel relatif où 1.0 = médiane, ce qui rend les poids (α, β, γ) interprétables comme importances relatives, pas comme arbitrages d'unités.
Poids par défaut¶
V3.0 : α = 0.4, β = 0.4, γ = 0.2.
Ce choix privilégie la position Hofstede et l'affinité tout en intégrant l'information structurelle. La sensibilité à ce choix est mesurée dans doc 13 — typiquement, le clustering est robuste pour (α, β, γ) proches de l'uniforme (0.33, 0.33, 0.33) mais sensible aux coins.
Poids modifiables interactivement via la page Streamlit 9_Distance_Algebra.py.
3. Propriétés (à garantir par tests)¶
| Distance | Non-négativité | Symétrie | Identité d(s,s)=0 | Triangle |
|---|---|---|---|---|
d_viz |
✓ | ✓ | ✓ | ✓ |
d_score^E |
✓ | ✓ | ✓ | ✓ |
d_score^M_centroids |
✓ | ✓ | ✓ | ✓ |
d_score^M_intra |
✓ | ✓ | ✓ | ✓ |
d_w^cos |
✓ | ✓ | ✓ | ✗ |
d_w^JS |
✓ | ✓ | ✓ | ✓ |
d_w^W |
✓ | ✓ | ✓ | ✓ |
d_M_F |
✓ | ✓ | ✓ | ✓ |
d_hyb |
✓ | ✓ | ✓ | ✓ (par combinaison convexe) |
Tests dans tests/test_distance_algebra.py.
4. Cas d'usage¶
| Question | Distance recommandée |
|---|---|
| Quels États sont visuellement proches ? | d_viz |
| Quels États ont des dimensions Hofstede similaires (robuste) ? | d_score^M_intra |
| Quels États ont des dimensions Hofstede similaires (centroid-aware) ? | d_score^M_centroids |
| Quels États ont la même identité civilisationnelle ? | d_w^cos ou d_w^JS |
| Quels États ont des affinités géométriquement cohérentes ? | d_w^W |
| Quels États ont la même structure de second moment ? | d_M_F |
| Quels États sont globalement les plus proches ? | d_hyb |
| Clustering hiérarchique des États | d_hyb (linkage Ward) |
5. Schéma JSON¶
Cf. schemas/distance_matrix.schema.json. La matrice publiée porte toutes les métriques :
{
"_meta": {
"schema": "distance_matrix.schema.json",
"n_states": 60,
"hybrid_weights": { "alpha": 0.4, "beta": 0.4, "gamma": 0.2 },
"hybrid_components_normalised_by": "panel_median",
"hybrid_components": [
"d_score_mahalanobis_intra",
"d_w_wasserstein",
"d_M_frobenius"
],
"panel_medians": { ... },
"affinity_beta": 0.05
},
"iso3_order": ["ARG", "AUS", ...],
"matrices": {
"d_viz": [...],
"d_score_euclidean": [...],
"d_score_mahalanobis_centroids": [...],
"d_score_mahalanobis_intra": [...],
"d_w_cosine": [...],
"d_w_js": [...],
"d_w_wasserstein": [...],
"d_M_frobenius": [...],
"d_hybrid": [...]
}
}
6. Limites¶
- Sensibilité aux centroïdes :
d_score^M_centroids,d_score^M_intra,d_w^W,d_M_Fdépendent toutes desμᵢ^score. Sensibilité quantifiée dans doc 13. - Wasserstein coûteux : O(n²) par paire d'États. Précalcul matrices NxN persistées en JSON pour panels stables. Le build site précalcule la matrice panel complète.
- Hybride éditorial : les poids
(α, β, γ) = (0.4, 0.4, 0.2)sont un choix de design assumé et soumis à relecture. La sensibilité publiée permet d'observer leur impact. - Pas de distance temporelle : V1 ne modélise pas la dérive culturelle (waves WVS successives). Phase ultérieure.
- Circularité de
d_w^W: voir §2.6.