Answering "why" is a different computational problem than answering "what." Here's how the two main approaches stack up.
A dashboard tells you sales dropped 12% last quarter. It cannot tell you whether the drop was caused by the price increase, the new competitor, or a seasonal slump. That gap between description and explanation is where causal probabilistic explanation lives.
Causal probabilistic explanation aims to answer "why" questions by identifying causes and attaching probabilities to them—not just correlations. It's the difference between knowing that ice cream sales and drowning deaths rise together, and knowing that neither causes the other (heat drives both).
The formal machinery for this comes largely from Judea Pearl's structural causal models (SCMs), which use directed acyclic graphs (DAGs) and the do-calculus to separate seeing from doing. Probabilistic causal networks—Bayesian networks with a causal interpretation—can compute posterior probabilities of causes given evidence. Counterfactual reasoning, the most demanding level of the causal hierarchy, can be computed through abduction-action-prediction steps on an SCM.
There's a catch, and it's a big one. Exact inference in general Bayesian networks is NP-hard (Cooper, 1990), and causal discovery from observational data is NP-hard in the worst case (Chickering, 1996). This means the mathematically clean answers you want are often computationally out of reach for real-world problems.
So the field splits. On one side are exact methods that guarantee correctness but choke on scale. On the other are approximate methods that scale to millions of variables but trade accuracy for speed. This article compares them head-to-head.
Key Takeaway: Causal probabilistic explanation is computationally feasible—but "feasible" depends entirely on which method you choose and how much accuracy you're willing to sacrifice.
SCMs formalize causation using a set of structural equations and a causal graph. The do-calculus, introduced by Pearl in 1995, provides three rules for determining whether a causal effect is identifiable from observational data. Huang and Valtorta (2006) proved these rules are complete for semi-Markovian models—meaning if the do-calculus can't identify an effect, no method can.
This matters because it tells you when exact causal answers are even possible, before you worry about computation.
For a fully specified causal Bayesian network, exact inference computes the true posterior distribution over causes given evidence. Two workhorses dominate:
Both give you exact posterior probabilities, full distributions, and—with the right SCM—exact counterfactuals.
Cooper (1990) showed that exact inference in general Bayesian networks is NP-hard. Chickering (1996) showed learning the structure is NP-complete. The practical consequence: as network size and connectivity grow, computation time explodes exponentially.
There are escape hatches. Networks with bounded treewidth, tree-structured graphs, or small cliques remain tractable. But most real-world causal models—epidemiology, genomics, large-scale systems—don't have those nice properties.
Key Takeaway: Exact methods are the gold standard when they're tractable. Use them for small, safety-critical, or well-structured problems where being wrong is not an option.
Markov chain Monte Carlo (MCMC) and importance sampling approximate the posterior by drawing samples. With enough samples, MCMC converges to the true posterior (Gilks et al., 1996)—but "enough" can be a very large number for complex models. Convergence can be slow, and diagnosing it is its own art.
Variational inference (VI) reframes inference as optimization: find the closest tractable distribution to the true posterior. Blei et al. (2017) note that VI scales to large datasets but provides a lower bound on the marginal likelihood—trading accuracy for speed. It's fast, deterministic, and works well when you need answers now rather than perfect answers later.
When you don't know the causal graph, you have to learn it. Three families of methods dominate:
NOTEARS was a meaningful step because it turned a combinatorial problem into a smooth one—though it comes with its own assumptions (linearity, acyclicity constraints).
Tools like Pyro and Stan let you specify a causal model declaratively and let the inference engine handle the rest. You write the model; the system picks (or you specify) an inference method—MCMC, VI, or something hybrid.
Key Takeaway: Approximate methods are the only realistic option for large-scale causal explanation. They trade a guarantee of correctness for a chance at tractability—and usually that trade is worth it.
| Dimension | Exact Methods | Approximate Methods |
|---|---|---|
| Accuracy | Guaranteed correct | Bounded error / sampling variance |
| Time complexity | Exponential in worst case | Polynomial per iteration (typically) |
| Memory | Exponential in treewidth | Linear to model size |
| Scalability | Small networks only | Large to very large |
| Counterfactuals | Exact | Approximate, often good enough |
| Implementation | pgmpy, custom code | Pyro, Stan, DoWhy, CausalNex |
| Diagnostics needed | Minimal | Extensive |
| Best for | Safety-critical, small models | Real-time, big data, exploratory |
Exact methods give you the true posterior. Full stop. Approximate methods give you an estimate with error bars—or, in the case of VI, a lower bound on the evidence. For most business decisions, the difference is negligible. For a criminal trial or a clinical trial, it isn't.
A 20-node network with moderate connectivity might be fine with variable elimination. A 200-node network will not be. Approximate methods handle the latter routinely, but each query takes time proportional to the number of samples or optimization iterations.
This is the decisive axis. Exact methods hit a wall. Approximate methods keep going. If your problem is large, the choice is made for you.
Exact inference is straightforward in pgmpy for small networks. Approximate inference requires more setup—choosing a sampler, tuning hyperparameters, checking convergence—but mature libraries (Pyro, Stan) make it manageable. DoWhy (Sharma & Kiciman, 2020) is particularly useful for causal effect estimation from observational data.
The best of both worlds: use exact inference on tractable subgraphs and approximate inference on the rest. Or use VI to get a rough posterior, then refine with MCMC on the regions that matter. Or use exact methods for identification (do-calculus) and approximate methods for estimation.
Key Takeaway: The choice isn't binary. Hybrid approaches often outperform either extreme.
Estimating the probability that smoking caused a specific case of lung cancer requires adjusting for confounders like age and genetics. SCMs and do-calculus make this identifiable under stated assumptions. Exact methods work for small models; large cohort studies need approximate inference.
A server outage generates hundreds of symptoms. A Bayesian network can rank likely causes—network failure, software bug, configuration error—by computing posterior probabilities. Approximate inference makes this fast enough for real-time alerting.
Policy evaluation—say, the effect of a minimum wage increase on employment—uses counterfactual reasoning: what would have happened without the policy? Difference-in-differences and instrumental variables are common; SCMs provide the formal backbone.
Mendelian randomization uses genetic variants as instrumental variables to infer whether a gene causally affects a disease. Causal graphs encode assumptions about pleiotropy and confounding.
Attributing a sales increase to advertising, seasonality, or price changes requires disentangling correlated drivers. Causal models with probabilistic inference give you a defensible attribution instead of a last-click heuristic.
Key Takeaway: Causal probabilistic explanation isn't academic. It's already running in epidemiology, AI operations, economics, genomics, and marketing.
"Correlation does not imply causation." True, but correlation plus assumptions plus the right method can imply causation. That's what identifiability is about.
"Causal explanation is always computationally infeasible." False. It's infeasible in general, but many practical problems have structure that makes it tractable.
"Bayesian networks are inherently causal." No. A Bayesian network is a probabilistic model. It becomes causal when you interpret its edges as causal and use do-calculus.
"Counterfactuals are unscientific." They're scientifically definable and computable within an SCM. Halpern and Pearl (2005) gave a rigorous framework for actual causation.
"More data solves confounding." No. Unmeasured confounding is a structural problem, not a sample size problem. More data gives you a more precise wrong answer.
Key Takeaway: Most confusion about causal inference comes from conflating what's mathematically possible with what's computationally practical.
Use exact methods when: - Your model has fewer than ~30 variables with low treewidth. - You need defensible, exact counterfactuals. - The stakes justify the compute cost. - You can afford to wait.
Use approximate methods when: - Your model is large or streaming. - You need answers in seconds, not hours. - You can tolerate bounded error. - You're exploring, not litigating.
Use hybrids when: - You want exact identification (do-calculus) with approximate estimation. - You need fast rough answers refined selectively. - You're building a production system that must degrade gracefully.
Scalable causal discovery is improving fast. Continuous optimization methods like NOTEARS are being extended to nonlinear and non-Gaussian settings. Probabilistic programming languages are getting faster inference engines. The gap between exact and approximate is narrowing—but it won't close.
Causal probabilistic explanation is computationally feasible. Not always exactly, not always cheaply, but feasibly. The framework you choose depends on your problem size, your accuracy requirements, and your tolerance for approximation. Get those three right, and you can answer "why" at scale.
Ready to implement causal probabilistic explanation in your domain? Explore tools like DoWhy, pgmpy, and Pyro to get started, and consult our advanced guide on scalable causal inference for practical tips.
What is the difference between causal and probabilistic explanation? Probabilistic explanation tells you how likely something is given evidence. Causal explanation tells you how likely it is that something caused the evidence—which requires assumptions beyond the data.
Why is computational feasibility a challenge? Exact inference is NP-hard (Cooper, 1990), and causal discovery is NP-hard (Chickering, 1996). For large problems, exact answers are computationally out of reach.
What methods make it feasible? Monte Carlo sampling, variational inference, scalable structure learning (e.g., NOTEARS), and probabilistic programming languages like Pyro and Stan.
Can causal effects be estimated from observational data alone? Sometimes—if the causal effect is identifiable given the graph and assumptions. The do-calculus tells you when.
What is the role of counterfactuals? They're the most demanding level of the causal hierarchy and are essential for attributing specific outcomes to specific causes.
What software tools exist? DoWhy, pgmpy, CausalNex, Pyro, Stan, and others.
How does "explaining away" affect causal explanation? When multiple causes could explain the same evidence, confirming one reduces the posterior probability of the others. Bayesian networks capture this naturally.
What is the causal hierarchy? Association, intervention, counterfactuals—three levels of reasoning, each requiring stronger assumptions than the last.
Is causal probabilistic explanation always possible? No. It depends on identifiability (from the graph and assumptions) and tractability (from the model size and structure).
What are real-world applications? Epidemiology, AI root cause analysis, economics, genomics, and marketing, among others.