I have a factor graph like following:

Sample Factor Graph

How can I check if Q1 and Q2 are independent given the value of g1? More specifically can someone explain following in easy way? It would be great if you can give me an example of all paths connecting Q1 and Q2. Do we consider arrows signs to determine a path?

(taken from David Barber's book on Bayesian Reasoning and Machine Learning)

To determine whether two variables are independent given a set of conditioned variables, consider all paths connecting the two variables. If all paths are blocked, the variables are conditionally independent. A path is blocked if one or more of the following conditions is satisfied:

One of the variables in the path is in the conditioning set. One of the variables or factors in the path has two incoming edges that are part of path (variable or factor) and neither the variable or factor nor any of its descendants are in the conditioning set.


1 Answer 1


Since this is a directed graph, you're looking for something called D-separation.

You can divide subgraphs with three nodes into four categories: A cascade (A -> B -> C), a reverse cascade (A <- B <- C), a causal relationship (A <- B -> C) and a V structure (A -> B <- C). In each of these four categories, B is assumed to be the conditioned variable. You can come up with an intuition once you understand how these four categories behave in conditional independence.

I've found this set of YouTube videos very helpful when trying to understand the idea. https://www.youtube.com/watch?v=IjoWqnH6HmU

For a similar but undirected graph, such computations are very easy. Find the markov blanket of the nodes you're looking at. If all the nodes in the markov blanket are conditioned on, conditional independence holds.


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.