I am reading about the IC and IC* (Inductive Causation) algorithms for discovering DAGs from observations. The first step of the algorithm is for each pair of variables a and b, search for a set of variables S such that a and b are conditionally independent on this set S. Given these variables are scalar values and the relationships between them are potentially nonlinear (of unknown form), how can I do this test for conditional independence?

I see this question, but I don't think an approach using correlations would work if the relationships are nonlinear.


1 Answer 1


There is no simple general answer

Unfortunately there is no general way of testing for conditional independence that would work reliably for any function. In practice you probably have to restrict yourself to a certain class of functions and choose from available independence tests for that function class (e.g. using something like this).

(Conditional) Mutual Information may be your best bet

Another approach that may be closest to what you have mind is using conditional mutual information. The downside is that mutual information can be extremely difficult to estimate. Nonetheless, the Multivariate Information based Inductive Causation (MIIC) method is making use of this approach and their results are quite good as far as I am aware, and there are even a few extensions.

Keep in mind the extrapolation problem

Another thing that may be relevant for you: The assumption of linearity not only makes conditional independence testing easier, it also provides a simple way of extrapolating outside the given support. If the functional dependency between variables could be anything, knowing the causal structure might not give you the answers you're looking fore because one would still not know what effects to expect for interventions outside the support due to the extrapolation (or interpolation) problem.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.