  Structural causal models are the basic modelling unit in Pearl's causal
theory; in principle they allow us to solve counterfactuals, which are at the
top rung of the ladder of causation. But they often contain latent variables
that limit their application to special settings. This appears to be a
consequence of the fact, proven in this paper, that causal inference is NP-hard
even in models characterised by polytree-shaped graphs. To deal with such a
hardness, we introduce the causal EM algorithm. Its primary aim is to
reconstruct the uncertainty about the latent variables from data about
categorical manifest variables. Counterfactual inference is then addressed via
standard algorithms for Bayesian networks. The result is a general method to
approximately compute counterfactuals, be they identifiable or not (in which
case we deliver bounds). We show empirically, as well as by deriving credible
intervals, that the approximation we provide becomes accurate in a fair number
of EM runs. These results lead us finally to argue that there appears to be an
unnoticed limitation to the trending idea that counterfactual bounds can often
be computed without knowledge of the structural equations.
