Aperçu
DoWhy (Microsoft/py-why) fournit une inférence causale de bout en bout : modélisation de graphe causal (DAG), stratégies d'identification (back-door, front-door, variables instrumentales), estimation (régression linéaire, matching, IV, double-ML), et tests de réfutation (placebo, bootstrap, cause commune aléatoire, sous-ensemble de données).
Installation
uv pip install dowhy
Workflow complet
from dowhy import CausalModel
model = CausalModel(
data=df,
treatment="treatment",
outcome="outcome",
common_causes=["age", "gender", "income"],
)
# 1. Identify
identified = model.identify_effect(proceed_when_unidentifiable=True)
# 2. Estimate
estimate = model.estimate_effect(identified, method_name="backdoor.linear_regression")
print(f"ATE: {estimate.value:.4f} (p={estimate.p_value:.4f})")
# 3. Refute
refute = model.refute_estimate(identified, estimate, method_name="placebo_treatment_refuter")
print(f"Refutation passed: {refute.refutation_result}")