Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

If someone can ELI5 to me what is Pearl's do-calculus, that'd be quite great.

I have tried to build an understanding of it since he got the Turing prize, but have failed so far.



Rain causes people to carry umbrellas. Rain causes puddles. Probabilistically, there's a strong connection between me carrying an umbrella and you seeing puddles (assuming we're both in SF or whatever).

To be a bayesian, you could model this as a conditional probability: p(you see a puddle | I carry an umbrella). It will look like a strong connection, but it isn't a causal one. If it were, then I could stop carrying an umbrella and clear away the puddles. That intervention of me changing my umbrella carrying behavior is what causation is all about. If we change this, does that change?

So then you talk about the probability of you seeing a puddle given some intervention that forces me to carry my umbrella regardless of anything else. We see that if you force me, independent of rain, to carry an umbrella or not to, then the connection between the umbrella and puddles is gone. p(puddles | do(umbrella)) != p(puddles | umbrella). do(X) means to take an intervention and force X regardless of other things.

As contrast, you can talk about the connection between rain and and puddles. If there were some hypothetical weather machine where we could force rain or sunshine, then you'd see that intervening and forcing rain (a.k.a. do(rain)) still keeps the relationship with puddles. p(puddles | do(rain)) still shows a connection. That is a causal connection.

It's all about counterfactual "what if I changed X?" questions. Using that idea, you can get all sorts of cool theory.


Thank you!


It's a way to take interventions, for example what would happen if we can cigarettes, and model it with observational data. The do-calculus is just a couple of rules which say when we can do this. It essentially boils down to a couple of substitution rules.


Some readers might enjoy looking at code -- I came across this repo:

https://github.com/akelleh/causality




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: