Causal Inference (Inférence Causale)
L’inférence causale est l’ensemble des méthodes statistiques et computationnelles qui permettent d’identifier des relations de cause à effet entre variables, en distinguant les effets causaux réels des simples corrélations dans les données observationnelles.
Le machine learning classique excelle à détecter des corrélations. La consommation de chocolat par habitant est corrélée au nombre de prix Nobel d’un pays. Mais cela ne signifie évidemment pas que manger du chocolat rend plus intelligent. L’inférence causale répond à une question fondamentalement différente : « Si je modifie la variable X, quel sera l’effet sur la variable Y ? » C’est la différence entre prédire ce qui va se passer (ML classique) et comprendre ce qui se passerait si on intervenait (inférence causale).
Cette distinction est critique pour la prise de décision. Une campagne marketing, un traitement médical, une politique publique : ce sont des interventions. Pour estimer leur effet, il ne suffit pas de trouver des corrélations dans des données historiques. Il faut raisonner causalement.
- Domaine
- Statistique, économétrie, épidémiologie, IA
- Figures fondatrices
- Judea Pearl (DAG, do-calculus), Donald Rubin (potential outcomes), Guido Imbens (Nobel 2021)
- Deux cadres théoriques
- Modèles causaux structurels (SCM, Pearl) et Résultats potentiels (Potential Outcomes, Rubin-Neyman)
- Outils Python
- DoWhy + EconML (écosystème PyWhy, Microsoft), CausalML (Uber), causal-learn, Tetrad
- Installation
pip install dowhy econml- Relation avec le ML
- Complémentaire : le ML prédit, l’inférence causale explique les mécanismes
- Adoption
- Gartner positionne la Causal AI comme technologie à « fort impact » à horizon 2-5 ans
Corrélation ≠ causalité : pourquoi le ML ne suffit pas
Un modèle de machine learning entraîné sur des données historiques capture des patterns statistiques. Mais ces patterns peuvent refléter des corrélations fallacieuses (spurious correlations) causées par des variables confondantes.
Prenons un exemple concret. Un hôpital entraîne un modèle pour prédire la mortalité des patients atteints de pneumonie. Le modèle découvre que les patients asthmatiques avec pneumonie ont un taux de mortalité plus bas. Conclusion naïve : l’asthme protège de la pneumonie. Réalité : les patients asthmatiques sont admis en soins intensifs plus rapidement, ce qui améliore leur pronostic. L’asthme ne protège pas, c’est le traitement plus agressif qui protège. Un modèle prédictif seul ne peut pas faire cette distinction.
L’inférence causale résout ce type de problème en modélisant explicitement les relations causales entre les variables et en estimant ce qui se passerait si on intervenait sur une variable spécifique, indépendamment des corrélations observées.
Les deux cadres théoriques
Modèles causaux structurels (Pearl)
Judea Pearl, lauréat du prix Turing 2011, a formalisé l’inférence causale via les Modèles Causaux Structurels (SCM). Le cadre repose sur trois composantes :
Les DAG (Directed Acyclic Graphs). Un graphe orienté sans cycle qui représente les relations causales entre variables. Chaque flèche X → Y signifie « X cause directement Y ». L’absence de flèche signifie l’absence de relation causale directe. Le DAG est le langage visuel de la causalité : il encode les hypothèses causales du domaine.
Le do-calculus. Un système formel d’opérations sur les distributions de probabilité qui permet de calculer l’effet d’une intervention. L’opérateur do(X=x) signifie « forcer la variable X à prendre la valeur x », par opposition à observer que X=x. La différence est fondamentale : observer que les parapluies sont ouverts ne cause pas la pluie, mais observer la pluie est corrélé aux parapluies ouverts. Intervenir (ouvrir un parapluie) n’affecte pas la météo.
Les équations structurelles. Chaque variable est définie par une équation causale qui spécifie comment elle dépend de ses parents dans le DAG et d’un terme de bruit. L’ensemble des équations constitue le mécanisme générateur des données.
Pearl organise le raisonnement causal en trois niveaux (la « échelle de la causalité ») :
| Niveau | Question | Outil | Exemple |
|---|---|---|---|
| 1. Association | Que se passe-t-il si j’observe X ? | Probabilité conditionnelle P(Y|X) | « Les fumeurs ont plus de cancers du poumon » |
| 2. Intervention | Que se passe-t-il si je modifie X ? | do-calculus P(Y|do(X)) | « Arrêter de fumer réduit-il le risque de cancer ? » |
| 3. Contrefactuel | Que se serait-il passé si X avait été différent ? | Modèles structurels complets | « Si ce patient n’avait pas fumé, aurait-il eu un cancer ? » |
Le ML classique opère au niveau 1 (associations). L’inférence causale monte aux niveaux 2 et 3. Les explications contrefactuelles opèrent au niveau 3.
Résultats potentiels (Rubin-Neyman)
Le cadre des résultats potentiels (Potential Outcomes), formalisé par Donald Rubin et Jerzy Neyman, adopte une perspective complémentaire. Pour chaque unité (individu, entreprise, patient), on définit deux résultats potentiels : Y(1) le résultat si l’unité reçoit le traitement, et Y(0) le résultat si elle ne le reçoit pas. L’effet causal individuel est Y(1) – Y(0).
Le problème fondamental de l’inférence causale est qu’on ne peut jamais observer les deux résultats potentiels pour la même unité au même moment. C’est le « problème du contrefactuel fondamental ». L’inférence causale estime l’effet causal moyen (ATE = Average Treatment Effect) en utilisant des données de groupes traités et non-traités, sous des hypothèses d’identification précises.
Les deux cadres (Pearl et Rubin) sont mathématiquement compatibles et se complètent. Pearl est plus fort pour la modélisation des mécanismes causaux (via les DAG), Rubin est plus fort pour l’estimation statistique des effets (via le design expérimental). L’écosystème PyWhy (DoWhy) unifie les deux approches.
Les méthodes principales
Essais randomisés contrôlés (RCT)
L’étalon-or de l’inférence causale. On assigne aléatoirement les unités au groupe traité ou au groupe contrôle. La randomisation élimine les confondants (variables qui affectent à la fois le traitement et le résultat). En tech, les RCT sont les A/B tests. La différence moyenne entre les groupes donne directement l’effet causal.
Limite : les RCT ne sont pas toujours possibles (éthique, coût, temps). On ne peut pas randomiser le tabagisme pour étudier son effet sur le cancer. C’est pourquoi les méthodes observationnelles sont indispensables.
Méthodes pour données observationnelles
| Méthode | Principe | Hypothèse clé | Cas d’usage |
|---|---|---|---|
| Ajustement par régression | Contrôler les confondants en les incluant comme covariables | Tous les confondants sont observés et inclus | Effet d’un programme de fidélité sur les achats |
| Propensity Score Matching | Apparier les unités traitées/contrôle par probabilité de recevoir le traitement | Pas de confondants non observés (ignorabilité) | Effet d’un traitement médical sur des données de cohorte |
| Pondération inverse (IPW) | Pondérer les observations par l’inverse de la probabilité de traitement | Ignorabilité + positivité (chaque unité a une chance non nulle d’être traitée) | Évaluation de politique publique |
| Variables instrumentales (IV) | Utiliser une variable qui affecte le traitement mais pas directement le résultat | L’instrument satisfait l’exclusion et la pertinence | Effet de l’éducation sur le revenu (distance à l’université comme instrument) |
| Différence-en-différences (DiD) | Comparer l’évolution avant/après traitement entre groupe traité et groupe contrôle | Tendances parallèles (les groupes auraient évolué de la même manière sans intervention) | Effet d’un changement de prix, d’une loi |
| Contrôle synthétique | Construire un « clone » du groupe traité à partir d’une combinaison pondérée de groupes contrôle | Le groupe synthétique approxime bien le contrefactuel | Effet d’une politique sur un pays/région |
| Double Machine Learning (DML) | Utiliser le ML pour estimer les « nuisance parameters » (modèle de résultat et modèle de traitement) et obtenir un estimateur causal débiaisé | Ignorabilité + régularité | Estimation d’effets causaux avec beaucoup de covariables |
| Causal Forests | Adapter les forêts aléatoires pour estimer des effets causaux hétérogènes (CATE) par sous-groupes | Ignorabilité | Personnalisation : quel traitement fonctionne pour quel profil ? |
Découverte causale (Causal Discovery)
Les méthodes précédentes supposent qu’on connaît la structure causale (le DAG). Mais que faire quand on ne connaît pas les relations causales entre variables ? La découverte causale (causal discovery) infère automatiquement le DAG à partir des données, en exploitant les indépendances conditionnelles et les contraintes structurelles.
Les algorithmes principaux sont le PC (Peter-Clark), le FCI (Fast Causal Inference) et le GES (Greedy Equivalence Search). La bibliothèque causal-learn (du projet PyWhy) implémente ces algorithmes en Python. La découverte causale est utile pour l’exploration de domaines mal compris, mais ses résultats doivent être validés par l’expertise du domaine : l’algorithme peut identifier la structure correcte, mais aussi des artefacts statistiques.
L’écosystème Python : PyWhy
L’écosystème PyWhy, piloté par Microsoft Research, est devenu le standard pour l’inférence causale en Python. Il regroupe plusieurs bibliothèques spécialisées sous une API commune.
DoWhy : le framework central
DoWhy implémente un pipeline d’inférence causale en quatre étapes : modéliser (définir le DAG et les hypothèses causales), identifier (vérifier si l’effet causal est identifiable à partir des données), estimer (calculer l’effet causal avec un estimateur statistique), et réfuter (tester la robustesse de l’estimation par des vérifications automatiques).
import dowhy
from dowhy import CausalModel
# Définir le modèle causal via un DAG
model = CausalModel(
data=df,
treatment='programme_fidelite',
outcome='achats_futurs',
common_causes=['age', 'revenu', 'anciennete_client'],
graph="""
digraph {
age -> programme_fidelite;
age -> achats_futurs;
revenu -> programme_fidelite;
revenu -> achats_futurs;
anciennete_client -> programme_fidelite;
anciennete_client -> achats_futurs;
programme_fidelite -> achats_futurs;
}
"""
)
# Identifier l'effet causal
identified = model.identify_effect()
# Estimer l'effet causal
estimate = model.estimate_effect(
identified,
method_name="backdoor.propensity_score_matching"
)
print(f"Effet causal estimé : {estimate.value:.2f}")
# Réfuter l'estimation (test de robustesse)
refutation = model.refute_estimate(
identified, estimate,
method_name="random_common_cause"
)
print(refutation)
La force de DoWhy est l’étape de réfutation : elle teste automatiquement si l’estimation est robuste en ajoutant des confondants aléatoires, en remplaçant le traitement par un placebo, ou en sous-échantillonnant les données. Si l’estimation résiste à ces tests, la confiance augmente.
EconML : les estimateurs avancés
EconML, également de Microsoft Research (projet ALICE), implémente les estimateurs les plus avancés à l’intersection du ML et de l’économétrie : Double Machine Learning, Causal Forests (via GRF), meta-learners (S-learner, T-learner, X-learner), doubly robust learners, et des méthodes pour les variables instrumentales avec ML.
EconML s’intègre directement dans DoWhy comme backend d’estimation, permettant d’utiliser les estimateurs avancés tout en bénéficiant du pipeline de modélisation et de réfutation de DoWhy.
# Utiliser EconML via DoWhy pour l'estimation CATE
from sklearn.ensemble import GradientBoostingRegressor
from sklearn.linear_model import LassoCV
dml_estimate = model.estimate_effect(
identified,
method_name="backdoor.econml.dml.DML",
target_units="ate",
method_params={
"init_params": {
'model_y': GradientBoostingRegressor(),
'model_t': GradientBoostingRegressor(),
'model_final': LassoCV()
},
"fit_params": {}
}
)
print(f"ATE estimé par DML : {dml_estimate.value:.2f}")
Autres outils de l’écosystème
| Outil | Organisation | Spécificité |
|---|---|---|
| CausalML | Uber | Meta-learners pour l’estimation d’effets hétérogènes, optimisé pour les cas de personnalisation et d’uplift modeling |
| causal-learn | PyWhy | Algorithmes de découverte causale (PC, FCI, GES) en Python |
| Tetrad | Carnegie Mellon | Suite Java historique pour la découverte causale avec interface graphique |
| CausalNex | QuantumBlack (McKinsey) | Réseaux bayésiens pour la modélisation causale en entreprise |
| grf (R) | Stanford (Athey & Wager) | Causal Forests (generalized random forests) en R, l’implémentation de référence |
| CausalTune | PyWhy | AutoML pour l’inférence causale : sélection automatique du meilleur estimateur |
Pièges classiques que l’inférence causale résout
Paradoxe de Simpson
Un exemple célèbre : un hôpital A a un taux de mortalité global plus élevé que l’hôpital B. Faut-il éviter l’hôpital A ? Pas forcément. Si on décompose par gravité des patients, l’hôpital A a de meilleurs résultats dans chaque catégorie. Il reçoit simplement plus de cas graves. Le paradoxe de Simpson survient quand une tendance observée dans les données agrégées s’inverse quand on stratifie par une variable confondante. L’inférence causale, via le DAG, identifie automatiquement cette variable confondante et recommande le bon conditionnement.
Biais de sélection
Vous analysez les données de survie de patients hospitalisés et découvrez que le traitement A est associé à une mortalité plus élevée que le traitement B. Conclusion : le traitement A est dangereux ? Pas nécessairement. Si le traitement A est prescrit aux patients les plus graves, le biais de sélection fausse la comparaison. L’inférence causale contrôle ce biais via le propensity score matching (appariement de patients similaires ayant reçu des traitements différents) ou l’IPW (repondération pour simuler une randomisation).
Variable confondante
La consommation de glaces est corrélée aux noyades. Interdire les glaces ne réduira pas les noyades : la température (variable confondante) cause à la fois l’augmentation de consommation de glaces et celle des baignades. Le DAG modélise explicitement cette structure, et le do-calculus calcule l’effet causal réel en « bloquant » le chemin passant par le confondant.
Inférence causale en production
L’inférence causale sort progressivement du monde académique pour entrer dans les pipelines de production des entreprises tech. Voici comment elle s’intègre concrètement.
A/B tests augmentés. Les plateformes de test A/B intègrent de plus en plus des méthodes causales avancées. Quand un test classique manque de puissance statistique (effet petit, échantillon limité), les méthodes CUPED (Controlled-experiment Using Pre-Experiment Data) et la stratification par propensity score augmentent la précision des estimations d’effet. Microsoft, Netflix et Spotify utilisent ces techniques en production.
Attribution marketing causale. Plutôt que d’utiliser des modèles d’attribution basés sur des heuristiques (last-click, first-click, linéaire), l’attribution causale estime l’effet incrémental réel de chaque canal marketing. Les Causal Forests et le DML permettent de quantifier combien de conversions sont réellement causées par chaque canal, plutôt que simplement corrélées.
Pricing causal. L’estimation de l’élasticité-prix est un problème fondamentalement causal. Les données observationnelles de prix et de ventes sont confondées par la demande, les promotions, les saisons. Les variables instrumentales et le DML permettent d’estimer l’effet causal du prix sur les ventes, essentiel pour optimiser la tarification.
Détection d’anomalies causale. Le framework GCM de DoWhy permet l’analyse de causes racines dans les systèmes distribués. Quand une métrique se dégrade, au lieu de corréler avec d’autres métriques, on identifie la cause racine en traçant les effets à travers le DAG du système.
Cas d’usage
Marketing et personnalisation
La question typique : « Notre programme de fidélité augmente-t-il réellement les achats, ou les clients qui s’inscrivent auraient-ils acheté de toute façon ? » Le ML classique ne peut pas répondre (biais de sélection : les clients motivés s’inscrivent ET achètent plus). L’inférence causale avec propensity score matching ou DML isole l’effet causal du programme. Les Causal Forests vont plus loin : elles identifient quels segments de clients bénéficient le plus du programme, permettant un ciblage personnalisé.
Santé et essais cliniques
L’inférence causale est omniprésente en épidémiologie et en recherche clinique. Quand un RCT n’est pas possible (éthique, coût), les méthodes observationnelles estiment l’effet d’un traitement à partir de données de cohorte. Les méthodes de pondération et les variables instrumentales permettent de contrôler les confondants observés et (partiellement) non observés.
Tech et produit
Les A/B tests sont la norme, mais ils ne sont pas toujours possibles. Quand on ne peut pas randomiser (changement de design affectant tous les utilisateurs, lancement dans un seul pays), les méthodes quasi-expérimentales (DiD, contrôle synthétique) estiment l’effet causal. DoWhy est utilisé par Microsoft et d’autres pour l’attribution causale dans les pipelines produit.
Root cause analysis
DoWhy supporte l’analyse de causes racines dans les systèmes complexes : pourquoi la latence a-t-elle augmenté dans un microservice ? Quel composant de la supply chain est responsable d’un changement de performance ? Le framework GCM (Graphical Causal Model) de DoWhy modélise le système comme un DAG et quantifie la contribution causale de chaque composant.
Inférence causale et ML : convergences
L’inférence causale et le machine learning convergent de plus en plus, dans les deux directions.
Le ML au service de la causalité. Les algorithmes de ML (gradient boosting, réseaux de neurones, random forests) sont utilisés comme composants des estimateurs causaux. Le DML utilise le ML pour estimer les modèles de nuisance. Les Causal Forests utilisent les arbres de décision pour estimer des effets hétérogènes. Les architectures de deep learning spécialisées (TARNet, CFRNet, DragonNet) estiment des effets de traitement dans des espaces de haute dimension.
La causalité au service du ML. Le raisonnement causal améliore la robustesse des modèles ML. Un modèle qui apprend des relations causales (plutôt que de simples corrélations) généralise mieux à de nouvelles distributions. La causalité permet aussi de construire des modèles plus équitables (identifier et neutraliser les chemins causaux discriminatoires) et plus explicables (les contrefactuels s’appuient directement sur le raisonnement causal).
Limites et pièges
Tout repose sur les hypothèses
L’inférence causale ne crée pas de causalité à partir de rien. Toute estimation causale repose sur des hypothèses (le DAG est correct, il n’y a pas de confondants non observés, etc.). Si les hypothèses sont fausses, l’estimation est biaisée. La phrase de Nancy Cartwright, « No causes in, no causes out » (pas de causes en entrée, pas de causes en sortie), résume le point : vous devez injecter des connaissances causales du domaine dans le modèle pour en obtenir des conclusions causales.
Confondants non observés
Le talon d’Achille des méthodes observationnelles. Si une variable importante affecte à la fois le traitement et le résultat mais n’est pas mesurée, l’estimation causale sera biaisée. Les analyses de sensibilité permettent d’évaluer à quel point l’estimation est fragile face à d’éventuels confondants non observés, mais elles ne résolvent pas le problème.
Scalabilité
La découverte causale (apprentissage du DAG à partir des données) ne scale pas bien en haute dimension. Avec des centaines de variables, les algorithmes PC et FCI deviennent computationnellement coûteux et leurs résultats instables. Des approches récentes utilisant le score matching et le deep learning atténuent partiellement ce problème.
Complexité conceptuelle
L’inférence causale est conceptuellement plus exigeante que le ML prédictif. Elle nécessite une compréhension du domaine pour spécifier le DAG, des connaissances en statistique pour choisir la bonne méthode d’estimation, et une rigueur dans la formulation des hypothèses. C’est un investissement significatif en compétences.
Inférence causale et explicabilité
L’inférence causale est intimement liée à l’explicabilité de l’IA. Les méthodes de feature attribution comme SHAP mesurent des contributions statistiques, pas des effets causaux. SHAP vous dit que le code postal a contribué à 20% de la prédiction, mais pas si le code postal cause réellement le résultat. L’inférence causale va plus loin en distinguant les effets causaux directs des corrélations induites par les confondants.
Les explications contrefactuelles sont le pont le plus direct entre inférence causale et XAI. Un contrefactuel bien construit (intégrant les contraintes causales entre features) est plus fiable et plus actionnable qu’un contrefactuel naïf qui traite les features comme indépendantes.
Dans le contexte de l’AI Act, le raisonnement causal renforce la qualité des explications fournies. L’accountability exige de comprendre pourquoi un modèle a pris une décision, et les explications causales sont les plus robustes pour répondre à cette exigence.
Questions fréquentes sur l’inférence causale
Quelle est la différence entre corrélation et causalité en pratique ?
La corrélation mesure si deux variables varient ensemble. La causalité détermine si modifier une variable change l’autre. En pratique : un modèle ML peut découvrir que porter un manteau est corrélé avec la grippe (les deux arrivent en hiver). Mais distribuer des manteaux ne guérira personne de la grippe. L’inférence causale identifie le confondant (la saison) et isole l’effet causal réel. Pour la prise de décision (traitement, intervention, action marketing), seule la causalité est pertinente.
Peut-on faire de l’inférence causale sans expérimentation (A/B test) ?
Oui, c’est précisément l’objet des méthodes observationnelles. Le propensity score matching, les variables instrumentales, la différence-en-différences et le Double Machine Learning permettent d’estimer des effets causaux à partir de données historiques, sous des hypothèses spécifiques. La qualité de l’estimation dépend de la validité de ces hypothèses, en particulier l’absence de confondants non observés. Les méthodes de réfutation de DoWhy permettent de tester la robustesse des estimations.
DoWhy ou CausalML : lequel choisir ?
DoWhy est le framework généraliste : modélisation du DAG, identification, estimation (avec intégration d’EconML pour les estimateurs avancés), et réfutation. C’est le bon choix pour une analyse causale complète et rigoureuse. CausalML (Uber) est plus spécialisé dans l’estimation d’effets hétérogènes (CATE) via des meta-learners, optimisé pour les cas d’uplift modeling et de personnalisation. Pour un pipeline complet, utilisez DoWhy + EconML. Pour une estimation rapide d’effets hétérogènes de traitement, CausalML est une bonne alternative.
L’inférence causale est-elle utile pour les LLM ?
Oui, de plusieurs manières. Le raisonnement causal aide à rendre les LLM plus robustes (en les entraînant sur des invariances causales plutôt que des corrélations), à détecter et corriger les biais (via la counterfactual fairness), et à produire des explications contrefactuelles plus fiables. Les travaux d’interprétabilité mécanistique utilisent aussi des concepts causaux (activation patching, circuit tracing) pour comprendre les mécanismes internes des LLM. Le raisonnement causal dans les LLM eux-mêmes (capacité du modèle à raisonner causalement) est un sujet de recherche actif.
Faut-il toujours un DAG pour faire de l’inférence causale ?
Pas nécessairement. Le cadre des résultats potentiels (Rubin) ne requiert pas explicitement un DAG, mais des hypothèses d’identification (ignorabilité, positivité). Cependant, un DAG rend ces hypothèses explicites et vérifiables, ce qui est fortement recommandé. Si vous ne connaissez pas la structure causale, les algorithmes de découverte causale (PC, FCI, GES via causal-learn) peuvent proposer un DAG candidat à partir des données, que vous validerez ensuite avec l’expertise du domaine. Ne faites jamais confiance à un DAG appris automatiquement sans validation experte.