This is the third question I am asking about these notes http://www.stat.cmu.edu/~larry/=sml/DAGs.pdf .This time it is about the proof of a small theorem (page 426), that I report:

Theorem: Let $G$ be a DAG and P a distribution that is faithful to $G.$ If $X_i$ and $X_j$ are adjacent in $G,$ than the conditional independence test $X_i \mathrel{\unicode{x2AEB}} X_j |A$ fails for $A \in V-\{i,j\}$. On the other hand, if $X_i$ and $X_j$ are not adjacent in $G,$ then either $X_i \mathrel{\unicode{x2AEB}} X_j |\pi(X_j)$ or $X_i \mathrel{\unicode{x2AEB}} X_j |\pi(X_i)$, where $\pi(X_i)$,$\pi(X_j)$ are the parent sets of $X_i$ and $X_j$ in the DAG $G$.

Proof: For the first part, [...]. For the second part we consider two cases. (i) $X_j$ is a descendant of $X_i$ and (ii) $X_j$ is not a descendant of $X_i$. By definition of $d$-separation in the first case we can show that $X_i \mathrel{\unicode{x2AEB}} X_j |\pi(X_j)$ and in the second case that $X_i \mathrel{\unicode{x2AEB}} X_j |\pi(X_i)$.

But I had a few doubts. First of all in the first case (i) I understand that the path from $X_i$ to $X_j$ making $X_j$ a descendant of $X_i$ is blocked when we observe $\pi(X_j)$ but why can't we have other paths that are open?

For (ii), In the DAG below:

enter image description here

$X_j$ is not a descendant of $X_i$ but $X_i$ and $X_j$ are not d-separated given $\pi(X_i)$, because the only collider (in the only path between them) is observed. Isn't it a counterexample to the reasoning or am I applying $d$-separation in a wrong way ?

(note I am not saying that the theorem is wrong, just that I do not understand the proof ;) )


2 Answers 2


Having a collider's vertex observed or measured does not mean that causal information can flow through it. What makes causal information flow through a collider is when you condition on the collider. And note that this is exactly the opposite behavior from chains and forks. In summary: $$\begin{array}{cccc} \text{Label} &\text{Diagram} &B \text{ Conditioned?} &\text{Causal Information flow-through?} \\ \hline \text{Chain} &A\to B\to C &\text{No} &\text{Yes} \\ & &\text{Yes} &\text{No} \\ \hline \text{Fork} &A\leftarrow B\to C &\text{No} &\text{Yes} \\ & &\text{Yes} &\text{No} \\ \hline \text{Collider} &A\to B\leftarrow C &\text{No} &\text{No} \\ & &\text{Yes} &\text{Yes} \\ \end{array}$$ To condition on a variable, you can do all sorts of things such as backdoor adjustment, frontdoor adjustment, instrumental variable, stratified analysis, including the variable in the RHS of a linear regression model, and probably a few others.

  • $\begingroup$ Ok so you distinguish the concepts of "conditioning on a variable" and of "observing the variable". I use them to indicate similar things since when we "observe" something is like taking the joint and "conditioning" on the observed value. Or not? $\endgroup$
    – Thomas
    Dec 9, 2021 at 20:02
  • $\begingroup$ Anyway in the dag that I described we cannot deduce, according to your rules, that $X_i \mathrel{\unicode{x2AEB}} X_j |\pi(X_i)$, as the proof claims, since the only collider is a parent of $X_i$, on which we are conditioning. Therefore we are on the "Yes" side and casual information can flow. Is there some mistake in this reasoning ? $\endgroup$
    – Thomas
    Dec 9, 2021 at 20:03
  • $\begingroup$ I would not consider that standard usage. By "to observe" or "to measure" a variable, I mean simply that we have data for it. In a data table, there would be a column of values for that variable. This is to distinguish between measured and unmeasured variables - the latter meaning that we do not (often cannot) have any values in a table for that variable. In your DAG, the collider is not a parent of $X_i,$ but a descendant of it. If you condition on the collider or any of its descendants, you open up the collider. However, conditioning on the fork would close up the fork. $\endgroup$ Dec 9, 2021 at 20:28
  • $\begingroup$ The only parent of $X_j$ in your DAG is the fork immediately to its left. If you condition on that, then $X_i$ and $X_j$ are $d$-separated, regardless of what happens at the collider. $\endgroup$ Dec 9, 2021 at 20:30
  • $\begingroup$ The article claims that in case (b) we are d-separated conditioning on $X_i$ (see text) not $X_j$. Something is wrong there and I am not sure it is just a typo (or maybe yes?)... their proof looks quite done by intimidation... $\endgroup$
    – Thomas
    Dec 9, 2021 at 20:36

I will try to post a complete solution showing that if $X_i$ and $X_j$ are not adjacent, than $X_i$ and $X_j$ are independent given either $\pi(X_j)$ or $\pi(X_i)$. As Adrian Keister noticed, my counterexample for point (ii) is wrong since I had mistakenly taken a child for a father...

Case when $X_j$ is a descendant of $X_i$.

From the fact that $X_j$ is a descendant of $X_i$ we know that there is a directed path from $X_i$ to $X_j$. This is blocked conditioning on $\pi(X_j)$. Now take an other path $p$: we have to show that it is blocked as well. If the path $p$ reaches $X_j$ pointing outwards than, since we cannot have a directed cycle, we will have a collider along $p$. Take the first collider that one meets going from $X_j$ to $X_i$ and call it $v$. $v$ cannot be a father of $X_j$ (again we would have a directed cycle) and is therefore not conditioned when we condition on $\pi(X_j)$, therefore the path is blocked. If the path $p$ reaches $X_j$ pointing inwards, than we have a father of $X_j $ at the last previous-to-last vertex along the path, which is in a "chain" or "fork" configuration, then conditioning on it the path is blocked also in this configuration.

Case when $X_j$ is not a descendant of $X_i$.

We consider a generic path from $X_i$ to $X_j$ and want to check that it is blocked conditioning on $\pi(X_i)$. If the path starts outwards from $X_i$, since $X_j$ is not a descendant we must have a collider in the path. Take the first one. This one cannot be a father of $X_i$ (because otherwise we would have a directed cycle). Therefore the path is blocked. Instead, if the path starts with an arrow towards $X_i$, the second element of the path counting from $X_i$ is a father of $X_i$ in either a chain or fork configuration, which is therefore blocked after conditioning.

These solutions are much clearer with some drawing :). The hypothesis that $X_i$ and $X_j$ are not ajacent is used implicitly so that each path is at least of length 2. So I guess all doubts solved. Thanks again to Adrian Keister for pointing out my mistake.


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.