Causal Discovery
La découverte causale reconstitue des graphes de relations de cause à effet à partir de données. Fonctionnement de l’algorithme PC et de ses successeurs, hypothèses et exemple exécutable.
La découverte causale consiste à déduire des données quelles variables causent quelles autres, afin de produire un graphe orienté dans lequel une flèche de X vers Y signifie que X influence directement Y. L’apprentissage automatique standard apprend des associations suffisantes pour la modélisation prédictive. La découverte causale cherche à déterminer lesquelles de ces associations résisteraient à une intervention, comme la modification du réglage d’une machine ou d’un plan de feux de circulation. Elle produit un ensemble de structures causales candidates, souvent avec certaines arêtes non orientées, que les spécialistes du domaine et les expériences affinent ensuite.
Qu’est-ce qui permet d’apprendre une structure causale ?#
Les graphes causaux sont généralement des graphes orientés acycliques (DAG), la même structure qu’utilise un réseau bayésien, interprétée ici de manière causale : chaque flèche représente un effet direct. Les algorithmes de découverte reposent sur trois hypothèses standard. Selon la condition de Markov causale, une fois les causes directes d’une variable connues, celle-ci est indépendante de toute variable qui n’est pas l’un de ses effets. La fidélité stipule que chaque indépendance observée dans les données découle de la structure du graphe et non d’effets qui s’annulent par hasard. La suffisance causale suppose qu’aucune variable non mesurée ne cause deux variables mesurées.
Même avec ces trois hypothèses, les données observationnelles ne permettent pas toujours de déterminer le sens des liens. La chaîne X → Y → Z, la chaîne inversée X ← Y ← Z et la bifurcation X ← Y → Z impliquent toutes le même schéma d’indépendance : X et Z deviennent indépendants une fois Y connu. Aucune quantité de données observationnelles ne permet donc de les distinguer. Le collisionneur X → Y ← Z est différent. X et Z sont indépendants pris séparément, mais deviennent dépendants une fois Y connu ; cette signature permet de déterminer le sens des deux flèches.
Les algorithmes renvoient donc une classe d’équivalence de Markov : un graphe partiellement orienté dont les arêtes orientées sont certaines et dont les arêtes non orientées peuvent pointer dans les deux sens. Cette même propriété explique une cause classique de biais des jeux de données : filtrer sur un collisionneur ou ajuster les données en fonction de celui-ci crée une dépendance entre ses causes, qui n’existe pas dans la population entière.
Algorithmes de découverte#
Trois familles couvrent la plupart des méthodes. Les algorithmes fondés sur des contraintes, comme PC — nommé d’après Peter Spirtes et Clark Glymour, qui l’ont publié en 1991 — partent d’un graphe non orienté entièrement connecté, suppriment les arêtes entre les variables jugées conditionnellement indépendantes, puis orientent les collisionneurs. FCI étend cette approche aux situations comportant des facteurs de confusion cachés. Les algorithmes fondés sur un score, comme la recherche d’équivalence gloutonne (GES), explorent les graphes pour trouver le meilleur score, par exemple selon le critère d’information bayésien ; NOTEARS reformule l’acyclicité comme une contrainte régulière afin de permettre une recherche par optimisation continue avec la descente de gradient. Les méthodes fonctionnelles comme LiNGAM supposent des relations linéaires avec un bruit non gaussien, ce qui permet d’identifier la direction de chaque arête, même entre seulement deux variables.
Les bibliothèques de découverte acceptent aussi l’ordre temporel, les contraintes physiques et les connaissances expertes sous forme de règles préalables qui interdisent ou imposent certaines arêtes. Cela réduit l’espace de recherche et permet d’orienter des arêtes que les seules données ne suffisent pas à orienter. La bibliothèque libre causal-learn met en œuvre les trois familles. Cet exemple génère des données à partir d’un collisionneur connu et le retrouve à l’aide de PC :
import numpy as np
from causallearn.search.ConstraintBased.PC import pc
rng = np.random.default_rng(0)
n = 5000
# Vérité terrain : la pluie et un événement au stade causent tous deux des embouteillages
rain = rng.normal(size=n)
event = rng.normal(size=n)
congestion = rain + event + rng.normal(scale=0.5, size=n)
# PC teste l’indépendance conditionnelle pour retrouver le graphe à partir des seules données
data = np.column_stack([rain, event, congestion])
result = pc(data, alpha=0.05, node_names=["rain", "event", "congestion"], show_progress=False)
print(result.G)Le résultat énumère deux arêtes orientées, pluie --> embouteillages et événement --> embouteillages. PC oriente les deux, car la pluie et l’événement sont indépendants, mais deviennent dépendants une fois les embouteillages connus. Si la réalité avait été une chaîne allant de la pluie aux embouteillages, puis aux retards, les arêtes seraient restées non orientées.
Applications de la découverte causale#
La biologie a fourni l’un des premiers jalons. En 2005, Karen Sachs et ses collègues ont appris un réseau de signalisation protéique comportant 11 protéines et phospholipides à partir de mesures unicellulaires. Ils ont retrouvé la plupart des liens connus, et les auteurs ont confirmé un nouveau lien prédit lors d’expériences de laboratoire ultérieures. En science du climat, des méthodes de séries temporelles comme PCMCI, mises au point par Jakob Runge et intégrées au paquet Tigramite, trouvent des liens causaux entre variables climatiques tout en tenant compte des décalages et de l’autocorrélation ; elles conviennent naturellement à l’analyse de séries temporelles. L’écosystème PyWhy associe des outils de découverte à DoWhy pour l’étape suivante : estimer l’ampleur d’un effet une fois le graphe fixé.
La vision par ordinateur peut fournir les variables. Le comptage d’objets avec Ultralytics YOLO26 dénombre les véhicules et les piétons qui franchissent une ligne ou une zone dans une vidéo de circulation. Les décomptes enregistrés par intervalle peuvent ensuite être associés à la météo, aux calendriers d’événements et à la synchronisation des feux avant l’exécution d’un algorithme de découverte.
Découverte causale et termes apparentés#
- Apprentissage de représentations causales : apprend les variables causales elles-mêmes à partir d’entrées brutes comme les pixels, ainsi que le graphe qui les relie. La découverte causale part de variables déjà mesurées.
- IA explicable (XAI) : explique quelles entrées ont influencé la prédiction d’un modèle, sans prétendre que modifier une entrée changerait le résultat dans le monde réel.
- Ingénierie des caractéristiques : sélectionne et construit des entrées qui améliorent la prédiction, y compris des variables uniquement corrélées à la cible. Un graphe causal identifie les variables dont la modification ferait évoluer la cible.










