Structure Learning through interventions

As far as I understand with just observational data, causal graphs can only be idenitfied up until their markov equivalence class. For example if X and Y covary in our data this could come from both the model X → Y and Y → X and we would have to carry out an intervention (or experiment) on one of the variables to determine the true graph.

I’ve looked at many frameworks (bnlearn, dowhy, pymc,pgmpy etc.) but have not been able to find this implemented anywhere. Does anyone know how to implement this sort of causal learning from experimental and observational data

Thanks in advance

Perhaps @drbenvincent

Hi I chatted with @Axel_Sorensen elsewhere, but for the public record…

Personally I’ve not been paying much attention to causal discovery.

But this is a very interesting question. As someone with a cog sci background, then our brains must be doing something like this, right? There are many causal explanations of the world. We might have priors over which are more plausible. But we act/experiment/intervene in the world and that should update the relative credibility over models.

I have no idea if someone has already tackled this, but nothing comes to mind. Maybe something in the cognitive science area. Maybe Josh Tenenbaum, or someone working in the same field?

I’d love to know if there is an algorithm sitting around just waiting to be implemented. But my very crude hunch is that there is not, and that it would be a major (and very cool) project to work on. I’d be very interested in whatever you find out on this topic @Axel_Sorensen.